ISSN 1000-1239 CN 11-1777/TP

计算机研究与发展 ›› 2020, Vol. 57 ›› Issue (7): 1555-1567.doi: 10.7544/issn1000-1239.2020.20190552

• 系统结构 • 上一篇    


陈幻, 王意洁   

  1. (并行与分布处理国家重点实验室(国防科技大学)  长沙  410073)  (国防科技大学计算机学院  长沙  410073)  (
  • 出版日期: 2020-07-01
  • 基金资助: 

A Lightweight Scalable Protocol for Public Blockchain

Chen Huan, Wang Yijie   

  1. (National Laboratory for Parallel and Distributed Processing (National University of Defense Technology), Changsha 410073)  (College of Computer, National University of Defense Technology, Changsha 410073)
  • Online: 2020-07-01
  • Supported by: 
    This work was supported by the National Key Research and Development Program of China (2016YFB1000101), the National Natural Science Foundation of China (61379052), the Science Foundation of Ministry of Education of China (2018A02002), and the Natural Science Foundation of Hunan Province of China for Distinguished Young Scholars (14JJ1026).

摘要: 区块链技术解决了在不可信环境下建立信任的基础难题,被视为继云计算、物联网和人工智能之后的又一项颠覆性技术.然而,目前公有链面临2大根本难题:1)较低的系统吞吐率无法满足大规模运用的需求;2)持续增长的账本和状态数据,对节点磁盘和内存容量提出了较高要求.已有的扩容技术往往只针对提升系统吞吐,忽略了区块链数据增长对节点存储资源消耗的严重问题.为此,提出了PocketChain,一种对存储友好的轻量级扩容技术,在不牺牲去中心化与安全性的前提下,实现高吞吐和低存储的特性.首先,针对数据增长问题,PocketChain采用无状态客户端设计,使用RSA累加器对状态进行压缩,使得验证节点只需存储区块头部信息,大大降低节点对磁盘和内存的需求.其次,PocketChain将无状态客户端运用于分片技术架构下,在提升系统吞吐的同时,克服分片周期性随机重组导致的状态迁移问题,从而能进一步提升分片重组频率,增加分片系统安全性.实验结果表明:该方法能够有效降低节点存储需求,并线性提升系统吞吐.

关键词: 公有链, 分片, RSA累加器, 无状态客户端, 未消费交易输出

Abstract: Blockchain technology solves the fundamental problem of building trust in an untrusted environment, which is regarded as a new disruptive technology after clouding computing, the IoT, and the artificial intelligence. However, the current public blockchains face two serious problems: on one hand, the low system throughput cannot meet the needs of large-scale applications; on the other hand, the ever-growing nature of blockchain could be quite cumbersome for validators since they consume much disk and RAM resources. Existing works were often used to improve system throughput, ignoring the increasingly serious problem of blockchain data growth for long run. Thus, in this work, we propose the PocketChain, a scalable and storage-friendly lightweight protocol that can achieve high throughput and low storage without sacrificing decentralization and security. Firstly, PocketChain uses a stateless client design, using the RSA accumulator to combine the large state into one short commitment, so that the validators can only store the block headers, greatly reducing the disk and RAM requirements. Secondly, PocketChain applies the stateless client to the sharding technology, which not only improves the system throughput, but overcomes the state migration problem caused by periodical reshuffling of sharding technology. This can further increase the security of sharding by improving the reshuffling frequency. The experiment results show that the PocketChain can reduce the storage overhead of validators and linearly improve the system throughput.

Key words: public blockchain, sharding, RSA accumulator, stateless client, unspent transaction outputs (UTXO)