Blockchain's ever increasing size has become a major problem. Bitcoin [7], for example, has grown to 115120 MB as of May 2017, which is roughly 115 GB. This uncontrollable growth of the Blockchain is bound to become an issue in the future, as hard disks may become too small to store the entire Blockchain history and traversing the transactions databases may become increasingly slow. Already, there are lightweight clients in various Blockchain platforms (Bitcoin included), who do not store the entire chain locally but rely on a third party to send them the blocks they need. There are many issues with these clients, mainly security problems, since they go back to trusting a central authority rather than gaining trust from several distributed peers. These clients' knowledge of the Blockchain is solely based on some third party that should be trusted, while the conceptual base for Blockchain is trust distributing. In this paper we present two Blockchain abbreviation schemes. The first one is based on the Ethereum [8] project and proposes replacing the full Blockchain with a new Genesis block, which summarizes everyone's account balances at a certain point in time. One possible benefit is to use less communication while still storing the prefix of the old Blockchain (or signature of the Blockchain that can validate a version archived by other participants) in a local archive. Here we trade loss of transaction history for efficiency. Our second contribution is a UNIX based architecture using the file system, for implementing Blockchain. We demonstrate a Blockchain abbreviation technique for this architecture too.
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.
The ever-increasing number of IoT devices necessitates a secure and scalable infrastructure to store and process generated data. Blockchain is an ideal choice with its decentralized, trustless architecture. However, low-power IoT end-devices do not possess enough horsepower to run a software client for intensive blockchain calculations. The purpose of this paper is to create a proof of concept to enable low-power, resource-constrained IoT end-devices accessing a blockchain-based infrastructure. To achieve this aim, an IoT gateway is configured as a blockchain node and an event-based messaging mechanism for low-power IoT end-devices is proposed. A demonstration of such a system is realized using LoRa nodes and gateway in a private Ethereum network.
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.
Aleksandr Kapitonov, Sergey Lonshakov, Aleksandr Krupenkin, Ivan Berman
This article describes a method of organizing the communication protocol, which allows agents of the multiagent system (MAS) to make decisions about their actions. Plan activities and interact with each other to perform tasks of modern industrial and business processes based on cyber-physical systems. The main attention is paid to those multi-agent systems, where autonomous agents - robots or smart things - participate in business processes among people, and their activities are organized in an unreliable and unknown environment. The article shows, how to organize a communication system between agents in a peer-to-peer network using the decentralized Ethereum Blochchain technology and smart contracts. The architecture of protocol of autonomous business activity, based on this communication method is given. As a result, the experience of implementation an autonomous economic system with unmanned aerial vehicles (UAV) is described.
The emerging blockchain technologies have enabled development of crypto-currencies and autonomous smart contracts that can operate in decentralized and trustless settings. Distributed autonomous organizations can be implemented using smart contracts available on the Ethereum blockchain. In this paper, we propose a distributed autonomous software organization model and its Ethereum smart contract implementation called AutonomousSoftwareOrg for providing a continuously operating virtual organization for software development communities and users. AutonomousSoftwareOrg facilitates a funding mechanism based on crypto-currencies, a decision making mechanism based on voting and record keeping for software usage citations and executions. AutonomousSoftwareOrg is deployed and tested on our local Ethereum based blockchain system (http://ebloc.cmpe.boun.edu.tr). Its Solidity language source code is available at https://github.com/ebloc/AutonomousSoftwareOrg.
Lee Thomas, Chao Long, Pete Burnap, Jianzhong Wu · 5 authors
An electricity supply smart contract was developed and demonstrated to perform pre-time-of-use price negotiation between demand and generation and post-time-of-use settlement and payment. The smart contract was demonstrated with 1000 loads/generators with usages simulated using lognormal probability distributions. It combines payment of deposit, negotiation of price based on estimates, settlement based on actual usage and enactment of payments using crypto-currency. The settlement procedure rewards customers that adjusted to balance the system. The smart contract was written in the solidity programming language and implemented with a simulated Ethereum blockchain using testrpc and go-ethereum. In the example test case, a price was agreed, settled and payment enacted.
Blockchain systems are designed to produce blocks at a constant average rate. The most popular systems currently employ a Proof of Work (PoW) algorithm as a means of creating these blocks. Bitcoin produces, on average, one block every 10 minutes. An unfortunate limitation of all deployed PoW blockchain systems is that the time between blocks has high variance. For example, 5% of the time, Bitcoin's inter-block time is at least 40 minutes. This variance impedes the consistent flow of validated transactions through the system. We propose an alternative process for PoW-based block discovery that results in an inter-block time with significantly lower variance. Our algorithm, called Bobtail, generalizes the current algorithm by comparing the mean of the k lowest order statistics to a target. We show that the variance of inter-block times decreases as k increases. If our approach were applied to Bitcoin, about 80% of blocks would be found within 7 to 12 minutes, and nearly every block would be found within 5 to 18 minutes; the average inter-block time would remain at 10 minutes. Further, we show that low-variance mining significantly thwarts doublespend and selfish mining attacks. For Bitcoin and Ethereum currently (k=1), an attacker with 40% of the mining power will succeed with 30% probability when the merchant sets up an embargo of 8 blocks; however, when k>=20, the probability of success falls to less than 1%. Similarly, for Bitcoin and Ethereum currently, a selfish miner with 40% of the mining power will claim about 66% of blocks; however, when k>=5, the same miner will find that selfish mining is less successful than honest mining. The cost of our approach is a larger block header.
All the early attention about Bitcoin regarded its potential disruptive capability for the global monetary supply. Many thought Bitcoin would disintermediate banks and be one of the biggest technological innovations of this generation. Blockchain is just one form of distributed ledger system to emerge. Ether is another cryptocurrency technology that uses a form of distributed ledger technology (DLT) usually referred to as Ethereum. Distributed ledgers have the potential to transform or even disrupt most every industry, and even improve how democracies function. eBay may be one of the first early successes in the peer-to-peer economy. Founded in 1995 in Silicon Valley by Pierre Omidyar, eBay is a classical Silicon Valley success story. Open Bazaar was formed to compete with the eBay model by facilitating similar transactions among peers, but with no intermediary monetizing the transactions. Uber and Airbnb are the platform death-stars that draw the most attention and ire from certain stakeholders around the world.
Stefanie Roos, Pedro Moreno-Sanchez, Aniket Kate, Ian Goldberg
Path-based transaction (PBT) networks, which settle payments from one user to another via a path of intermediaries, are a growing area of research. They overcome the scalability and privacy issues in cryptocurrencies like Bitcoin and Ethereum by replacing expensive and slow on-chain blockchain operations with inexpensive and fast off-chain transfers. In the form of credit networks such as Ripple and Stellar, they also enable low-price real-time gross settlements across different currencies. For example, SilentWhsipers is a recently proposed fully distributed credit network relying on path-based transactions for secure and in particular private payments without a public ledger. At the core of a decentralized PBT network is a routing algorithm that discovers transaction paths between payer and payee. During the last year, a number of routing algorithms have been proposed. However, the existing ad hoc efforts lack either efficiency or privacy. In this work, we first identify several efficiency concerns in SilentWhsipers. Armed with this knowledge, we design and evaluate SpeedyMurmurs, a novel routing algorithm for decentralized PBT networks using efficient and flexible embedding-based path discovery and on-demand efficient stabilization to handle the dynamics of a PBT network. Our simulation study, based on real-world data from the currently deployed Ripple credit network, indicates that SpeedyMurmurs reduces the overhead of stabilization by up to two orders of magnitude and the overhead of routing a transaction by more than a factor of two. Furthermore, using SpeedyMurmurs maintains at least the same success ratio as decentralized landmark routing, while providing lower delays. Finally, SpeedyMurmurs achieves key privacy goals for routing in PBT networks.
Stefanie Roos, Pedro Moreno-Sánchez, Aniket Kate, Ian Goldberg
Path-based transaction (PBT) networks, which settle payments from one user to\nanother via a path of intermediaries, are a growing area of research. They\novercome the scalability and privacy issues in cryptocurrencies like Bitcoin\nand Ethereum by replacing expensive and slow on-chain blockchain operations\nwith inexpensive and fast off-chain transfers. In the form of credit networks\nsuch as Ripple and Stellar, they also enable low-price real-time gross\nsettlements across different currencies. For example, SilentWhsipers is a\nrecently proposed fully distributed credit network relying on path-based\ntransactions for secure and in particular private payments without a public\nledger. At the core of a decentralized PBT network is a routing algorithm that\ndiscovers transaction paths between payer and payee. During the last year, a\nnumber of routing algorithms have been proposed. However, the existing ad hoc\nefforts lack either efficiency or privacy. In this work, we first identify\nseveral efficiency concerns in SilentWhsipers. Armed with this knowledge, we\ndesign and evaluate SpeedyMurmurs, a novel routing algorithm for decentralized\nPBT networks using efficient and flexible embedding-based path discovery and\non-demand efficient stabilization to handle the dynamics of a PBT network. Our\nsimulation study, based on real-world data from the currently deployed Ripple\ncredit network, indicates that SpeedyMurmurs reduces the overhead of\nstabilization by up to two orders of magnitude and the overhead of routing a\ntransaction by more than a factor of two. Furthermore, using SpeedyMurmurs\nmaintains at least the same success ratio as decentralized landmark routing,\nwhile providing lower delays. Finally, SpeedyMurmurs achieves key privacy goals\nfor routing in PBT networks.\n
Modern IoT solutions are often an intricate system of interdependent components. Traditional monitoring techniques may not be sufficient to ensure the correct operation of those systems. We present an on-line machine learning approach for anomaly detection that is optimized for interpretability. The aim is to make it as intuitive as possible for human operators to derive insights about the system. To this end we combine characteristics of the system into sets of features that can be rendered graphically. Our solution builds on open source components and applies to any time series of numerical data. This work originated within a larger project on connected mobility that uses Blockchain technology to guarantee data integrity. Hence we demonstrate some results at the example of the public Ethereum blockchain. Further work will extend the solution to more general sensor data from the IoT realm.
Henrique Rocha, Sté́phane Ducasse, Marcus Denker, Jason Lecerf
Solidity is a language used to implement smart contracts on a blockchain platform. Since its initial conception in 2014, Solidity has evolved into one of the major languages for the Ethereum platform as well as other blockchain technologies. Due to its popularity, there are many tools specifically designed to handle smart contracts written in Solidity. However, there is a lack of tools for Pharo to handle Solidity contracts. Therefore, we implemented a parser using SmaCC to serve as a base for further developing Solidity support in Pharo. In this paper, we describe the parser creation, the irregularities we found in the Solidity grammar specification, and common practices on how to adapt the grammar to an LR type parser. Our experiences with parsing the Solidity language using SmaCC may help other developers trying to convert similar grammars.
Blockchain is the latest buzzword in the FinTech scene and all companies big and small are vying to launch blockchain enabled products. At the basic technology level Blockchain is a distributed technology application. The challenges of operating such an application are known [1]. But the techniques of developing distributed applications by large enterprise teams, in a typical SDLC lifecycle (Develop, Test, Deploy and Upgrade) is not well known. Without proper methodologies / Formal Tools as is the case with most blockchain systems, bugs slip in easily. Studies on failures point to developers missing low handing bugs as most of the errors are simulated with 3 nodes or less [2]. The developer ecosystem is fast changing with technologies like containers and the emerging Micro Services architectures and Cloud Native Computing. The decisions on setup, build, CI/CD, Automated Testing are not taken at the beginning and as pointed out by [3] affect the entire project. The good news is that there are lot of tools available in the Open source domain that addresses the needs. The bad news is that picking the right combination to work in team sizes of 5 or more is not straight forward. This paper details our journey and lessons learnt on setting up Application Development Teams for Rapid Development in Blockchain using multiple blockchain tools like Ethereum and the HyperLedger Fabric. It details both our application architecture and the modifications needed to enable a Cloud Native architecture and the build/ deploy/ testing frameworks that we used.
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.
This paper tries to offer a non-exhaustive overview on blockchain. It is presented as being a management rather than a technical topic. With the help of the fathers of economics, the history of transactions and institutions are described accompanied by the current status of the economy. The blockchain protocol of Satoshi Nakamoto solves the problem of digital double spending. The whole protocol of hashing, blocking, chaining and mining is described together with the issues of limited computer power and computer memory, next to the general subjects such as the security of the assets and the publicity of information. The applications of the cryptocurrency bitcoin and the smart contracts basis of ethereum are reviewed. In the supply chain, blockchain can be used for more transparency regarding the origin of products, cargo shipment tracking and cargo shipment weight. Currently, IBM and Maersk are working together on a new blockchain solution in the shipping and logistics industry. As this thesis is written at CARU containers, the implications in the container sector for this company specifically will be debated and recommendations are given for different scenarios in the future. The developments need to be followed closely as the impact of blockchain could be very disadvantageous.
The blockchain protocol is able to make one big ledger that is distributed, synchronized and cryptographically secured. It can make trusted third parties largely obsolete. Blockchain is still in its infancy, therefore a lot of issues need to be solved and more applications can still be developed but slowly and steadily it acquires the potential to improve the entire economy and to replace a part of the activities of the current actors in the supply chain.
Tien Tuan Anh Dinh, Rui Liu, Meihui Zhang, Gang Chen · 6 authors
Blockchain technologies are gaining massive momentum in the last few years. Blockchains are distributed ledgers that enable parties who do not fully trust each other to maintain a set of global states. The parties agree on the existence, values, and histories of the states. As the technology landscape is expanding rapidly, it is both important and challenging to have a firm grasp of what the core technologies have to offer, especially with respect to their data processing capabilities. In this paper, we first survey the state of the art, focusing on private blockchains (in which parties are authenticated). We analyze both in-production and research systems in four dimensions: distributed ledger, cryptography, consensus protocol, and smart contract. We then present BLOCKBENCH, a benchmarking framework for understanding performance of private blockchains against data processing workloads. We conduct a comprehensive evaluation of three major blockchain systems based on BLOCKBENCH, namely Ethereum, Parity, and Hyperledger Fabric. The results demonstrate several trade-offs in the design space, as well as big performance gaps between blockchain and database systems. Drawing from design principles of database systems, we discuss several research directions for bringing blockchain performance closer to the realm of databases.
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.
In this paper, we consider the issue of trust and trust-related factors in the context of decentralized applications running on public blockchain platforms such as Ethereum. These decentralized applications emphasize a lack of reliance on a trusted third party, and are marketed as applications that cannot be censored or stopped. To determine whether either social trust or technology trust applies in these cases, we examine the extent to which these applications could be considered to be out of the control of a third party, by qualitatively analyzing how developers define the characteristics of decentralization, trustlessness and autonomy. The results show that although decentralized applications' websites make reference to these concepts, they are not defined in the same way. In cases where there is no mention of either of these concepts, it is therefore difficult to say which definitions are assumed. In addition, we also found contradictions in the characterization of the level of developer control. We discuss these findings in the context of research on user trust and propose future research directions.