Performance evaluation of smart contracts - Oliveira, Raul Alexandre Vaz (2022)
Blockchain is a distributed ledger with records of transactions made between accounts stored in it through blocks. This type of technology is becoming a part of our daily lives, due to its secure, immutable, verifiable and transparent nature. One relevant aspect of blockchain is that of smart contracts, these are very important and useful because they can automatically carry out certain actions based on what was written in its code. Transactions which should be carried out under specific conditions can be done more effectively by using a smart contract, which explicitly incorporates those conditions in its code. Since smart contracts are so critical, it is very important to make the correct decision when choosing a high-level language to use to code these agreements. Different languages that essentially do the same thing, can compile to a completely different set of instructions. The objective of this dissertation is to compare the performance of different smart contract high-level languages, set to carry out the same goal. We will compare languages from the Tezos and Ethereum blockchains. Different languages will produce different low-level code, some of which will be more efficient, as they will require less resources such as gas; Sumário: Avaliação do Desempenho de Smart Contracts Blockchain é um registo distribuído com documentações das transações feitas entre contas guardadas nele através de blocos. É bastante provável que este tipo de tecnologia faça parte do nosso dia-a-dia, devido à sua segura, imutável e transparente natureza. Um aspecto importante da blockchain são contractos inteligentes, estes são muito importantes e úteis por serem capazes de executar automaticamente certas ações baseadas no que foi escrito no seu código. Algumas transações com condições particulares podem ser feitas mais rapidamente se um contrato inteligente é utilizado e essas condições são escritas na sua lógica. Devido aos contratos inteligentes serem tão valiosos, é muito importante fazer a decisão correta na escolha de uma linguagem de alto nível para utilizar para programar estes acordos. Diferentes linguagens que essencialmente fazem o mesmo, podem compilar para um conjunto de instruções completamente diferente. O objectivo desta dissertação é comparar o desempenho de diferentes linguagens de alto nível de contratos inteligentes escritos para fazerem a mesma coisa. Vão haver comparações entre as linguagens das blockchains Tezos e Ethereum. Linguagens diferentes irão produzir diferentes códigos de baixo nível, considerando algumas destas linguagens mais eficientes, devido a requererem menos recursos como gas.