Blockchain:Architecture and Research Progress
Qi-Feng SHAO,Che-Qing JIN,Zhao ZHANG,Wei-Ning QIAN,Ao-Ying ZHOU
DOI: https://doi.org/10.11897/SP.J.1016.2018.00969
2018-01-01
Abstract:Traditional database management systems are controlled by a single entity,because the data in the databases cannot be fully trusted by all participants in a multi-party collaboration scenario,each participant must maintain a separate database that hosts its own business data,the discrepancies on each participant's databases lead to slowdowns of manual reconciliation and some disputes.Blockchain can solve the problem of trust among multiple participants.Blockchain is a decentralized,trustless,tamper-proof and traceable distributed database managed by multiple participants.A blockchain also called distributed ledger,is essentially an append-only data structure maintained by a set of nodes which do not fully trust each other.Nodes in the blockchain keep replicas of the blocks,each containing an ordered set of transactions modifying the states.All nodes agree on the transactions and their order.Traditional databases assume a trusted environment.Blockchain's key property is that it assumes nodes behave in arbitrary manner.Being able to tolerate Byzantine failure by consensus protocol,blockchain establishes a reliable trust between both parties of the transaction,and implements trusted data sharing and peer-to-peer value exchange without third-party intermediaries.The blockchain's consensus protocol must tolerate Byzantine failures.This is not the case in traditional distributed systems,in which they use the Paxos or Raft consensus protocol.There are many variants of consensus protocols being developed for blockchains.They can be classified into two kinds.One consists of purely computation based protocols that use proof of computation to randomly select a node which decides the next block.PoW is the prime example.The other are purely communication based protocols in which nodes have equal votes and go through multiple rounds of communication to reach consensus.PBFT is the prime example.A blockchain system can be categorized as either public or consortium.In the former,any node can join and leave the system.In the latter,the blockchain enforces strict membership.There is an access control mechanism to determine who can join the system.PoW are used in public blockchains because they are fully decentralized,and PBFT are used in consortium blockchains because they assume authenticated nodes.Bitcoin is the most successful blockchain application.Ethereum is the most widely used platform in public blockchains.Hyperledger Fabric is the most widely used platform in consortium blockchains. This paper proposes an architecture model of the blockchain system based on the above three mainstream blockchain platforms.This paper then discusses the principles and technologies of blockchain according to blockchain data,consensus mechanism,smart contract,scalability and security.Specifically,blockchain data is introduced from three aspects of data structure,data model and datastore,consensus mechanism is discussed about PoW applied in public blockchains and PBFT applied in consortium blockchains,smart contract is described from three aspects of running mechanism,programing language and sandbox,blockchain scalability is analyzed about sharding and multichannel,blockchain security is discussed from digital signing and verification, and privacy preserving.This paper also analyzes the advantages,disadvantages and technology trends of blockchain by comparing with traditional databases,and gives several challenging research problems for blockchain.The development of blockchain will bring both challenges and opportunities for many industries,and result in the second generation of the digital revolution bringing us the Internet of Value.