CloudChain: A Cloud Blockchain Using Shared Memory Consensus and RDMA

Blockchain technologies can enable secure computing environments among mistrusting parties. Permissioned blockchains are particularly enlightened by companies, enterprises, and government agencies due to their efficiency, customizability, and governance-friendly features. Obviously, seamlessly fusing blockchain and cloud computing can significantly benefit permissioned blockchains; nevertheless, most blockchains implemented on clouds are originally designed for loosely-coupled networks where nodes communicate asynchronously, failing to take advantages of the closely-coupled nature of cloud servers. In this paper, we propose an innovative cloud-oriented blockchain -- CloudChain, which is a modularized three-layer system composed of the network layer, consensus layer, and blockchain layer. CloudChain is based on a shared-memory model where nodes communicate synchronously by direct memory accesses. We realize the shared-memory model with the Remote Direct Memory Access technology, based on which we propose a shared-memory consensus algorithm to ensure presistence and liveness, the two crucial blockchain security properties countering Byzantine nodes. We also implement a CloudChain prototype based on a RoCEv2-based testbed to experimentally validate our design, and the results verify the feasibility and efficiency of CloudChain.

[1]  Keke Gai,et al.  Blockchain Meets Cloud Computing: A Survey , 2020, IEEE Communications Surveys & Tutorials.

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

[3]  Hagit Attiya,et al.  Sharing memory robustly in message-passing systems , 1990, PODC '90.

[4]  Jie Wu,et al.  BoR: Toward High-Performance Permissioned Blockchain in RDMA-Enabled Network , 2020, IEEE Transactions on Services Computing.

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

[6]  Silvio Micali,et al.  Algorand: Scaling Byzantine Agreements for Cryptocurrencies , 2017, IACR Cryptol. ePrint Arch..

[7]  Robert D. Russell,et al.  A Performance Study to Guide RDMA Programming Decisions , 2012, 2012 IEEE 14th International Conference on High Performance Computing and Communication & 2012 IEEE 9th International Conference on Embedded Software and Systems.

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

[9]  Sachin Shetty,et al.  Attack Surface Analysis of Permissioned Blockchain Platforms for Smart Cities , 2018, 2018 IEEE International Smart Cities Conference (ISC2).

[10]  Karl R. Abrahamson On achieving consensus using a shared memory , 1988, PODC '88.

[11]  Scott Shenker,et al.  Revisiting network support for RDMA , 2018, SIGCOMM.

[12]  Marcos K. Aguilera,et al.  The Impact of RDMA on Agreement , 2019, PODC.

[13]  Emin Gün Sirer,et al.  Bitcoin-NG: A Scalable Blockchain Protocol , 2015, NSDI.

[14]  Cheng Wang,et al.  APUS: fast and scalable paxos on RDMA , 2017, SoCC.

[15]  Miguel Correia,et al.  Sharing Memory between Byzantine Processes Using Policy-Enforced Tuple Spaces , 2009, IEEE Transactions on Parallel and Distributed Systems.

[16]  Marcos K. Aguilera,et al.  Passing Messages while Sharing Memory , 2018, PODC.

[17]  Aruna Seneviratne,et al.  Integration of Blockchain and Cloud of Things: Architecture, Applications and Challenges , 2019, IEEE Communications Surveys & Tutorials.

[18]  Satoshi Nakamoto Bitcoin : A Peer-to-Peer Electronic Cash System , 2009 .

[19]  Torsten Hoefler,et al.  DARE: High-Performance State Machine Replication on RDMA Networks , 2015, HPDC.

[20]  Sotirios Brotsis,et al.  On the Security and Privacy of Hyperledger Fabric: Challenges and Open Issues , 2020, 2020 IEEE World Congress on Services (SERVICES).

[21]  Jae Kwon,et al.  Tendermint : Consensus without Mining , 2014 .