Book Read Free

Digital Marketplaces Unleashed

Page 26

by Claudia Linnhoff-Popien


  Bitcoin [2]

  Ethereum [12]

  A maximum of 21 million bitcoins supply, halving newly generated supply every 4 years

  Unlimited ethers supply

  10 min block creation time

  14 s block creating time

  Crypto puzzle via partial SHA256 hash collision, requiring CPU time and minimal RAM; dedicated hardware, application‐specific integrated circuit (ASIC) used [9]

  Crypto puzzle is variation of Dagger‐Hashimoto [13], which requires besides CPU time also RAM; GPU cards currently used

  Limited scripting language, not Turing complete

  General‐purpose scripting language, Turing complete

  Started in 2009, creator unknown (pseudonym used: Satoshi Nakamoto)

  Started in 2015, initiator Vitalik Buterin

  Balance based on unspent transaction outputs

  Balance is account‐based

  Transaction costs driven by transaction size

  Transaction costs driven by operations in the smart contract

  Max throughput: 3–7 transactions per second

  Max throughput: 23–25 transaction per second

  Transactions created by users

  Transactions created by users or smart contracts

  Market capitalization: 9.9 billion USD [14]

  Market capitalization: 1 billion USD [14]

  Bitcoin created: 15.8 million BTC [14]

  Ethers created: 83 million ETH [14]

  19.3 Current Blockchain Developments and Limitations

  In general and as of today, blockchains, especially for Bitcoin or Ethereum, do not scale. The ever increasing number of transactions makes the blockchain grow. Currently, Bitcoin transactions stored in the Bitcoin blockchain show a size of 75 GByte. The Ethereum blockchain, while still much younger than the Bitcoin blockchain, observes the same issue and has as of today a size of 24 GByte. While scalability is being discussed between many researchers and companies in the world and solutions are being proposed, the specific scalability solutions differ greatly for Bitcoin or Ethereum. The latter uses a general purpose blockchain, while the former is based on a specialized blockchain. This specialized blockchain offers mechanisms – typically specified to meet application demands and to make the approach scalable –, while the general purpose blockchain is much more difficult to scale for a general application.

  Specifically, Bitcoin is introducing a mechanism termed “segregated witnesses” [15], which removes besides transaction malleability also signatures in the transaction resulting in smaller transactions. As of today and in the long term other solutions are discussed, such as snapshots or pruning of spent transactions. For Ethereum, “sharding” has been proposed, where an Ethereum node stores only parts of the blockchain, while other nodes host other parts. However, as of today sharding exists only in theory and shows other unresolved issues, such as rogue validators, communication across multiple shards, and reaching global consensus, while working on partial data only. The key future challenge is to design and build scalability mechanisms for general purpose blockchains, without trading their inherent advantages discussed above.

  Currently the debate in the Bitcoin system either to increase the block size or to make the protocol more efficient with segregated witnesses will not solve scalability in the long term. Also with segregated witnesses, which is planned to be integrated soon, the Blockchain is only growing slower by a constant factor. Scaling to the volume to VISA credit card transaction numbers, which show around Christmas 57,000 transactions per second, is not feasible anytime soon, as the Bitcoin system currently allows for only 3–7 transaction per second. Ethereum has a similar low number of 25 transactions per second and adopting Ethereum‐ or Bitcoin‐based products may suffer from increased transaction fees when the limit is reached. It is expected that Ethereum reaches a much higher transaction per second rate, once the switch from PoW to PoS has been performed.

  Smart contracts execute based on their input and contract code. If the smart contract was not properly designed, e. g., allowing to withdraw funds from an unauthorized address, such a withdrawal may be unintentional, although the smart contract executed correctly. To reflect the intention of the smart contract creator, a language is used to specify the contract. Ethereum offers the language Solidity, a typed JavaScript dialect. However, Solidity it is not concise and easy to use as seen with the DAO disaster [4], although the DAO smart contract code was written by Ethereum experts. Yet, a security problem allowed to withdraw funds. Current best practices recommend to keep the contract as simple as possible, which may not be doable in all situations, since some contracts are complex by design. Ethereum runs smart contracts in the EVM. To produce respective code, a language needs to compile Solidity‐based smart contracts written to EVM byte code. Future language research may reveal better alternatives, such as using a functional language for the EVM or adding functional elements to improve Solidity.

  Lastly, while many factors affecting a blockchain’s security, either permissionless or permissioned (cf. Sect. 19.4 below), such as block size, network size, or end‐to‐end delay, have been evaluated in the recent past, a comprehensive approach to a blockchain security and performance evaluation is still missing. Thus, the need for (a) a comprehensive threat model, (b) an impact model of the infrastructure (either the public network, separate clouds, or cross cloud‐based alternatives), (c) a Service Level Agreement for a blockchain’s performance, and (s) a suitable testing as well as management framework has emerged.

  19.4 Classification, Related Work, and Key Characteristics

  As of today major observations on smart contracts in general and blockchains specifically are summarized here to establish a basis for future application evaluations and to benefit investigations with respect to technology, economics, and regulation/law. Thus, blockchains can be classified using the following dimensions: (a) accessibility, (b) consensus mechanisms, and (c) its crypto currency.

  The first dimension determines how the blockchain can be accessed (accessibility), whether it is publically available or if it requires permission to access it. The two main categories in the accessibility dimension cover: public blockchains (permissionless) and private or private group‐based (consortium [3], permissioned) blockchains as shown in Table 19.2. Table 19.2Accessibility

  Public Blockchain (PUB)

  Private or Private Group‐based (Consortium) Blockchain (PRIV)

  A public blockchain can be accessed and used by anyone following the respective protocol

  E. g., in Bitcoin, there is one reference implementation and several independent libraries that can participate in the Bitcoin network written in Go, Java, JavaScript, C, C++, Python, or Objective‐C

  A private blockchain is controlled by (a) a single organization that manages the permission or (b) a consortium with known members

  The access is controllable and permissioned. Any open source blockchain could be used as a private blockchain with small modifications, however, there exist specialized blockchains for running a private blockchain

  The second classification dimension is the consensus mechanism. A consensus mechanism is one of the key features in a distributed system in order that all nodes will reach eventually the same state. Distributed systems can use Byzantine Agreement Protocols such as Paxos [16] or Raft [17] as a consensus mechanism, however, Sybil attacks [18] can render those consensus mechanisms useless. Thus, consensus mechanisms for blockchain need to by Sybil‐proof. For public blockchains this is typically a PoW or PoS approach, for private or consortium blockchains it is PoS or a Trusted Entity (TE) acting as a gatekeeper and may be used in combination with the Byzantine Fault Tolerant protocol. Sidechains may leverage the consensus mechanism of its parent chain [19]. provides an overview on consensus protocols in blockchains. Table 19.3 summarizes the key three categories. Table 1
