The Scalability of Trustless Trust

Permission-less blockchains can realise trustless trust, albeit at the cost of limiting the complexity of computation tasks. To explain the implications for scalability, we have implemented a trust model for smart contracts, described as agents in an open

  • PDF / 593,430 Bytes
  • 15 Pages / 439.37 x 666.142 pts Page_size
  • 57 Downloads / 154 Views

DOWNLOAD

REPORT


IC3RE, Imperial College London, London SW7 2RH, UK [email protected] 2 RISE, Box 1263, 16429 Kista, Sweden 3 KTH/ICT/SCS, Electrum 229, 16440 Kista, Sweden

Abstract. Permission-less blockchains can realise trustless trust, albeit at the cost of limiting the complexity of computation tasks. To explain the implications for scalability, we have implemented a trust model for smart contracts, described as agents in an open multi-agent system. Agent intentions are not necessarily known and autonomous agents have to be able to make decisions under risk. The ramifications of these general conditions for scalability are analysed for Ethereum and then generalised to other current and future platforms. Finally, mechanisms from the trust model are applied to a verifiable computation algorithm and implemented in the Ethereum blockchain. We show in experiments that the algorithm needs at most six semi-honest verifiers to detect false submission. Keywords: Trustless trust · Smart contract Blockchain · Scalability · Multi-agent system

1

· Agent · Ethereum · · Distributed ledger

Introduction

Turing-complete programming languages allow creating a generic programmable blockchain by means of smart contracts [30]. A smart contract can be defined as a decentralised application executed on the distributed P2P network that constitutes the blockchain. The smart contract captures the formalisation of electronic commerce in code, to execute the terms of a contract. However, a smart contract is, in fact, neither smart nor a contract. In practice, it codes an agreement about what will come to pass, in the form of a production rule. Since there cannot be a breach of contract—which would happen only if one or more parties would not honour the agreement—thanks to how this production rule is coded, a smart contract is not a contract. Since there is no opportunity for learning on the contract’s behalf, it is also not smart. Smart contracts do code the preferences of their owners, and their negotiating partners as appropriate, with respect to the decision under risk or uncertainty. They react on events, have a specific state, are executed on a distributed ledger, and are able to interact with assets stored on the ledger [28]. Ethereum offers smart contracts through its blockchain. The Ethereum Virtual Machine (EVM) handles the states and computations of the protocol and can theoretically execute code of c International Financial Cryptography Association 2019  A. Zohar et al. (Eds.): FC 2018 Workshops, LNCS 10958, pp. 279–293, 2019. https://doi.org/10.1007/978-3-662-58820-8_19

280

D. Harz and M. Boman

arbitrary algorithmic complexity [3]. Using Ethereum, developers can implement smart contracts as lines of code in an account that execute automatically when transactions or function calls are sent to that account. The outcome is final and agreed on by all participants and blockchains can thus enable a system of trust. In Ethereum, smart contracts can interact through function calls via their Application Binary Interface (ABI). Single smart contr