Antonio Fernández Anta, Chryssis Georgiou, Nicolas Nicolaou
In his PODC’2017 keynote address, Maurice Herlihy pointed out that despite the hype about blockchains and distributed ledgers, no formal abstraction of these objects has been proposed. To face this issue, in this paper we provide a proper formulation of a distributed ledger object. In brief, we define a ledger object as a sequence of records, and we provide the operations and the properties that such an object should support. We then provide a variation of the ledger – the validated ledger – which requires that each record in the ledger satisfies a particular validation rule. A (validated) ledger is distributed if it is implemented on top of multiple (possibly geographically dispersed) computing devices.
Bitcoin is a peer to peer electronic payment system where payment transactions are stored in a data structure named the blockchain which is maintained by a community of participants. The Bitcoin Core protocol limits blocks to 1 MB in size. Each block contains at most some 4,000 transactions. Blocks are added to the blockchain on average every 10 minutes, therefore the transaction rate is limited to some 7 transactions per second (TPS). This is much less than the transaction rate offered by competing financial transaction processing systems. The Bitcoin TPS can be increased by increasing the block size and/or by decreasing the block discovery interval. Both of these interventions will increase the end-to-end block transmission delay, which in turn will increase the probability that different participants momentarily record different versions of the blockchain, so that the consensus protocol will discard an increasing number of blocks. The net effect is that the real increase in the TPS is not proportional to the increase (decrease) in the block size (block discovery rate). Our simulation experiments show that large block sizes, if accompanied by large end-to-end block transmission delays, give rise to the frequent appearance of inconsistent blockchain copies, to the detriment of the TPS. We present a simulation analysis of Bitcoin-Next Generation where blocks (keyblocks) stripped of transactions propagate rapidly through the peer-to-peer network. Once a keyblock is mined, only the miner of the keyblock is entitled to broadcast small microblocks of transactions until the next keyblock is mined and another miner is selected to broadcast microblocks. Initial simulation experiments show that Bitcoin-NG can sustain substantially larger transaction rates than Bitcoin Core.
Decentralized digital currency systems known as cryptocurrencies are a breakthrough in electronic payments: the absence of a central authority can avoid the risk that a not fully reliable government seizes assets or causes hyperinflation, very small transactions can be made without incurring high costs and transactions can be traced, thus providing a tool to counter laundering and tax evasion. Furthermore, decentralization provides robustness against many attacks. Despite these advantages, cryptocurrencies have still not become mainstream solutions, because of scarce users’ inclination to adopt them as a privileged payment tool. This is mostly due to the absence of a structured form of control, which also prevents from having some credit insurance. Moreover, some present and future attacks, like quantum computer-based attacks, may threaten their security. In this paper we define new technical solutions to allow cryptocurrencies to become trusted tools for secure and verifiable digital transactions, and also for deposits, while preserving decentralization and users’ privacy. Based on a thorough security analysis, a new cryptocurrency model is first defined, exploiting a set of secure and post-quantum cryptographic primitives. Then, a secure supervision and authentication network is designed, which allows to control transactions, while guaranteeing users’ privacy. A robust reputation system for this context is also proposed, which helps to increase users’ trust and to reduce misconduct.
Simplicity is a typed, combinator-based, functional language without loops and recursion, designed to be used for crypto-currencies and blockchain applications. It aims to improve upon existing crypto-currency languages, such as Bitcoin Script and Ethereum's EVM, while avoiding some of the problems they face. Simplicity comes with formal denotational semantics defined in Coq, a popular, general purpose software proof assistant. Simplicity also includes operational semantics that are defined with an abstract machine that we call the Bit Machine. The Bit Machine is used as a tool for measuring the computational space and time resources needed to evaluate Simplicity programs. Owing to its Turing incompleteness, Simplicity is amenable to static analysis that can be used to derive upper bounds on the computational resources needed, prior to execution. While Turing incomplete, Simplicity can express any finitary function, which we believe is enough to build useful ``smart contracts'' for blockchain applications.
Permissionless blockchains protocols such as Bitcoin are inherently limited in transaction throughput and latency. Current efforts to address this key issue focus on off-chain payment channels that can be combined in a Payment-Channel Network (PCN) to enable an unlimited number of payments without requiring to access the blockchain other than to register the initial and final capacity of each channel. While this approach paves the way for low latency and high throughput of payments, its deployment in practice raises several privacy concerns as well as technical challenges related to the inherently concurrent nature of payments that have not been sufficiently studied so far. In this work, we lay the foundations for privacy and concurrency in PCNs, presenting a formal definition in the Universal Composability framework as well as practical and provably secure solutions. In particular, we present Fulgor and Rayo. Fulgor is the first payment protocol for PCNs that provides provable privacy guarantees for PCNs and is fully compatible with the Bitcoin scripting system. However, Fulgor is a blocking protocol and therefore prone to deadlocks of concurrent payments as in currently available PCNs. Instead, Rayo is the first protocol for PCNs that enforces non-blocking progress (i.e., at least one of the concurrent payments terminates). We show through a new impossibility result that non-blocking progress necessarily comes at the cost of weaker privacy. At the core of Fulgor and Rayo is Multi-Hop HTLC, a new smart contract, compatible with the Bitcoin scripting system, that provides conditional payments while reducing running time and communication overhead with respect to previous approaches. Our performance evaluation of Fulgor and Rayo shows that a payment with 10 intermediate users takes as few as 5 seconds, thereby demonstrating their feasibility to be deployed in practice.
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.
Permissioned blockchains are arising as a solution to federate companies prompting accountable interactions. A variety of consensus algorithms for such blockchains have been proposed, each of which has dierent benets and drawbacks. Proof-of-Authority (PoA) is a new family of Byzantine fault-tolerant (BFT) consensus algorithms largely used in practice to ensure better performance than traditional Practical Byzantine Fault Tolerance (PBFT). However, the lack of adequate analysis of PoA hinders any cautious evaluation of their eectiveness in real-world permissioned blockchains deployed over the Internet, hence on an eventually synchronous network experimenting Byzantine nodes.<br> In this paper, we analyse two of the main PoA algorithms, named Aura and Clique, both in terms of provided guarantees and performances. First, we derive their functioning including how messages are exchanged, then we weight, by relying on the CAP theorem, consistency, availability and partition tolerance guarantees. We also report a qualitative latency analysis based on message rounds. The analysis advocates that PoA for per-missioned blockchains, deployed over the Internet with Byzantine nodes, do not provide<br> adequate consistency guarantees for scenarios where data integrity is essential. We claim that PBFT can t better such scenarios, despite a limited loss in terms of performance.
In this paper, we analyze Blockchain consensus protocols in the lens of the foundations of distributed computing. Our goal is to present analogies and connections between Blockchain protocols and Byzantine fault tolerant (BFT) protocols. We also discuss opportunities to consider hybrid solutions
Ethereum contracts can be designed to function as fully decentralized applications called DAPPs that hold financial assets, and many have already been fielded. Unfortunately, DAPPs can be hacked, and the assets they control can be stolen. A recent attack on an Ethereum decentralized application called The DAO demonstrated that smart contract bugs are more than an academic concern. Ether worth hundreds of millions of US dollars was extracted by an attacker from The DAO, sending the value of its tokens and the overall exchange price of ether itself tumbling.
Abstract A blockchain can be considered a technological phenomenon that is made up of different interconnected and autonomous systems. Such systems are referred to here as cyber‐physical systems: complex interconnections of cyber and physical components. When cyber‐physical systems are interconnected, a new whole consisting of a system of systems is created by the autonomous systems and their intercommunication and interaction. In a blockchain, individual systems can independently make decisions on joint information transactions. The decision‐making procedures needed for this are executed based on fault‐tolerant communication and voting and consensus procedures, while the results of these decision‐making procedures are stored in distributed ledgers. Due to the intercommunication, interaction, and independent decision making by autonomous systems, the new whole of a blockchain is a complex entity. Complexity science rather than the usual reductionist scientific approach can help us better understand the behaviour of the new and continuously developing whole of a blockchain as a technological phenomenon.
Blockchain technology is being considered as one of the ultimate revolutions that will be able to disrupt several pillars of our society. It is a public and distributed ledger built for security and interoperability. Blockchain provides all parties a secure and synchronized record of immutable transactions assembled together and permanently stored with a fingerprint, creating therefore an irreversible chain. In order to operate, this technology does not rely on any central authority. All transactions are sent over the network and the consensus is achieved by the mutual calculation and agreement. In this paper, we evaluate the blockchain technology and its evolution. Then, we characterize some essential features of the distributed ledger technologies (DLT) focusing on the three main blockchains actors: Bitcoin, Ethereum and Hyperledger. Besides, we present their security challenges and explore their drawbacks that can lead to use the blockchain network in order to conduct several attack scenarios. Finally, we describe their relationship with the onion router network (Tor) that beyond the malicious uses of the blockchain via Tor, these two networks share many common points.
Michael A. Walker, Abhishek Dubey, Áron Lászka, Douglas C. Schmidt
With the advent of blockchain-enabled IoT applications, there is an increased\nneed for related software patterns, middleware concepts, and testing practices\nto ensure adequate quality and productivity. IoT and blockchain each provide\ndifferent design goals, concepts, and practices that must be integrated,\nincluding the distributed actor model and fault tolerance from IoT and\ntransactive information integrity over untrustworthy sources from blockchain.\nBoth IoT and blockchain are emerging technologies and both lack codified\npatterns and practices for development of applications when combined. This\npaper describes PlaTIBART, which is a platform for transactive IoT blockchain\napplications with repeatable testing that combines the Actor pattern (which is\na commonly used model of computation in IoT) together with a custom Domain\nSpecific Language (DSL) and test network management tools. We show how\nPlaTIBART has been applied to develop, test, and analyze fault-tolerant IoT\nblockchain applications.\n
Hyperledger Fabric (HLF) is a flexible permissioned blockchain platform designed for business applications beyond the basic digital coin addressed by Bitcoin and other existing networks. A key property of HLF is its extensibility, and in particular the support for multiple ordering services for building the blockchain. Nonetheless, the version 1.0 was launched in early 2017 without an implementation of a Byzantine fault-tolerant (BFT) ordering service. To overcome this limitation, we designed, implemented, and evaluated a BFT ordering service for HLF on top of the BFT-SMaRt state machine replication/consensus library, implementing also optimizations for wide-area deployment. Our results show that HLF with our ordering service can achieve up to ten thousand transactions per second and write a transaction irrevocably in the blockchain in half a second, even with peers spread in different continents.
Harry Kalodner, Steven Goldfeder, Alishah Chator, Malte Möser · 5 authors
Analysis of blockchain data is useful for both scientific research and commercial applications. We present BlockSci, an open-source software platform for blockchain analysis. BlockSci is versatile in its support for different blockchains and analysis tasks. It incorporates an in-memory, analytical (rather than transactional) database, making it several hundred times faster than existing tools. We describe BlockSci's design and present four analyses that illustrate its capabilities. This is a working paper that accompanies the first public release of BlockSci, available at https://github.com/citp/BlockSci. We seek input from the community to further develop the software and explore other potential applications.
A blockchain is a public ledger for recording transactions, maintained by<br> many nodes without central authority through a distributed cryptographic<br> protocol. All nodes validate the information to be appended to the<br> blockchain, and a consensus protocol ensures that the nodes agree on a<br> unique order in which entries are appended. Consensus protocols for<br> tolerating Byzantine faults have received renewed attention because they<br> also address blockchain systems. However, amid the current hype around<br> blockchains, cryptocurrencies, fintech startups, and novel consensus<br> mechanisms, it is sometimes overlooked that assessing and gaining<br> confidence in the resilience of a protocol is a difficult task. We argue that developing consensus protocols is similar to engineering<br> cryptographic systems, and that blockchain developers should look towards<br> the established experience in cryptography and security with building<br> trustworthy systems. Otherwise, it might be dangerous to entrust<br> financial value to new protocols. Public discussion, expert reviews,<br> broad validation, and standards recommendations should be employed,<br> following the established practice in cryptography and security.<br>
Abstract—As data is having an increasingly relevant role<br> in dierent business fields, ensuring integrity has become<br> fundamental. Modern databases rely on transaction history<br> written on redo logs to allow for data restore. However, if<br> redo logs are (maliciously) forged, data can actually be lost or<br> altered. Due its strong data integrity guarantees, blockchain<br> technology can be employed to ensure log integrity, but its<br> current performance limitations hinder actual exploitations.<br> In previous work, we proposed a layered blockchain-based<br> architecture for distributed (federated) database redo logs: a<br> fast first layer blockchain, anchored to a secure second layer<br> blockchain, based on proof-of-work to achieve strong integrity.<br> Here, we present an implementation and an experimental<br> evaluation of a prototype of that architecture, which employs a<br> total consensus algorithm on the first layer blockchain. Finally,<br> to improve availability and scalability, we refine our solution<br> by investigating, respectively, a Byzantine Fault Tolerant consensus<br> and a Distributed Hash Table solution to shard the first<br> layer blockchain ledger among available nodes.
Alexei Zamyatin, Katinka Wolter, Sam M. Werner, Peter G. Harrison · 6 authors
Cryptocurrency mining can be said to be the modern alchemy, involving as it does the transmutation of electricity into digital gold. The goal of mining is to guess the solution to a cryptographic puzzle, the difficulty of which is determined by the network, and thence to win the block reward and transaction fees. Because the return on solo mining has a very high variance, miners band together to create so-called mining pools. These aggregate the power of several individual miners, and, by distributing the accumulated rewards according to some scheme, ensure a more predictable return for participants.In this paper we formulate a model of the dynamics of a queue-based reward distribution scheme in a popular Ethereum mining pool and develop a corresponding simulation. We show that the underlying mechanism disadvantages miners with above-average hash rates. We then consider two-miner scenarios and show how large miners may perform attacks to increase their profits at the expense of other participants of the mining pool. The outcomes of our analysis show the queue-based reward scheme is vulnerable to manipulation in its current implementation.
Ingo Weber, Vincent Gramoli, Alex Ponomarev, Mark Staples · 7 authors
Blockchain has recently gained momentum. Startups, enterprises, banks, and government agencies around the world are exploring the use of blockchain for broad applications including public registries, supply chains, health records, and voting. Dependability properties, like availability, are critical for many of these applications, but the guarantees offered by the blockchain technology remain unclear, especially from an application perspective. In this paper, we identify the availability limitations of two mainstream blockchains, Ethereum and Bitcoin. We demonstrate that while read availability of blockchains is typically high, write availability - for transaction management - is actually low. For Ethereum, we collected 6 million transactions over a period of 97 days. First, we measured the time for transactions to commit as required by the applications. Second, we observed that some transactions never commit, due to the inherent blockchain design. Third and perhaps even more dramatically, we identify the consequences of the lack of built-in options for explicit abort or retry that can maintain the application in an uncertain state, where transactions remain pending (neither aborted nor committed) for an unknown duration. Finally we propose techniques to mitigate the availability limitations of existing blockchains, and experimentally test the efficacy of these techniques.
Harish Sukhwani, José Manuel Martínez, Xiaolin Chang, Kishor S. Trivedi · 5 authors
While Blockchain network brings tremendous benefits, there are concerns whether their performance would match up with the mainstream IT systems. This paper aims to investigate whether the consensus process using Practical Byzantine Fault Tolerance (PBFT) could be a performance bottleneck for networks with a large number of peers. We model the PBFT consensus process using Stochastic Reward Nets (SRN) to compute the mean time to complete consensus for networks up to 100 peers. We create a blockchain network using IBM Bluemix service, running a production-grade IoT application and use the data to parameterize and validate our models. We also conduct sensitivity analysis over a variety of system parameters and examine the performance of larger networks
Mustafa Al-Bassam, Alberto Sonnino, Shehar Bano, Dave Hrycyszyn · 5 authors
Chainspace is a decentralized infrastructure, known as a distributed ledger, that supports user defined smart contracts and executes user-supplied transactions on their objects. The correct execution of smart contract transactions is verifiable by all. The system is scalable, by sharding state and the execution of transactions, and using S-BAC, a distributed commit protocol, to guarantee consistency. Chainspace is secure against subsets of nodes trying to compromise its integrity or availability properties through Byzantine Fault Tolerance (BFT), and extremely high-auditability, non-repudiation and `blockchain' techniques. Even when BFT fails, auditing mechanisms are in place to trace malicious participants. We present the design, rationale, and details of Chainspace; we argue through evaluating an implementation of the system about its scaling and other features; we illustrate a number of privacy-friendly smart contracts for smart metering, polling and banking and measure their performance.
Francesco Buccafurri, Gianluca Lax, Serena Nicolazzo, Antonino Nocera
Blockchain technology allows the implementation of a public ledger securely recording transactions among peers without the need of trusted third parties. For both researchers and industry IoT appears a domain in which there would be extraordinary benefits if the features of Blockchain can be exploited. Indeed, the possibility that IoT devices participate in public shared transactions enables a lot of challenging applications. However, there are some aspects that may limit the use of Blockchain in IoT. These are mainly related to the low computational power and storage capabilities of IoT devices. In this paper, we propose an alternative way to implement a public ledger overcoming the above drawbacks, thus appearing more suitable to IoT applications. The proposed protocol leverages the popular social network Twitter and works by building a meshed chain of tweets to ensure transaction security. Importantly, Twitter does not play neither the role of trusted third party nor the role of ledger provider.
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.