9.3Consensus Mechanisms

  Proof‐of‐Work (PoW)

  Proof‐of‐Stake (PoS)

  Trusted Entity (TE)

  PoW is the consensus mechanism used in Bitcoin and Ethereum. A difficult crypto puzzle ensures that possible double spending attempts are expensive

  The main drawback is the huge amount of energy

  used to solve these crypto puzzles

  PoW can run with dedicated hardware (ASIC) or with a memory and bandwidth‐hard crypto puzzle (MEM‐HARD)

  PoS defines a consensus mechanism, where owners of a crypto currency have to prove ownership (proof for their stake). A user with 1% of the crypto currency can create 1% of the blocks

  The main concern with PoS is “no‐thing at stake”, with several mechanisms proposed to solve it [19]

  A mix between PoS and PoW is termed Proof‐of‐Activity (PoA)

  PoS is considered resource‐friendly

  Several schemes exist with voting delegates (DELEG) or prepaying crypto currency (PRE)

  Trusting entities defines another form of consensus, where multiple trusted entities can vote (and/or apply a Byzantine Fault Tolerant protocol) or a single trusted entity can decide for or against adding a block to become part of the blockchain

  Similar to PoS, TE is resource‐friendly

  Many private blockchains use TE, however, there are also public blockchains, where trusted entities can vote or trusted entities can be chosen

  The third dimension distinguishes, whether the blockchain uses a crypto currency or not. This currency can be either mined or pre‐created/burned (cf. Table 19.4). In the following existing blockchains are reviewed and categorized according to these dimensions. Many of those blockchains listed are a Proof‐of‐Concept (PoC) and it is yet to be seen how reliable they will work in the future. Since over 600 crypto currencies with a market capitalization exist [14], the focus here is laid on the most important, influential ones, while many specifically Bitcoin‐based altcoins are omitted. Table 19.4Crypto Currencies

  Mining Crypto Currency (CRY‐M)

  Pre‐creating Crypto Currency with Distribution (CRY‐P)

  No Use of Crypto Currency (NCRY)

  The result of mining is a block with a reward in the form of crypto currency. Bitcoin and Ethereum reward with bitcoins and ethers, respectively. Some blockchains allow to define various other crypto currencies or assets besides its native crypto currency

  Instead of mining crypto currency, the currency can be pre‐created and distributed in an Initial Coin Offering (ICO). The incentive to mine a block is to collect transaction fees. Other variations include “Proof‐of‐Burn” (PoB) or “Proof‐of‐Possession” (PoP) using another crypto currency

  Some blockchains do not need any kind of native crypto currency, but allow for overlay assets. Especially private blockchains do not use a native currency

  Bitcoin has the largest market capitalization and uses a PoW consensus mechanism. All blocks are created, as shown above, every 10 min and the reward is currently at 12.5 bitcoins, halving every 4 years. Bitcoin is a public blockchain with many clients and libraries available. Many variations of Bitcoin exist, the most popular with respect to market capitalization is Litecoin, which is based on the Bitcoin source code, but has a different PoW mechanism that makes it hard to use dedicated hardware for mining. Litecoin shows a block creation time of 2.5 min.

  Ethereum

  also uses PoW, however, Ethereum plans to switch from PoW to PoS soon, especially to relax from the strong power and energy dependency of crypto puzzle usage. As such it is planned to lower costs of mining and increase the scalability. While some elements may require PoW initially, it is planned to switch entirely to PoS. The status is a PoC that was released in March 2016 [20]. Ethereum can also be used as a private blockchain, as the source code is open and accessible.

  BlockApps

  is such a provider for a private Ethereum blockchain. Eris Industries with their eris:db, which also uses Ethereum as a basis, is already using PoS, however, not in a public blockchain. Eris:db is a business‐focused blockchain, where the Tendermint Consensus protocol is used for PoS. Although this protocol follows an interesting concept, if many validators sign each block, storage and network limitations may become an important issue for scalability. Chain Core is another company offering a blockchain for business. They provide a private blockchain with a controlled access. Further scalability improvements are planned for Ethereum with the Casper/Serenity release, such as sharding [20], which is the concept of horizontal partitioning of a database. In the case of Ethereum it is to split the space of possible accounts. Each shard gets its own validators with the idea that those validators only validate transactions within a shard and a special handling for inter‐shard communication, where transactions from different accounts in different shards need to be consistently validated.

  Monero

  is an anonymous crypto currency. It achieves this goal by using ring signatures with one real signature and several decoy signatures. Furthermore, a mixing of inputs is enforced in the network. Stealth addresses are used, making it difficult to trace the sender and recipient. Monero uses its own network, based on CryptoNote, and it uses a memory‐hard PoW. Future plans consist of including the I2P protocol, an anonymization protocol to hide the real Internet Protocol (IP) address in use. Monero recently gained traction due to media coverage and the integration by darknet marketplaces, where privacy is a big concern.

  Lisk

  is a public blockchain written from scratch. Lisk enables the development of “Dapps” (Distributed Applications), which are decentralized applications in an autonomous operation in terms of a peer‐to‐peer management. It uses a PoS mechanism using delegates and voting. However, a node can become a delegate only, if it owns many Lisk coins. Lisk uses smart contracts to determine procedures and constraints, which formulate rule‐based, automatically operated processes.

  Another blockchain written from Scratch is IOTA. The goal of IOTA is to become the backbone of IoT by supporting real‐time transactions without fees. As it does not store the complete history, nodes going offline may take offline important history data. IOTA does not support mining; tokens will be distributed in an Initial Coin Offering (ICO) phase. Tokens are accessed using passwords rather than public/private key pairs.

  Hyper Ledger

  an Open Source Linux Foundation project since January 2016, is a blockchain project creating a modular blockchain, specifically as an open standard for the basis blockchain technology of the Distributed Ledger Technology. The aim is to bring the blockchain technology a step forward to mainstream commercial adoption. They offer a modular architecture so that they can use any kind of consensus mechanism, such as PoW, PoS, or TE.

  Nxt

  uses PoS as well and similar to IOTA is uses passwords to access crypto assets rather than public/private key pairs. Another business‐oriented blockchain is R3 Corda. R3 Corda is a distributed ledger for recording and managing financial agreements. Unlike other blockchains, R3 Corda does not share transactions with other nodes. Only those parties involved in that transaction can access the data. Also validation is done by those parties involved and not by a random node. Openchain is a private blockchain for organizations that can be configured as a Bitcoin side chain. It supports smart contracts. It uses a trust‐based consensus mechanism and uses a client/server architecture.

  Stratis

  is built on top of the Bitcoin blockchain and allows to create private sidechains. Another business‐oriented blockchain is Multichain, where private blockchains can be built. It is compatible to the Bitcoin API, however, allows many configuration options, such as block size, types of transactions, who can access it, and its assets. Any type of assets can be used and created on Multichain, allowing to trade shares, bonds, or commodities
. In terms of scalability, BigchainDB claims to allow 1 million writes per second and petabytes of capacity. It is a private blockchain connecting to a RethinkDB cluster to achieve that speed. Rootstock (RSK) is a Bitcoin sidechain, which offers smart contracts with a Turing‐complete language. RSK is compatible with the Ethereum VM and can run its smart contracts. Its currency Rootcoins can be exchanged to Bitcoins and vice versa. Similar to Rootstock is Counterparty that allows Ethereum smart contract to run on the Bitcoin platform. Counterparty uses a native currency, but allows to create any kind of assets. Another company working on sidechains is Blockstream, also providing an implementation of the Lightning network, which allows micro transaction on the Bitcoin blockchain.

 

‹ Prev