
handle: 11562/1054784 , 10278/5047700
Blockchain replicates the execution of transactions in a decentralized network of machines, supporting trust since each machine, by itself, cannot violate the rules for the transactions. Many applications of blockchains are related to the exchange of tokens, ie. valuable units that can be native, such as bitcoin and ether, or implemented in software, through smart contracts. Standards ensure token interoperability among decentralized applications of a certain platform, but they are general enough to be used in other contexts as well. A trend in blockchain is to implement such standards from a platform to another one, easing the design challenges with trusted and widely-used specifications. Exploiting the target language semantic can result in technological advantages with more efficient contracts. This paper presents a re-engineering of OpenZeppelin’s implementation of the ERC-20 standard for fungible tokens on Takamaka, a subset of Java for programming smart contracts in the Hotmoka blockchain. It starts with a literal translation from Solidity to Takamaka, but then describes a novel implementation for making snapshots of tokens, based on tree maps, that is possible in Java, but not in Solidity, and shows that it is much more efficient than the literal translation in Java from Solidity, within the Java Virtual Machine.
smart contract; software reengineering; blockchain; token; ERC-20, smart contract, software reengineering, blockchain, token, ERC-20
smart contract; software reengineering; blockchain; token; ERC-20, smart contract, software reengineering, blockchain, token, ERC-20
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 4 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Top 10% | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Average | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Average |
