BrokerChain——基于“做市商账户”的区块链跨分片协议

论文信息:

Huawei Huang, Xiaowen Peng, Jianzhou Zhan, Shenyang Zhang, Yue Lin, Zibin Zheng, Song Guo, “BrokerChain: A Cross-Shard Blockchain Protocol for Account/Balance-based State Sharding”, INFOCOM, May 5, 2022.

文章目录

  • BrokerChain——基于“做市商账户”的区块链跨分片协议
    • 一、Background
      • 1. Motivation
      • 2. Challenges
      • 3. Contributions
    • 二、Preliminaries
      • 1. Sharding
      • 2. Related Work
    • 三、Solution
      • 1. Overview
        • 1.1 Two Shard
        • 1.2 Four sequential phases
      • 2. Account Segmentation
      • 3. mSST
      • 4. Handling cross-sharing TXs
        • 4.1 Broker account
        • 4.2 A success case
        • 4.3 A failure case
    • 四、Experiment
      • 1. Setting
      • 2. Main Experimental results
    • 五、Conclusion

一、Background

1. Motivation

区块链底层技术仍处于初期探索阶段,还面临着诸多问题和挑战。具体来讲,现有的区块链技术难以解决共识效率问题。例如,比特币的吞吐量为7 TXs/s 、以太坊的吞吐量也仅14 TXs/s,远低于商用级别所需的吞吐量要求。因此,需要提高区块链的可扩展性,才能扩大其使用场景,从而赋能数字经济、金融保险、政务等多个领域与行业。同时,目前区块链面临三难困境,没有一种区块链可以很好的同时实现可扩展性、安全性和去中心化。

针对区块链的可扩展性问题,研究人员提出了多种不同的技术方案,如闪电网络、DAG技术、状态通道和分片机制。其中分片机制是目前为止最有希望在保持高度去中心化特性的同时,可提高区块链可扩展性的链上扩容技术。分片机制将区块链网络划分为若干个互不相交的分片,每个分片只存储本分片内的数据而不是完整的账本状态,从而缓解存储开销;此外,多个分片间可以并行验证交易,产生区块,实现了吞吐量的近线性提升,有效提升了全网整体的事务处理性能。

2. Challenges

但是,区块链分片技术仍面临诸多挑战,片内共识、片间通信还有整个区块链分片协议等等方面还面临许多痛点难点,仍需要不断地进行研究和摸索。分片策略还停留在理论阶段,现有的分片方法依赖于UTXO(未使用的交易输出)或账户/余额交易模型。基于账户/余额模型的分片机制还存在如下主要挑战:

  1. 跨分片交易比例过高,几乎所有交易均为跨分片交易。过高的跨分片交易率不仅给系统增加了额外的交易负载,而且会造成大量的跨分片通信开销。
  2. 分片间的交易负载严重失衡,存在冷热不均的现象。我们分别称需要处理过量和少量交易的分片为热分片(Hot Shard)和冷分片(Clod Shard)。热分片由于被持续注入大量的交易,产生了交易拥挤的现象,这会增加交易的确认延迟。而冷分片内只有少量交易可以处理,所产生的区块的交易填充率不高,造成了算力、带宽等资源的浪费。

而对如上两个问题,一个难题是如何保证跨分片交易比例较低的同时保证分片间的交易负载均衡。

3. Contributions

  • BrokerChain, a cross-chard protocol

    • cross-shard TXs——broker, double nonce, and particle time state lock
    • hot-shard——state partition and account segmentation

BrokerChain利用动态的状态划分和账户分割机制,通过Broker账户处理跨分片TXs。既能在所有分片中实现交易负载均衡,也能减少跨分片TXs的比例。

二、Preliminaries

1. Sharding

目前的交易方法,主要有三种:网络分片 (network sharding)、交易分片 (transaction sharding) 以及状态分片 (state sharding)。

网络分片是基础,而状态分片是瓶颈。 网络分片和交易分片较早被提出,网络中的节点被分到不同的分片中,每个分片针对不同的交易子集进行处理、验证并达成共识。这样不同的交易子集可以被并行处理,各个分片之间也不必进行频繁的通讯。但是会带来存储空间消耗问题,系统的安全性也会越来越差。 因此提出了状态分片,不仅将网络和交易进行分片,将存储状态也进行分片。这样,每个节点只负责存储自己分片的数据,而不是完整的账本状态。

2. Related Work

为了提高区块链系统的可扩展性,研究人员提出了大量的区块链分片协议。Elastico被认为是第一个基于分片的区块链系统,在Elastico中每个分片并行处理TXs。现在最先进的分片解决方案,Monoxide,实现了基于账户/余额的区块链分片协议,利用新型的中继交易机制处理跨分片TXs。但是Monoxide协议还存在如下挑战:

  1. Monoxide根据账户分配机制减少TXs,根据用户账户地址的前几位划分到不同的分片中,旨在协同存储所有帐户状态。虽然这种方式可以提高系统吞吐量,但不可避免地会产生跨分片TXs。
  2. 通过引入接力交易(relay TXs)来确保分片交易的原子性。但是接力交易会导致分片的拥塞,大量TXs堵塞的碎片会造成热分片问题。在每个热分片中,TXs无法及时处理,可能会经历较长的确认延迟。
  3. 通过消息传递机制实现跨分片交易,并保证交易的原子性。但由于跨分片中继消息验证的存在,跨分片交易的延迟在理论上至少是片内交易时延的两倍。当位于目标分片内的关联交易迟迟无法上链时,跨分片交易的共识延迟有可能无限大。

