Blockchain based Decentralized Applications: Technology Review and Development Guidelines

Blockchain or Distributed Ledger Technology is a disruptive technology that provides the infrastructure for developing decentralized applications enabling the implementation of novel business models even in traditionally centralized domains. In the last years it has drawn high interest from the academic community, technology developers and startups thus lots of solutions have been developed to address blockchain technology limitations and the requirements of applications software engineering. In this paper, we provide a comprehensive overview of DLT solutions analyzing the addressed challenges, provided solutions and their usage for developing decentralized applications. Our study reviews over 100 blockchain papers and startup initiatives from which we construct a 3-tier based architecture for decentralized applications and we use it to systematically classify the technology solutions. Protocol and Network Tier solutions address the digital assets registration, transactions, data structure, and privacy and business rules implementation and the creation of peer-to-peer networks, ledger replication, and consensus-based state validation. Scaling Tier solutions address the scalability problems in terms of storage size, transaction throughput, and computational capability. Finally, Federated Tier aggregates integrative solutions across multiple blockchain applications deployments. The paper closes with a discussion on challenges and opportunities for developing decentralized applications by providing a multi-step guideline for decentralizing the design of traditional systems and implementing decentralized applications.

[1]  David Schwartz,et al.  The Ripple Protocol Consensus Algorithm , 2014 .

[2]  Leslie Lamport,et al.  The part-time parliament , 1998, TOCS.

[3]  Thaier Hayajneh,et al.  Healthcare Blockchain System Using Smart Contracts for Secure Automated Remote Patient Monitoring , 2018, Journal of Medical Systems.

[4]  Juan Benet,et al.  IPFS - Content Addressed, Versioned, P2P File System , 2014, ArXiv.

[5]  Donald R. Morrison,et al.  PATRICIA—Practical Algorithm To Retrieve Information Coded in Alphanumeric , 1968, J. ACM.

[6]  Roberto Baldoni,et al.  PBFT vs Proof-of-Authority: Applying the CAP Theorem to Permissioned Blockchain , 2018, ITASEC.

[7]  Joseph Poon,et al.  Plasma : Scalable Autonomous Smart Contracts , 2017 .

[8]  Marko Vukolic,et al.  The Next 700 BFT Protocols , 2015, ACM Trans. Comput. Syst..

[9]  Nick Lambert,et al.  Safecoin : The Decentralised Network Token , 2015 .

[10]  Jollen Chen,et al.  Flowchain : A Distributed Ledger Designed for Peer-to-Peer IoT Networks and Real-time Data Transactions , 2017 .

[11]  Ariel Gabizon,et al.  Cryptocurrencies Without Proof of Work , 2014, Financial Cryptography Workshops.

[12]  Matthew Green,et al.  Zerocoin: Anonymous Distributed E-Cash from Bitcoin , 2013, 2013 IEEE Symposium on Security and Privacy.

[13]  Marko Hölbl,et al.  EduCTX: A Blockchain-Based Higher Education Credit Platform , 2017, IEEE Access.

[14]  Silvio Micali,et al.  The Knowledge Complexity of Interactive Proof Systems , 1989, SIAM J. Comput..

[15]  Eli Ben-Sasson,et al.  Zerocash: Decentralized Anonymous Payments from Bitcoin , 2014, 2014 IEEE Symposium on Security and Privacy.

[16]  Jing Chen,et al.  Algorand: A secure and efficient distributed ledger , 2019, Theor. Comput. Sci..

[17]  DTB 001 : Decred Technical Brief , .

[18]  Miguel Oom Temudo de Castro,et al.  Practical Byzantine fault tolerance , 1999, OSDI '99.

[19]  Mody,et al.  Bitcoin and Blockchain : A peer to peer electronic cash system , 2018 .

[20]  John K. Ousterhout,et al.  In Search of an Understandable Consensus Algorithm , 2014, USENIX ATC.

[21]  Alon Zakai,et al.  Bringing the web up to speed with WebAssembly , 2017, PLDI.

[22]  Pedro Franco,et al.  Understanding Bitcoin: Cryptography, Engineering and Economics , 2014 .

[23]  Vivien Quéma,et al.  RBFT: Redundant Byzantine Fault Tolerance , 2013, 2013 IEEE 33rd International Conference on Distributed Computing Systems.

