CN110310115A - 一种基于分片机制实现分布式账本横向扩展的方法 - Google Patents
一种基于分片机制实现分布式账本横向扩展的方法 Download PDFInfo
- Publication number
- CN110310115A CN110310115A CN201910431775.7A CN201910431775A CN110310115A CN 110310115 A CN110310115 A CN 110310115A CN 201910431775 A CN201910431775 A CN 201910431775A CN 110310115 A CN110310115 A CN 110310115A
- Authority
- CN
- China
- Prior art keywords
- fragment
- transaction
- verifier
- block
- account book
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种基于分片机制实现分布式账本横向扩展的方法,包括:(1)制定验证者分片时间周期,在任一时间周期内,所有验证者运用分布式随机数生成协议进行分片组合,将验证者碎片划分为多个分片中;(2)各个分片内进行并发处理交易,并且定期生成一致的状态区块;(3)在交易过程中选择性的进行双重验证,保证交易的安全性;(4)采用跨分片提交协议,在客户端进行锁/解锁机制,实现客户端在跨分片原子性处理交易,基于此,本发明为提供水平扩展的不以损害长期安全性的方法,在各分片内部署状态区块以减小存储空间和更新开销,并采用信任但验证二层模型来降低小额交易延迟,在多个分片之间采用原子提交协议,实现跨分片的原子提交交易功能。
Description
技术领域
本发明属于区块链技术领域,具体涉及一种基于分片机制实现分布式账本横向扩展的方法。
背景技术
区块链(Blockchain)技术是在去中心化、互相不信任环境下维持公共总账的底层技术。其本质是基于密码学方法实现分布式、不可篡改的交易账簿,每个区块链网络中的节点都保存有记录所有交易的公共账本。通过非对称加密签名保证交易的安全,通过常见的POW或POS等共识算法,使整个网络达成一致,通过P2P技术实现消息的传输与数据的同步。分布式存储网络,是一种基于p2p技术的分布式文件系统,可以将文件分片之后,分发到p2p网络的节点上进行分布式存储,相对于传统的中心化存储系统,具有安全性高,存取速度快,成本低等优点。2008年11月化名为中本聪(Satoshi Nakamoto)的人在比特币论坛中发表了一篇题为《比特币:一种点对点的电子现金支付系统》的论文,至今区块链已走过了近10年的历程。从区块链1.0数字资产的出现到2.0智能合约的应用,再到现在区块链3.0的探索,区块链技术正与各领域应用结合,比如金融、医疗、供应链等。
去中心化账本关于总交易量和独立处理交易的参与者数量之间的可扩展性问题,是一个被主流认可的主要挑战问题,特别是在与安全性和去中心化挑战对比的时候。有许多办法展示了不同的安全性和性能权衡,比如,通过替换中本聪共识(Nakamotoconsensus)为PBFT共识,可以提高吞吐量的同时降低交易延迟。这些办法仍然要求所有验证者或者共识组成员冗余性的验证和处理所有交易,因此系统总的交易处理容量是无法通过增加参与者而线性增加的,反而事实上会由于协调开销增加而逐渐降低性能。
去中心化账本从区块链或一条包含交易的完全有序区块继承了现在的系统状态。基于其简单性和可并行性,UTXO模型来代表账本状态。在这个模型里,一个交易的输出创建新的UTXO并授予其信用,交易的输入则完全花费已存在的UTXO。在新的全节点启动时,会同步抓取整个账本并建立合法UTXO的数据库以便用于后续验证新区块是否合法。这个UTXO模型是被比特币引入的并且已经被其它去中心账本系统广泛认可。
安全的去中心化随机数生成器(RandHound):RandHound是一个可扩展的安全的多方计算(MPC)协议,在拜占庭环境里可提供无偏见的、去中心化的随机性。RandHound假设存在一个外部负责任的客户,他想从一大群半信任化的服务器中获取可证明的随机性。为了产生随机性,RandHound将服务器组拆分更小的组,并创建一个公开可验证的先提交后揭示(commit-then-reveal)的协议,该协议采用鸽笼原理在包括至少一名诚实参与者贡献时来证明最终的随机数,因此完美地实现了对RandHound输出的随机化。
加密抽签(Cryptographic sortition)用来根据验证者权重函数对验证者选择一个子集。为了使验证者能够证明他们属于某个选中的子集,他们需要一个公钥和私钥对,(pki, ski)。抽签通过一个VRF(verifiable random function:可验证随机函数)实现:输入x,然后返回一个随机hash(l-bit长的字符串),和一个基于ski的证明 π。这个证明 π可使任何人知道用pki去验证该hash对应于x。
先前的分片式账本(Elastico):本发明和先前探讨过的在无权限账本上实现分片的Elastico是很接近的。在每一轮,Elastico利用PoW哈希中最低比特位来分发矿工给不同的分片,然后每个分片运行PBFT来达到共识,接着领导分片(leader shard)验证所有的签名,然后创建全局区块。
随着区块链技术的不断发展,为了使例如PBFT之类的传统共识协议更加可扩展,ByzCoin利用集体签名(collective signing)或群签名(CoSi),一种可扩展的加密原语来实现多重签名。ByzCoin采用组播树(multicast trees)分发区块以提高性能,但是为了容错却回退使用了扩展性较差的星型拓扑。虽然ByzCoin的共识具有扩展性,但是其总体的处理容量却没有随着参与节点数量而增加,所以它是不能横向扩展的。
建立可“横向扩展”数据库的成熟有效的方式是实现分片机制(Sharding),通过将状态切分到多个分片由不同子集的验证者进行并行处理。分片可以为每个验证者降低交易处理负担,同时又可以按照参与节点数量同比例增加系统的整体处理容量。然而现有的对实现分片式去中心化账本的建议,要么放弃无权限去中心化,要么引入新的安全假设以安全换性能。
发明内容
鉴于上述,本发明我们引入了分片机制下的横向扩展方法,提供了与集中式支付处理系统(如Visa)相竞争的“扩展”事务处理能力,同时不影响安全性或支持无权限的分散。通过使用一种抗预测的公共随机协议来选择具有统计代表性的大型分片来处理交易,以及通过引入一种有效的跨分片提交协议来原子性的处理影响多分片的交易,从而保证了安全性和正确性。同时通过在分片内进行并发交易处理优化了性能,通过生成状态区块以及对小额交易进行低延迟的“信任但验证”方式验证缩减了账本大小。
一种基于分片机制实现分布式账本横向扩展的方法,包括如下步骤:
(1)制定验证者分片时间周期,在任一时间周期内,所有验证者运用分布式随机数生成协议进行分片组合,将验证者碎片划分为多个分片中;
(2)各个分片内进行并发处理交易,并且采用分布式检查点原则来定期生成一致的状态区块;
(3)在交易过程中选择性的进行双重验证,保证交易的安全性;
(4)采用跨分片提交协议,在客户端进行锁/解锁机制,实现客户端在跨分片原子性处理交易。
进一步地,步骤(1)中运用分布式随机生成协议是一种由验证者们共同执行的分布式随机数生成协议,提供无偏性、不可预测、第三方可验证、和可扩展性,涉及:去中心化随机数生成器(RandHound)、加密抽签及分片式账本(Elastico)技术。
RandHound是一个可扩展的安全的多方计算(MPC)协议,在拜占庭环境里可提供无偏见的、去中心化的随机性。RandHound假设存在一个外部负责任的客户,他想从一大群半信任化的服务器中获取可证明的随机性。为了产生随机性,RandHound将服务器组拆分更小的组,并创建一个公开可验证的先提交后揭示(commit-then-reveal)的协议,该协议采用鸽笼原理在包括至少一名诚实参与者贡献时来证明最终的随机数,因此完美地实现了对RandHound输出的随机化。
加密抽签用来根据验证者权重函数对验证者选择一个子集。为了使验证者能够证明他们属于某个选中的子集,他们需要一个公钥和私钥对,(pki, ski)。抽签通过一个VRF(可验证随机函数)实现:输入x,然后返回一个随机hash(l-bit长的字符串),和一个基于ski的证明 π。这个证明 π可使任何人知道用pki去验证该hash对应于x。
分片式账本(Elastico):在每一轮,Elastico利用PoW哈希中最低比特位来分发矿工给不同的分片,然后每个分片运行PBFT来达到共识,接着领导分片(leader shard)验证所有的签名,然后创建全局区块。
具体实现如下:
1.1设置分片时间周期,在任一时间周期内,每个验证者生成一张门票,门票包括:所述验证者的名称、视图计数及该时间周期内所有合理注册的验证者的配置信息;
1.2所有验证者开始相互传播他们的门票,持续一个时间段后,各自锁定一个最小的合法门票,并接收该门票对应的节点为运行分布式随机数生成协议的领导者;
1.3所述领导者启动RandHound协议,分配验证者一个公钥和私钥对,验证者运行该协议,通过可验证随机函数实现:输入任一随机数,返回一个随机hash(l-bit长的字符串)值,和一个基于私钥的证明,并由领导者广播所述证明;
1.4验证者获取所述证明并使用公钥验证该hash对应于随机数,使验证者能够证明其属于所选中的分片组合,进而将验证者划分为多个分片中;
1.5定期更新上述验证者分片组合。
特别地,步骤(1)还包括:被选为领导者的节点在所述时间段内启动RandHound失败时,其他验证者则判定本次运行失败,并在本周期之后的时间将该节点排除在外,同时,所有验证者增加视图计数值为v+1,重新运行选举领导者选举。
以此安全地为分片分配验证者,以及当更多验证者介入时周期性地进行循环分配。在该方法中每个参与者在当前的每个视图v只能产生一个合法的门票,因为基于VRF的领导选举只能在身份区块链中合法的身份已经固定时才能开始;只要非串通节点的门票对应的私钥(ski)是保密的,VRF的输出就是不可预测的。因此最后选举的结果就是不可预测的。同步时间段保证诚实节点的门票可以被所有其它诚实节点接收看到,如果攻击者赢得选举,他可以决定遵循并运行RandHound协议,或者让其失败,这样该节点就会在本周期接下来的时间被排除在外。在成功运行RandHound之后,攻击者首先掌握了随机数,进行分片分配,但是他能得到的好处很小,攻击者可以选择选择合作并发布随机值,或者保留它以期望再次赢得抽奖,并获得最符合他要求的分片分配任务,但是,一个攻击者抽奖连续赢得a次的的概率是按照公式:;
是呈指数级下降的,因此,经过几轮重新选举,诚实节点以高概率赢得抽奖,然后协调分片。
最后,我们认定攻击者不能在多轮抽奖中获得随机数,然后选择最符合其利益的那个,因为验证者只接受符合视图计数v的最新随机值。
进一步地,为帮助新的或长期掉线的矿工在不需要下载整个历史数据的情况下赶上最新的账本状态,采用一种基于区块的有向无环图作为数据结构,进行并发处理交易,利用分布式检查点原则来定期生成一致的状态区块,汇总了一个分片周期内的分片状态,可为验证者缩减账本以降低存储和启动开销。
去中心化账本从区块链或一条包含交易的完全有序区块继承了现在的系统状态,基于其简单性和可并行性,本发明接受UTXO(事务输出)模型来代表账本状态。在这个模型里,一个交易的输出创建新的UTXO并授予其信用,交易的输入则完全花费已存在的UTXO。在新的全节点启动时,会同步抓取整个账本并建立合法UTXO的数据库以便用于后续验证新区块是否合法。
步骤(2)中状态区块生成的具体方法如下:
2.1在当前分片周期结束时,分片的领导者将事务输出模型UTXO保存到一个排序的默克尔树,并将树根哈希存入区块头部;
2.2然后分片验证者对存有树根哈希区块头部运行共识;
2.3共识成功后,领导者将通过的区块头保存进分片账本中,使上述存入区块头的树根哈希成为下一分片周期的创世区块;
2.4丢弃上一分片周期区块主体中的UTXO,保留当前分片周期的正常区块,创建交易证明,直到下一分片周期结束。
进一步地,步骤(3)采用双重验证来对小风险交易进行实时确认,即在较小的第一层的验证者快速处理这些交易,然后把它们提交给更大但更慢的第二层来重新验证第一层交易的正确性以及长期的安全性。这种2层解决方案保证任何第一层的不当行为可以在短时间内被检测,然后以损失押金的形式进行严厉地惩罚。客户可以等待两层处理完大额交易以保证最大的安全性,或者可以只等待第一层处理完小额交易。
所述步骤(3)具体操作如下:
3.1在当前分片周期开始时,所有验证者采用每个周期的随机数将自己分配到分片中,从对应分片的上个状态区块启动他们的状态;
3.2制定了初步和核心验证者的数量,及初步验证者分组的数量,随机分配每个验证者到多个初步验证者分组或一个核心验证者分组;
3.3交易被初步分组首先处理并生成初步验证区块,这些区块会作为核心验证者的输入进行重新验证,核心验证者并行运行,并将初步分组处理后输入区块进行重新组合以显示最大化系统吞吐量;
3.4双重验证一致,则交易合法,将验证合法的交易打包生成最终区块,并加入账本并最终被包含进行状态区块;双重验证不一致性,则交易不合法,排除对应初步验证的交易,识别对应非法区块签名的验证者并追究其责任。
特别地,步骤(3)还包括:用户在交易生成初步验证区块后,有权限选择交易是否需要核心验证者进行重新验证。即针对大额交易,用户可以等待双重验证处理交易以保证最大的安全性,针对小额交易可以只等待初步验证处理,生成最终区块,以提高效率。
进一步地,步骤(4)采用跨分片提交协议,在客户端进行锁/解锁机制,实现客户端在跨分片原子性处理交易,保证每个交易被完全提交或最终取消,目的是保证跨分片交易的一致性,以阻止双花或者未花费的资金被永久锁住,具体操作如下:
4.1初始化:客户端创建一个跨分片交易(cross-Tx),输入UTXO来自输入分片(IS),输出创建新的UTXO来自输出分片(OS)、客户端进行(cross-Tx)交易,并最终到达所有的(IS);
4.2锁定:所有输入分片(IS)与(cross-Tx)进行关联,验证交易合法性并锁定交易, 客户端利用每个(IS)账本来检查其证明以确认该交易确实被锁住,操作如下:
首先,检查输入是否可以被花费,每个(IS)领导者检查本分片内的交易;
当交易合法时,领导者在状态上标记这个输入被花费,在分片账本上记录交易日志,然后接受证明,这是一种包含本交易的区块的被签名的默克尔树证明;
当交易被拒绝,领导者创建一个相似的拒绝证明,其中特定比特位来表示接受或拒绝;
客户端可以利用每个(IS)账本来检查其证明以确认该交易确实被锁住;
当所有(IS)已经处理了锁请求,客户端就具有足够的证明来提交交易,或取消交易并回收任何锁定的资金;
4.3 解锁:根据确认锁阶段的结果,客户端进行原子性交易处理,包括:
解锁提交: 若所有的(IS)领导者都返回了接受证明,则提交对应的交易,客户端创建一个解锁提交交易,该交易由每个输入UTXO的锁交易和接受证明组成;相应的,每个输出分片(OS)验证交易并包含进下一个其分区账本区块中以更新其状态,并使新资金可被花费;
解锁取消:然而如果只要有一个(IS)返回了拒绝证明,那么该交易就无法提交,必须被取消。为了回收上阶段被锁住的资金,客户端(或其它实体)必须请求介入的(IS)解锁特定的交易,通过处理一个解锁取消交易,其中包括至少一个输入UTXO的拒绝证明。输入分片(IS)领导者接收到解锁请求后,会进行类似的步骤并标记原先的UTXO重新可花费。
基于上述技术方案,本发明的有益技术效果为提供水平扩展的不以损害长期安全性或无权限去中心化的方法,在各分片内部署状态区块以减小存储空间和更新开销,并采用信任但验证二层模型来降低小额交易延迟,在多个分片之间采用原子提交协议,实现跨分片的原子提交交易功能。
附图说明
图1为本发明基于分片机制实现横向扩展处理分布式账本的整体示意图。
图2为本发明基于分片机制实现横向扩展处理分布式账本的方法流程图。
图3为本发明在任一时间周期内,利用RandHound协议进行分片组合的流程图。
图4为本发明生成状态区块的流程图。
图5为本发明在交易过程中选择性的进行双重验证的流程图。
图6为本发明跨链原子交易示意图。
具体实施方式
为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。
如图1为本发明基于分片机制实现横向扩展处理分布式账本的整体示意图,本发明提出一种基于分片机制实现分布式账本横向扩展的方法,其方法流程图如图2所示,其包括:
Step1在区块链分布式账本系统中,将每个验证者作为待分片的碎片,制定验证者分片时间周期,定期进行验证者重新分片组合,在任一时间周期内,利用RandHound与基于VRF的领导选举算法,所有验证者运用分布式随机数生成协议进行分片组合,将验证者碎片划分为多个分片中,其流程图如图3所示,具体分片步骤如下:
(1)假定在分片周期e时,每个验证者i生成一张门票,门票包括:
ticket[i,e,v] = VRF[ski] ("leader"||config[e]||v),
其中,config[e]表示包含e周期所有合理注册的验证者的配置信息(保存在身份区块链中);v是一个视图计数;
(2)各验证者开始相互传播他们的门票,持续一个时间∆,之后他们锁定一个他们迄今看到的最小的合法门票,并接收该门票对应的节点为运行RandHound协议的领导者;
(3)所述领导者启动RandHound协议,分配验证者一个公钥和私钥对(pki, ski),验证者运行RandHound,通过可验证随机函数VRF实现:输入任一随机数x,然后返回一个随机hash(l-bit长的字符串),和一个基于ski的证明 rand[e],并由领导者广播所述证明,这个证明可使任何人知道用pki去验证该hash对应于x;
(4)验证者获取rand[e]并使用公钥pki验证该hash对应于随机数x,使验证者能够证明其属于所选中的分片组合,进而将验证者划分为多个分片中。
(5)若被选举为领导者的节点在时间∆内启动RandHound失败,则验证者们认为本次运行失败,并在本周期之后的时间将该节点排除在外,这种情况下,各验证者增加视图计数值为v+1,重新运行选举(抽奖)。
Step2各个分片内进行并发处理交易,并且采用分布式检查点原则来定期生成一致的状态区块,状态区块生成操作如下:
(1)在当前分片周期e结束时,分片的领导者将事务输出模型UTXO保存到一个排序的默克尔树,并将树根哈希存入sb[j, e]区块头部;
(2)然后分片验证者对sb[j, e]区块头部运行共识;
(3)共识成功后,领导者将通过的区块头保存进分片账本中,使sb[j, e]成为下一分片周期e+1的创世区块;
(4)丢弃 sb[j, e-1]区块主体中的UTXO,保留当前分片周期e的正常区块,创建交易证明,直到下一分片周期e+1结束。
Step3在交易过程中选择性的进行双重验证,保证交易的安全性,具体操作如下:
(1)在当前分片周期e开始时,所有验证者采用每个周期的随机数将自己分配到分片中,从对应分片的上个状态区块启动他们的状态;
(2)制定了初步和核心验证者的数量,及初步验证者分组的数量,随机分配每个验证者到多个初步验证者分组或一个核心验证者分组;
(3)交易被初步分组首先处理并生成初步验证区块,用户选择交易进行核心验证者验证:这些区块会作为核心验证者的输入进行重新验证,核心验证者并行运行,并将初步分组处理后输入区块进行重新组合以显示最大化系统吞吐量;
(4)双重验证一致,则交易合法,将验证合法的交易打包生成最终区块,并加入账本并最终被包含进行状态区块;双重验证不一致性,则交易不合法,排除对应初步验证的交易,识别对应非法区块签名的验证者并追究其责任。
(5)用户选择交易不进行核心验证者验证:交易被初步分组首先处理并生成初步验证区块,打包生成最终区块。
Step4采用跨分片提交协议,在客户端进行锁/解锁机制,实现客户端在跨分片原子性处理交易,具体操作如下:
(1)初始化:客户端创建一个跨分片交易(cross-Tx),输入UTXO来自输入分片(IS),输出创建新的UTXO来自输出分片(OS),客户端传播(cross-Tx)交易,并最终到达所有的(IS)。
(2)锁定:所有输入分片(IS)与(cross-Tx)进行关联,验证交易合法性并锁定交易, 客户端利用每个(IS)账本来检查其证明以确认该交易确实被锁住,操作如下:
首先,检查输入是否可以被花费;若交易合法,领导者在状态上标记这个输入被花费,在分片账本上记录交易日志,然后接受证明,这是一种包含本交易的区块的被签名的默克尔树证明;如果交易被拒绝,则没有被花费,领导者创建一个相似的拒绝证明。
客户端可以利用每个(IS)账本来检查其证明以确认该交易确实被锁住,当所有(IS)已经处理了锁请求,客户端就具有足够的证明来提交交易,或取消交易并回收任何锁定的资金。
(3)解锁:根据锁阶段的结果,客户端可以提交交易或取消交易;
解锁提交: 如果所有的(IS)领导者都返回了接受证明,那么对应的交易就可以被提交。客户端(或超时后为其它实体比如IS领导者)创建并传播一个解锁提交交易,该交易由每个输入UTXO的锁交易和接受证明组成。相应的,每个介入的(OS)验证交易并包含进下一个其分区账本区块中以更新其状态,并使新资金可被花费。
解锁取消:然而如果只要有一个(IS)返回了拒绝证明,那么该交易就无法提交,必须被取消。为了回收上阶段被锁住的资金,客户端(或其它实体)必须请求介入的(IS)解锁特定的交易,通过传播一个解锁取消交易,其中包括至少一个输入UTXO的拒绝证明,输入分片(IS)领导者接收到解锁请求后,会进行类似的步骤并标记原先的UTXO重新可花费。
上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。
Claims (7)
1.一种基于分片机制实现分布式账本横向扩展的方法,其特征在于,包括:
(1)制定验证者分片时间周期,在任一时间周期内,所有验证者运用分布式随机数生成协议进行分片组合,将验证者碎片划分为多个分片中;
(2)各个分片内进行并发处理交易,并且采用分布式检查点原则来定期生成一致的状态区块;
(3)在交易过程中选择性的进行双重验证,保证交易的安全性;
(4)采用跨分片提交协议,在客户端进行锁/解锁机制,实现客户端在跨分片原子性处理交易。
2.根据权利要求1所述的实现分布式账本横向扩展的方法,其特征在于,所述步骤(1)具体实现如下:
1.1设置分片时间周期,在任一时间周期内,每个验证者生成一张门票,门票包括:所述验证者的名称、视图计数及该时间周期内所有合理注册的验证者的配置信息;
1.2所有验证者开始相互传播他们的门票,持续一个时间段后,各自锁定一个最小的合法门票,并接收该门票对应的节点为运行分布式随机数生成协议的领导者;
1.3所述领导者启动分布式随机数生成协议,分配验证者一个公钥和私钥对,各验证者运行该协议,通过可验证随机函数实现:输入任一随机数,返回一个随机hash(l-bit长的字符串)值,和一个基于私钥的证明,并由领导者广播所述证明;
1.4验证者获取所述证明并使用公钥验证该hash对应于随机数,使验证者能够证明其属于所选中的分片组合,进而将验证者划分为多个分片中;
1.5定期更新上述验证者分片组合。
3.根据权利要求1和2所述的实现分布式账本横向扩展的方法,其特征在于,步骤(1)还包括:被选为领导者的节点在所述时间段内启动RandHound失败时,其他验证者则判定本次运行失败,并在本周期之后的时间将该节点排除在外,同时,所有验证者增加视图计数值为(v+1),重新运行选举领导者选举。
4.根据权利要求1所述的实现分布式账本横向扩展的方法,其特征在于,步骤(2)中状态区块生成的具体方法如下:
2.1在当前分片周期结束时,分片的领导者将事务输出模型UTXO保存到一个排序的默克尔树,并将树根哈希存入区块头部;
2.2然后分片验证者对存有树根哈希区块头部运行共识;
2.3共识成功后,领导者将通过的区块头保存进分片账本中,使上述存入区块头的树根哈希成为下一分片周期的创世区块;
2.4丢弃上一分片周期区块主体中的UTXO,保留当前分片周期的正常区块,创建交易证明,直到下一分片周期结束。
5.根据权利要求1和3所述的实现分布式账本横向扩展的方法,其特征在于:所述步骤(3)具体操作如下:
3.1在当前分片周期开始时,所有验证者采用每个周期的随机数将自己分配到分片中,从对应分片的上个状态区块启动他们的状态;
3.2制定了初步和核心验证者的数量,及初步验证者分组的数量,随机分配每个验证者到多个初步验证者分组或一个核心验证者分组;
3.3交易被初步分组首先处理并生成初步验证区块,这些区块会作为核心验证者的输入进行重新验证,核心验证者并行运行,并将初步分组处理后输入区块进行重新组合以显示最大化系统吞吐量;
3.4双重验证一致,则交易合法,将验证合法的交易打包生成最终区块,并加入账本并最终被包含进行状态区块;双重验证不一致性,则交易不合法,排除对应初步验证的交易,识别对应非法区块签名的验证者并追究其责任。
6.根据权利要求1和5所述的实现分布式账本横向扩展的方法,其特征在于:所述步骤(3)还包括:用户在交易生成初步验证区块后,有权限选择交易是否需要核心验证者进行重新验证。
7.根据权利要求1所述的实现分布式账本横向扩展的方法,其特征在于:步骤(4)具体操作如下:
4.1初始化:客户端创建一个跨分片交易(cross-Tx),输入UTXO来自输入分片(IS),输出创建新的UTXO来自输出分片(OS)、客户端进行(cross-Tx)交易,并最终到达所有的(IS);
4.2锁定:所有输入分片(IS)与(cross-Tx)进行关联,验证交易合法性并锁定交易, 客户端利用每个(IS)账本来检查其证明以确认该交易确实被锁住;
4.3 解锁:根据确认锁阶段的结果,客户端进行原子性交易处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910431775.7A CN110310115A (zh) | 2019-05-23 | 2019-05-23 | 一种基于分片机制实现分布式账本横向扩展的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910431775.7A CN110310115A (zh) | 2019-05-23 | 2019-05-23 | 一种基于分片机制实现分布式账本横向扩展的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110310115A true CN110310115A (zh) | 2019-10-08 |
Family
ID=68074810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910431775.7A Pending CN110310115A (zh) | 2019-05-23 | 2019-05-23 | 一种基于分片机制实现分布式账本横向扩展的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110310115A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111063092A (zh) * | 2019-10-15 | 2020-04-24 | 北京海益同展信息科技有限公司 | 基于区块链的抽奖方法、装置、电子设备及存储介质 |
CN111127007A (zh) * | 2019-12-06 | 2020-05-08 | 环球雅途集团有限公司 | 一种基于分布式账本原理的可离线票防重用方法 |
CN111680050A (zh) * | 2020-05-25 | 2020-09-18 | 杭州趣链科技有限公司 | 一种联盟链数据的分片处理方法、设备和存储介质 |
CN112260836A (zh) * | 2020-09-28 | 2021-01-22 | 电子科技大学 | 一种基于分片技术提升区块链吞吐量的方法 |
CN112511590A (zh) * | 2020-10-26 | 2021-03-16 | 南京辰阔网络科技有限公司 | 一种区块链分片的高效存储重配置方法 |
CN111428275B (zh) * | 2020-03-13 | 2021-03-26 | 华东师范大学 | 一种面向联盟链的服务不停机分片增加方法 |
CN113037863A (zh) * | 2021-03-31 | 2021-06-25 | 杭州云象网络技术有限公司 | 一种区块链多方协同交叉共识验证方法及系统 |
CN113807851A (zh) * | 2021-09-30 | 2021-12-17 | 中国人民解放军国防科技大学 | 一种基于分片的区块链可扩展性实现方法及系统 |
CN114862397A (zh) * | 2022-07-06 | 2022-08-05 | 国网天津市电力公司培训中心 | 一种基于双链结构的双解耦区块链分布式方法 |
CN115499128A (zh) * | 2021-06-01 | 2022-12-20 | 中移雄安信息通信科技有限公司 | 区块链共识方法、装置、系统及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108681583A (zh) * | 2018-05-11 | 2018-10-19 | 北京奇虎科技有限公司 | 基于区块链的数据持有证明方法、装置及可读存储介质 |
CN109150972A (zh) * | 2018-07-17 | 2019-01-04 | 湖南宸瀚信息科技有限责任公司 | 一种双层分片的高效区块链的共识机制及其工作方法 |
CN109544334A (zh) * | 2018-10-22 | 2019-03-29 | 绿州蔚来(深圳)控股有限公司 | 一种网络可扩展性区块链实现方法 |
-
2019
- 2019-05-23 CN CN201910431775.7A patent/CN110310115A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108681583A (zh) * | 2018-05-11 | 2018-10-19 | 北京奇虎科技有限公司 | 基于区块链的数据持有证明方法、装置及可读存储介质 |
CN109150972A (zh) * | 2018-07-17 | 2019-01-04 | 湖南宸瀚信息科技有限责任公司 | 一种双层分片的高效区块链的共识机制及其工作方法 |
CN109544334A (zh) * | 2018-10-22 | 2019-03-29 | 绿州蔚来(深圳)控股有限公司 | 一种网络可扩展性区块链实现方法 |
Non-Patent Citations (1)
Title |
---|
E. K. KOGIAS 等: "OmniLedger: A Secure, Scale-Out, Decentralized Ledger via Shardi", 《2018 IEEE SYMPOSIUM ON SECURITY AND PRIVACY》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111063092A (zh) * | 2019-10-15 | 2020-04-24 | 北京海益同展信息科技有限公司 | 基于区块链的抽奖方法、装置、电子设备及存储介质 |
CN111127007A (zh) * | 2019-12-06 | 2020-05-08 | 环球雅途集团有限公司 | 一种基于分布式账本原理的可离线票防重用方法 |
CN111127007B (zh) * | 2019-12-06 | 2023-09-22 | 环球数科集团有限公司 | 一种基于分布式账本原理的可离线票防重用方法 |
CN111428275B (zh) * | 2020-03-13 | 2021-03-26 | 华东师范大学 | 一种面向联盟链的服务不停机分片增加方法 |
CN111680050A (zh) * | 2020-05-25 | 2020-09-18 | 杭州趣链科技有限公司 | 一种联盟链数据的分片处理方法、设备和存储介质 |
CN111680050B (zh) * | 2020-05-25 | 2023-09-26 | 杭州趣链科技有限公司 | 一种联盟链数据的分片处理方法、设备和存储介质 |
CN112260836A (zh) * | 2020-09-28 | 2021-01-22 | 电子科技大学 | 一种基于分片技术提升区块链吞吐量的方法 |
CN112511590B (zh) * | 2020-10-26 | 2022-07-19 | 南京辰阔网络科技有限公司 | 一种区块链分片的高效存储重配置方法 |
CN112511590A (zh) * | 2020-10-26 | 2021-03-16 | 南京辰阔网络科技有限公司 | 一种区块链分片的高效存储重配置方法 |
CN113037863B (zh) * | 2021-03-31 | 2022-07-12 | 杭州云象网络技术有限公司 | 一种区块链多方协同交叉共识验证方法及系统 |
CN113037863A (zh) * | 2021-03-31 | 2021-06-25 | 杭州云象网络技术有限公司 | 一种区块链多方协同交叉共识验证方法及系统 |
CN115499128A (zh) * | 2021-06-01 | 2022-12-20 | 中移雄安信息通信科技有限公司 | 区块链共识方法、装置、系统及存储介质 |
CN113807851A (zh) * | 2021-09-30 | 2021-12-17 | 中国人民解放军国防科技大学 | 一种基于分片的区块链可扩展性实现方法及系统 |
CN113807851B (zh) * | 2021-09-30 | 2023-11-21 | 中国人民解放军国防科技大学 | 一种基于分片的区块链可扩展性实现方法及系统 |
CN114862397A (zh) * | 2022-07-06 | 2022-08-05 | 国网天津市电力公司培训中心 | 一种基于双链结构的双解耦区块链分布式方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110310115A (zh) | 一种基于分片机制实现分布式账本横向扩展的方法 | |
Zhou et al. | Solutions to scalability of blockchain: A survey | |
KR102409819B1 (ko) | 분산 거래 전파 및 검증 시스템 | |
Bouraga | A taxonomy of blockchain consensus protocols: A survey and classification framework | |
Kokoris-Kogias et al. | Omniledger: A secure, scale-out, decentralized ledger via sharding | |
Wang et al. | Sok: Sharding on blockchain | |
Bano et al. | SoK: Consensus in the age of blockchains | |
US11836720B2 (en) | Infinitely scalable cryptocurrency system with fast, secure verification | |
Bentov et al. | How to use bitcoin to design fair protocols | |
Kaur et al. | Blockchain: A path to the future | |
Panja et al. | A smart contract system for decentralized borda count voting | |
CN110298641B (zh) | 区块链的规则更新方法、装置、区块链节点及网络 | |
CN114362987B (zh) | 一种基于区块链和智能合约的分布式投票系统及方法 | |
CN106920097A (zh) | 一种量子链共识协议的生成时间块链方法 | |
CN115918030A (zh) | 使用区块链的可证明公平的游戏 | |
CN116527684B (zh) | 基于1+1+n中继共识委员会的多链信息交互方法 | |
Lucas et al. | Consensus algorithm for a private blockchain | |
Alp et al. | Rethinking general-purpose decentralized computing | |
Pranitha et al. | Utilization of blockchain in e-voting system | |
Chaumont et al. | DPoPS: Delegated Proof-of-Private-Stake, a DPoS implementation under X-Cash, a Monero based hybrid-privacy coin | |
Masood et al. | Consensus algorithms in distributed ledger technology for open environment | |
Tran et al. | Blockchain in a nutshell | |
Warren | Bitcoin: A Game-Theoretic Analysis | |
Gupta et al. | Colosseum: A scalable permissioned blockchain over structured network | |
JP2021507629A (ja) | 高速且つ分割耐性を有するブロックチェーン |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191008 |
|
RJ01 | Rejection of invention patent application after publication |