为了减少跨分片TXs比例,实现分片之间的负载均衡,并且保证跨分片交易的原子性,本文旨在提出一种新的跨分片协议来提高分片区块链的吞吐量会降低交易的平均确认延迟。

三、Solution

1. Overview

BrokerChain协议以”Epoch“(时期)为单位运行区块链系统,Epoch为固定的片内共识轮次或者固定长度的时间。

1.1 Two Shard

本文采用BFT类共识协议作为片内共识协议,每个分片都通过PBFT协议来达成各自的块内共识并避免分叉。在BrokerChain中,根据职能的不同,存在两种不同类型的分片:工作分片(Mining shard,M-shard)和划分分片(Partition shard,P-shard)。它们分别负责处理不同的事务,具体分工描述如下:

  • M-shard在每个Epoch期间打包TXs,通过PBFT共识将合法的交易打包上链;
  • P-shard在每个Epoch期间以自适应的方式划分账户状态。

1.2 Four sequential phases

如上图展示了本文所提出的跨分片协议的整体框架,包括4个关键步骤,具体描述如下:

  1. 交易区块共识阶段:在一个Epoch开始时,每个M-shard都会从交易池里打包交易,并通过运行PBFT协议发布多个交易块。P-shard在一个Epoch内产生的交易块数量取决于分片内的网络参数,如带宽等。而M-shard产生的第一个新交易区块遵循状态区块(也就是图2中的 B t − 1 B^{t-1} Bt−1,记录着前一Epoch的状态划分结果。
  2. 状态图分区阶段:P-shard从产生的区块中读取交易并持续更新所有账户的账户图。一旦M-shard生成了当前Epoch中的所有交易块,状态图就固定了。然后,根据Metis算法开始对状态图进行划分,以实现所有分片之间的负载平衡。
  3. 状态区块共识阶段:在前一阶段对所有账户的状态图进行分区后,BrokerChain将执行账户分割机制,后面会详细描述。为了对状态图分区和账户分割的结果达成共识,再次利用PBFT协议生成一个状态块(由表示 B t B^{t} Bt),然后将其添加到划分分片链中。
  4. 状态重配置阶段:对划分结果达成共识后,P-shard广播包含S分区的状态图的状态区块到所有相关联的M-shard。当接收到状态块 B t B^{t} Bt时,工作分片从状态块读取状态分区结果,并相应地重新配置其状态,以便可以根据新的帐户状态将下一个Epoch(第t+1个)中的交易分配到指定的分片。

2. Account Segmentation

强制用户设立多个账户是不合理的,因此设计了一种账户分割机制( account segmentation mechanism)。这个机制在区块链架构的协议层工作。

提出的账户分割机制具有以下优点:

  1. 不强制用户开立多个帐户。

  2. 用户帐户的状态可以轻松划分并存储在多个分片中。

  3. 通过这种用户透明的方式,可以方便地实现所有分片的工作负载平衡,从而消除热分片。

如下,通过一个划分账户的例子,理解账户分割机制。假设现在有三个账户以及三笔要处理的交易。假设现在有两个分片,shard#1 和shard#2。账户A,B分别存储在两个分片中。那么不妨假设C设立在分片2中。如果用Monoxide的分片方法,这三笔交易会产生四个跨分片交易。而如果采用BrokerChain的方法,那跨分片交易会减少到两个。

表面上看,BrokerChain好像就是把一个账户分割了成了两个账户,分配存款后放入不同的分片。但值得注意的是,这两个账户的地址是相同的。也就是说,BrokerChain协议在某个分片上存储着另一个分片上的帐户存款,并且他们具有相同的账户地址。研究者采用以太坊的计数器机制(帐户状态的nonce)来识别位于另一个分片上的帐户的多个状态。

3. mSST

要启用状态图分区和帐户分割操作,BrokerChain必须强制每个分片了解所有帐户的存储映射。因此,基于以太坊的MPT状态树设计了一种改进的分片状态树(mSST),以存储帐户状态。与MPT树不同,BrokerChain的mSST构建在所有帐户的存储映射上。定义如下:
Font metrics not found for font: .
其中每个e都是一个布尔值,然后S是M-shard的数量。BrokerChain需要为每个帐户配置存储映射。 e i e_i ei​为1代表这个账户的状态被分片 i 给存储了,如果在

BrokerChain: A Cross-Shard Blockchain Protocol for Account/Balance-based State Sharding 阅读笔记相关推荐

  1. 区块链论文: Bitcoin-NG: A Scalable Blockchain Protocol

    本文首发于 https://zhuanlan.zhihu.com/blockchain-top-paper 发现已有几篇中文博客描述这篇论文,但是本文跟它们的不同点在于,希望站在高层视角,结合图片来理 ...

  2. 区块链分片:《Monoxide: Scale Out Blockchain with Asynchronous Consensus Zones》论文翻译个人笔记

    区块链分片:<Monoxide: Scale Out Blockchain with Asynchronous Consensus Zones>论文翻译个人笔记 日期:2019年2月26- ...

  3. Wireshark文档阅读笔记-User Datagram Protocol(UDP)

    UDP(User Datagram Protocol):用户数据协议,UDP是无状态的传输. UDP没有提供任何检测机制,检测丢包,重复包,的功能. 基于UDP的协议有BOOTP,DNS,NTP,SN ...

  4. Packet Data Convergence Protocol (PDCP)阅读笔记

    文中涉及多方摘录网络资料,并非完全原创.如涉及侵权,请联系笔者删除. PDCP(Packet Data Convergence Protocol,分组数据汇聚协议) 一.概述: PDCP是对分组数据汇 ...

  5. 《Hawk: The Blockchain Model of Cryptography and Privacy-Preserving Smart Contracts》 阅读笔记

    期刊:S&P 2016 文章主要实现一个名为"hawk"的编译器模型,可以基于智能合约进行隐私保护. hawk将程序分为三部分:分别为用户程序(user),管理者程序(ma ...

  6. 论文阅读笔记:GraphRAD---A Graph-based Risky Account Detection System

    GraphRAD: A Graph-based Risky Account Detection System GraphRAD系统详解 1. 交易记录 将交易记录分为训练集和测试集.对于参数估计和调优 ...

  7. 区块链安全理论与实践(Blockchain for Distributed Systems Security)阅读笔记D1

    概述 区块链的前提 通过采用加密数据结构(不是加密数据),不需要一个可信中央机构就可以实现可信的去中心化的方式允许应用程序. 区块链具有容错机制,可以排除受损节点. 与中心化数据库相比的优势 1.在难 ...

  8. Blockchain Assisted Decentralized Federated Learning 阅读笔记 TPDS’2022

    Introduction 区块链可以用于取代联邦学习中的中心聚合服务器 目前的区块链联邦学习中的区块链和参与联邦学习的用户独立,相当于服务器换成了一条区块链,也会有隐私泄漏的风险 目前的区块链联邦学习 ...

  9. 【推荐公平性论文阅读笔记】:A unifying and general account of fairness measurement in recommender systems-1区top

    一.内容概述 1.主要内容 旨在定义一个通用的,灵活的,可参数化的框架,涵盖了公平性度量的大多数可能性. 2.背景 公平概念缺乏统一的理解和度量标准. 3.本文贡献 1) 通过分类维度对现有指标进行综 ...

最新文章

  1. java 中文分词 比较_中文分词工具评估:chinese-segmentation-evaluation
  2. Salesforce针对移动工作人员推全新人工智能支持工具
  3. 《JavaScript设计模式与开发实践》读书笔记之观察者模式
  4. 数据结构思维 第八章 索引器
  5. js java cookie_js cookie 工具
  6. 【工程项目经验】github定位到历史版本(历史commit点)
  7. ios11+html5偏移20pt,iOS tableView内容向下偏移20pt或向下偏移64pt的问题?
  8. H2O中的随机森林算法介绍及其项目实战(python实现)
  9. 牛腩学ASP.NET CORE做博客(视频)
  10. 深度 | 无法找到“黑点”的代码,连顶级黑客也束手无策
  11. 常见卫星汇总--期待大神补充下载地址
  12. 汽车制动能量回收系统仿真模型
  13. 量化套利策略|套利策略的原理
  14. VIN码识别技术在移动端的应用
  15. 贵金属软件MT4好不好用?MT4软件有什么优势特点?
  16. Anaconda——最省心的 Python 版本
  17. python namedtuple用法_Python namedtuple
  18. ffmpeg推rtsp、rtmp音视频流命令
  19. Panda3D设置窗体长宽及其他参数
  20. 大数据笔记9—java基础篇5(API)

热门文章

  1. 2019个税革新,我们一年能省多少钱~
  2. 解决:先安装豌豆荚,卸载之后,在win7的dos下 adb devices 会重启服务,并且不显示设备的问题
  3. 关于python语言数值操作符、以下选项错误的是 答案是_关于Python语言数值操作符,以下选项中描述错误的是...
  4. 116.Oracle数据库SQL开发之 PLSQL编程——游标
  5. 竞赛入门-数据探索性分析(EDA)
  6. 多人联机射击游戏中的设计模式应用
  7. JS中关于0.1+0.2 !==0.3 和0.1+0.7!==0.8的问题
  8. TMS-EEG概念介绍
  9. Mac未能加入wifi,无法加入任何wifi
  10. 托业常见短语100条