123,284 research outputs found

    Game theory on the blockchain: a model for games with smart contracts

    Full text link
    We propose a model for games in which the players have shared access to a blockchain that allows them to deploy smart contracts to act on their behalf. This changes fundamental game-theoretic assumptions about rationality since a contract can commit a player to act irrationally in specific subgames, making credible otherwise non-credible threats. This is further complicated by considering the interaction between multiple contracts which can reason about each other. This changes the nature of the game in a nontrivial way as choosing which contract to play can itself be considered a move in the game. Our model generalizes known notions of equilibria, with a single contract being equivalent to a Stackelberg equilibrium, and two contracts being equivalent to a reverse Stackelberg equilibrium. We prove a number of bounds on the complexity of computing SPE in such games with smart contracts. We show that computing an SPE is PSPACE\textsf{PSPACE}-hard in the general case. Specifically, in games with kk contracts, we show that computing an SPE is ΣkP\Sigma_k^\textsf{P}-hard for games of imperfect information. We show that computing an SPE remains PSPACE\textsf{PSPACE}-hard in games of perfect information if we allow for an unbounded number of contracts. We give an algorithm for computing an SPE in two-contract games of perfect information that runs in time O(m)O(m\ell) where mm is the size of the game tree and \ell is the number of terminal nodes. Finally, we conjecture the problem to be NP\textsf{NP}-complete for three contracts

    An Ethereum-Based Real Estate Application with Tampering-Resilient Document Storage

    Get PDF
    Plokiahela ja nutilepingute tehnoloogia on võimelised muutma mitmeid tööstusharusid pakkudes hajutatud platvormi detsentraliseeritud rakenduste arendamiseks. Seejuures soovivad mitmed ettevõtted nutilepinguid kasutada äriprotsesside tõhustamiseks. Käesolevas töös me esitleme juhtumiuuringut Singapuris tegutseva kinnisvara rendiga tegeleva ettevõtte kohta, mis integreeris plokiahela ühte oma protsessidest, kuid soovib kogu protsessi nutilepingusse tõsta. Pärast ettevõtte äriprotsesside modelleerimist ning analüüsimist loome piloottarkvara, mille arhitektuur on hübriidne. Ethereumi nutileping integreeritakse traditsioonilisse tsentraliseeritud veebirakendusse. Peale selle tutvustame me võltsimiskindla dokumendihoidla põhimõtet ning lisame selle IPFS näitel pilootprojekti lahendusse. Viimaseks arutleme potentsiaalsete tüüpprobleemide üle, mis võivad plokiahela rakenduse arendamisel tekkida. Pakume võimalikke lahendusi ning kaalume nende tagajärgi.Blockchain and smart contracts technology enables changes in many industries providing a distributed platform for running decentralized applications. Many companies want to adopt smart contracts technology and use it in their business processes to boost the performance. In this work we present the case study of the real estate company in Singapore that partially integrated blockchain into one of its processes, but wants to move the whole process to the smart contract. After modelling and analyzing their business processes, we create a proof-of-concept of a hybrid system that integrates Ethereum smart contract and traditional web application. Also, we introduce the concept of tampering-resilient document storage and extend the baseline solution to add support for such storage that is based on IPFS. Finally, we summarize and discuss the potential problems that can be met during the development of a blockchain-based application. We provide potential solutions and describe their implications

    Cost Reduction With Guarantees: Formal Reasoning Applied To Blockchain Technologies

    Get PDF
    Blockchain technologies are moving fast and their distributed nature as well as their high-stake (financial) applications make it crucial to “get things right”. Moreover, blockchain technologies often come with a high cost for maintaining blockchain infrastructure and for running applications. In this thesis formal reasoning is used for guaranteeing correctness while reducing the cost of (i) maintaining the infrastructure by optimising blockchain protocols, and (ii) running applications by optimising blockchain programs—so called smart contracts. Both have a clear cost measure: for protocols the amount of exchanged messages, and for smart contracts the monetary cost of execution. In the first result for blockchain protocols starting from a proof of correctness for an abstract blockchain consensus protocol using infinitely many messages and infinite state, a refinement proof transfers correctness to a concrete implementation of the protocol reducing the cost to finite resources. In the second result I move from a blockchain to a block graph. This block graph embeds the run of a deterministic byzantine fault tolerant protocol, thereby getting parallelism “for free” and reducing the exchanged messages to the point of omission. For blockchain programs, I optimise programs executed on the Ethereum blockchain. As a first result, I use superoptimisation and encode the search for cheaper, but observationally equivalent, program as a search problem for an automated theorem prover. Since solving this search problem is in itself expensive, my second result is an efficient encoding of the search problem. Finally for reusing found optimisations, my third results gives a framework to generate peephole optimisation rules for a smart contract compiler

    Betrayal, Distrust, and Rationality: Smart Counter-Collusion Contracts for Verifiable Cloud Computing

    Get PDF
    Cloud computing has become an irreversible trend. Together comes the pressing need for verifiability, to assure the client the correctness of computation outsourced to the cloud. Existing verifiable computation techniques all have a high overhead, thus if being deployed in the clouds, would render cloud computing more expensive than the on-premises counterpart. To achieve verifiability at a reasonable cost, we leverage game theory and propose a smart contract based solution. In a nutshell, a client lets two clouds compute the same task, and uses smart contracts to stimulate tension, betrayal and distrust between the clouds, so that rational clouds will not collude and cheat. In the absence of collusion, verification of correctness can be done easily by crosschecking the results from the two clouds. We provide a formal analysis of the games induced by the contracts, and prove that the contracts will be effective under certain reasonable assumptions. By resorting to game theory and smart contracts, we are able to avoid heavy cryptographic protocols. The client only needs to pay two clouds to compute in the clear, and a small transaction fee to use the smart contracts. We also conducted a feasibility study that involves implementing the contracts in Solidity and running them on the official Ethereum network.Comment: Published in ACM CCS 2017, this is the full version with all appendice

    An empirical analysis of smart contracts: platforms, applications, and design patterns

    Full text link
    Smart contracts are computer programs that can be consistently executed by a network of mutually distrusting nodes, without the arbitration of a trusted authority. Because of their resilience to tampering, smart contracts are appealing in many scenarios, especially in those which require transfers of money to respect certain agreed rules (like in financial services and in games). Over the last few years many platforms for smart contracts have been proposed, and some of them have been actually implemented and used. We study how the notion of smart contract is interpreted in some of these platforms. Focussing on the two most widespread ones, Bitcoin and Ethereum, we quantify the usage of smart contracts in relation to their application domain. We also analyse the most common programming patterns in Ethereum, where the source code of smart contracts is available.Comment: WTSC 201
    corecore