UROP Proceedings 2020-21

School of Engineering Department of Computer Science and Engineering 121 Building a Blockchain and Smart Contract Application Supervisor: CHEUNG Shing Chi / CSE Student: YANG Wenting / COGBM Course: UROP1100, Fall Ethereum can be regarded as a state transition model. Each smart contract has a state and the state change is triggered by transaction. To manage the smart contract, upgradability is an important characteristic. For developers, this characteristic can help them fix bugs and avoid vulnerabilities. Besides, it can also help developers to add new functionalities. For software engineering, the revision history can help them identify bug pattern, guide bug location and generate bug patches automatically. However, smart contract is not upgradeable because it cannot be changed after being deployed to the Ethereum network. Therefore, we usually use the proxy to help upgrade the version of smart contract in reality. In this project, we try to figure out the proxy smart contract on the Ethereum given specific Application Binary Interface (ABI). As blockchain is completely anonymous and very few contracts have associated GitHub, we can find the contract address if we find the smart contract proxy. After that, we can also retrieve the history or evolution of smart contracts. Building a Blockchain and Smart Contract Application Supervisor: CHEUNG Shing Chi / CSE Student: CHRISTANTO Nicholas / COGBM Course: UROP1000, Summer Smart Contracts are programs deployed in the blockchain that can be executed when certain predetermined conditions are met and verified. It is used to automate an agreement that results in an immediate expected outcome without intermediaries. However, once deployed on a blockchain, the address and the code of Smart Contracts cannot be modified. One solution is to re-architecture the code into separates contracts, Proxy Contracts. This research is about identifying Proxy Contracts and mining the revisions of the logic contracts behind the Proxy Contracts under the guidance of Wuqi Zhang. This report will firstly establish the background of the research, identifying the differences among conventional programs and Smart Contracts as well as the purpose of the invention of Proxy Contracts. During the research, Mr. Zhang has assigned some readings that are needed to achieve an understanding of the research topic which are written under the second section. Application of knowledge obtained during the making of this project to obtain historical implementations is also presented in implementations. In the end, reflections upon the project results and my research journey experience are elaborated.