[24]  Alex Biryukov,et al.  Asymmetric proof-of-work based on the Generalized Birthday problem , 2017, IACR Cryptol. ePrint Arch..

[25]  Daniel Davis Wood,et al.  ETHEREUM: A SECURE DECENTRALISED GENERALISED TRANSACTION LEDGER , 2014 .

[26]  Garrick Hileman,et al.  Global Blockchain Benchmarking Study , 2010 .

[27]  Prateek Saxena,et al.  A Secure Sharding Protocol For Open Blockchains , 2016, CCS.

[28]  John Tromp,et al.  Cuckoo Cycle: A Memory Bound Graph-Theoretic Proof-of-Work , 2015, Financial Cryptography Workshops.

[29]  Michael Dahlin,et al.  Making Byzantine Fault Tolerant Systems Tolerate Byzantine Faults , 2009, NSDI.

[30]  Miguel Castro,et al.  Practical byzantine fault tolerance and proactive recovery , 2002, TOCS.

[31]  Andrew Lippman,et al.  MedRec: Using Blockchain for Medical Data Access and Permission Management , 2016, 2016 2nd International Conference on Open and Big Data (OBD).

[32]  Mariana Raykova,et al.  RapidChain: Scaling Blockchain via Full Sharding , 2018, CCS.

[33]  M. Zeilinger Digital Art as ‘Monetised Graphics’: Enforcing Intellectual Property on the Blockchain , 2016, Philosophy & Technology.

[34]  Eli Ben-Sasson,et al.  Succinct Non-Interactive Zero Knowledge for a von Neumann Architecture , 2014, USENIX Security Symposium.

[35]  Jason Teutsch,et al.  A scalable verification solution for blockchains , 2019, ArXiv.

[36]  Alex Pentland,et al.  Decentralizing Privacy: Using Blockchain to Protect Personal Data , 2015, 2015 IEEE Security and Privacy Workshops.

[37]  Iddo Bentov,et al.  Proof of Activity: Extending Bitcoin's Proof of Work via Proof of Stake [Extended Abstract]y , 2014, PERV.

[38]  Elaine Shi,et al.  Hawk: The Blockchain Model of Cryptography and Privacy-Preserving Smart Contracts , 2016, 2016 IEEE Symposium on Security and Privacy (SP).

[39]  Ramakrishna Kotla,et al.  Zyzzyva , 2007, SOSP.

[40]  Colin Percival STRONGER KEY DERIVATION VIA SEQUENTIAL MEMORY-HARD FUNCTIONS , 2009 .

[41]  Martin Florian,et al.  Anonymous CoinJoin Transactions with Arbitrary Values , 2017, 2017 IEEE Trustcom/BigDataSE/ICESS.

[42]  Vitalik Buterin,et al.  Casper the Friendly Finality Gadget , 2017, ArXiv.

[43]  Michael K. Reiter,et al.  Fault-scalable Byzantine fault-tolerant services , 2005, SOSP '05.

[44]  Philipp Jovanovic,et al.  OmniLedger: A Secure, Scale-Out, Decentralized Ledger via Sharding , 2018, 2018 IEEE Symposium on Security and Privacy (SP).

[45]  Stephanie Alexander,et al.  Augur: a decentralized oracle and prediction market platform , 2015 .

[46]  Liuba Shrira,et al.  HQ replication: a hybrid quorum protocol for byzantine fault tolerance , 2006, OSDI '06.

[47]  Markus Jakobsson,et al.  Proofs of Work and Bread Pudding Protocols , 1999, Communications and Multimedia Security.

[48]  Shawn Wilkinson,et al.  Storj A Peer-to-Peer Cloud Storage Network , 2014 .

[49]  Aviv Zohar,et al.  Secure High-Rate Transaction Processing in Bitcoin , 2015, Financial Cryptography.

[50]  Leslie Lamport,et al.  Byzantizing Paxos by Refinement , 2011, DISC.

[51]  Marko Vukolic,et al.  Hyperledger fabric: a distributed operating system for permissioned blockchains , 2018, EuroSys.

[52]  Pieter Wuille,et al.  Enabling Blockchain Innovations with Pegged Sidechains , 2014 .

[53]  Alex Biryukov,et al.  Equihash: Asymmetric Proof-of-Work Based on the Generalized Birthday Problem , 2016, NDSS.