CN117237099A - 分片式、许可式、分布式分类账 - Google Patents
分片式、许可式、分布式分类账 Download PDFInfo
- Publication number
- CN117237099A CN117237099A CN202311066025.7A CN202311066025A CN117237099A CN 117237099 A CN117237099 A CN 117237099A CN 202311066025 A CN202311066025 A CN 202311066025A CN 117237099 A CN117237099 A CN 117237099A
- Authority
- CN
- China
- Prior art keywords
- verifier
- transaction
- distributed ledger
- shard
- current state
- 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
- 238000000034 method Methods 0.000 claims description 133
- 230000008569 process Effects 0.000 claims description 90
- 239000012634 fragment Substances 0.000 claims description 45
- 230000008859 change Effects 0.000 claims description 6
- 230000007246 mechanism Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 10
- 238000012790 confirmation Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000013459 approach Methods 0.000 description 6
- 230000006399 behavior Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 125000006850 spacer group Chemical group 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000004043 responsiveness Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- 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
- G06Q20/0655—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed centrally
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- 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/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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital 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
- G06Q2220/00—Business processing using cryptography
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Finance (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Hardware Redundancy (AREA)
Abstract
一种分片式、许可式、分布式分类账,可以减少每个参与者所需的工作量和通信量,从而有可能避免以前的分布式分类账实施方式中可能固有的可伸缩性瓶颈,并有可能使得能够使用附加资源来转变成增加的吞吐量。分片式、许可式、分布式分类账可以由多个分片组成,每个分片也可以是分布式分类账并且可以并行操作。仅在获得权威机构的许可的情况下,才允许参与分片式、许可式、分布式分类账。分片式、许可式、分布式分类账可以包括多个节点,每个节点包括分配器,该分配器被配置为从客户端接收交易请求并将接收到的请求转发到被配置为将交易追加到各个分片的核实器。
Description
本申请是申请日为2018年5月16日、名称为“分片式、许可式、分布式分类账”、申请号为201880043371.4的发明专利申请的分案申请。
技术领域
本公开一般而言涉及分布式分类账,并且更具体地涉及分片式、许可式、分布式分类账。
背景技术
传统上,分布式分类账(包括区块链)通常不扩展:吞吐量从根本上受到所有参与者通信、处理和存储所有交易的需求的限制。因此,附加的资源常常不会转化为提高的吞吐量。分类账可以被认为是记录交易序列的仅追加数据结构。分布式分类账可以是由遵循公共协议以在相继交易上达成协议的节点集合维护的分类账。客户端可以将交易提交到节点中的一个或多个。一些分布式分类账可以将交易聚合到区块中,称为区块链。每个交易或交易区块可以包括分类账中先前交易的散列(例如,密码散列),从而使分类账被篡改的风险最小化。换句话说,没有人(或没有节点)可以暗中添加、移除或更改交易,因为这也会更改所有后续散列。BitcoinTM是分布式分类账的一个众所周知的示例。
传统上,许多区块链和分布式分类账系统不能很好地扩展。即使没有从字面上表示为区块的链,术语“区块链”在本文中也通常用于指分布式分类账。它们的吞吐量可以受到很大一部分参与者必须接收、验证和存储所有交易的要求的限制(即,在一些情况下由资源加权)。因此,附加的资源常常不会转化为提高的吞吐量。
无许可式区块链通常可以故意低效,诸如通过确保参与者必须消耗能量以有助于维持分类账。无许可式分类账(诸如BitcoinTM)一般允许任何愿意遵循协议的节点参与。任何人都可以提出交易,并且任何人都可以参与决定将哪些交易输入分类账的协议。相反,在许可式实现中,仅某些节点可以参与。例如,授权机构可以控制哪些节点可以参与许可式分类账。这种授权机构可以采用多种形式,诸如单个组织、财团等。可以考虑使用许可式分类账来促进治理,诸如通过提供有序的过程来更新分类账协议或符合“了解您的客户”财务规定。
诚实的节点可以被认为是忠实地遵循系统的协议的节点,而不诚实的节点(即,那些在对手控制下的节点)可以偏离协议以寻求某种优势。
许可常常使不诚实的节点的行为能够与拥有或负责它们的身份相关联,从而为追究其责任开辟了可能性。这可以通过技术和/或非技术手段来实现。例如,如果节点可证明是行为不当,那么协议可以自动施加罚款,诸如通过没收已托管的保证金或将不诚实的节点排除在进一步参与之外。可替代地或附加地,行为不当的证明可以通知法律、法规或业务流程,从而使得可以在系统外进行有罪判决和罚款的确定。
当然,可以使用多个完全独立的区块链。在无许可式区块链的情况下,这种方法会出现问题,因为,除了少数几个最流行的区块链之外,大多数区块链都几乎没有专用于维护它们的资源,并且在这种情况下,容易用适度的资源来压倒它们,从而破坏他们的诚信。
减轻区块链上的压力的两种方式是闪电网络和侧链。在这两种情况下,参与者都仅偶尔“链下”交互并在区块链上执行交易。虽然这些方法可以帮助减轻区块链上的负担,但它们并不能改变主链无法扩展的事实。
无许可式、分散式分类账和许可式、分散式分类账都会容易受到参与者的操纵,其中,相对于其它交易,参与者倾向于一些交易。大多数分类账协议的核心可以是用于建立普遍同意的交易序列的共识算法。虽然许多分布式分类账实际上并不能解决传统的共识问题,但它们一般仍被称为实现共识算法。一些先前的共识算法基于工作量证明(PoW)系统,其中参与者花费资源来解决密码难题。但是,PoW有两个众所周知的缺点。传统上,PoW会是既浪费又缓慢的,故意设计为消耗不可忽略的能量,并限制将交易追加到分类账的速率。这种方法旨在限制未知实体的影响,并且在许可式分类账中可以避免其成本。PoW共识仅提供概率保证。一般而言,如果两个或更多参与者同时将不同的交易添加到链中,那么PoW共识协议的分类账可能分叉。最终,这些不相容的链中只有一个不会被抛弃,但是可能存在不确定谁将幸存的时段。因此,只有在交易之后追加了足够数量的后续交易之后,该交易才被认为是可信赖的(例如,确保分类账或者未分叉或者这个交易在分叉中幸存且未被抛弃)。
因为参与者被明确授权,所以在许可式分类账中可以避免与PoW共识相关联的风险和延迟,因此无需限制未知实体的参与。这为各种不适用于无许可式分类账的共识机制开辟了可能性。
例如,用于许可式、分布式分类账的共识机制是实用拜占庭式容错(PBFT),其中参与者提议并投票表决要追加到分类账的交易(或其区块)。PBFT可以确保诚实的参与者同意对分类账的有效添加,前提是一定比例(例如,超过2/3)的参与者是诚实的。换句话说,如果少于一定比例(即,1/3)的参与者是不诚实的(称为拜占庭式,例如,他们偏离了协议并且行为任意),那么PBFT可以确保正确性。但是,PBFT一般需要n个节点的O(n2)个消息才能达成协议,即使将交易批量处理成多个区块,PBFT仍可以被认为阻止对大量节点的可伸缩性。
另一个共识算法涉及领导者将交易追加到其分类账,并将交易广播给其他参与者,其他参与者将交易追加到其分类账中并向领导者发送确认。这种共识算法的一个示例是Raft。一旦领导者获得了大多数参与者的确认,交易就被认为已完成。如果领导者变得不响应,那么其他参与者可以发起选举以选择新的领导者。在通常情况下,Raft只需要O(n)个消息即可达成协议,因此与PBFT相比,它对大量节点的可伸缩性更高。但是,Raft不容忍拜占庭式失败。例如,它允许参与者互相模仿,允许腐败的领导者欺骗其他人,等等。因此,它可能不直接适用于分布式分类账实现。
发明内容
描述了用于实现分片式、许可式、分布式分类账的方法,技术,装置和系统。如本文所述,分片式、许可式、分布式分类账可以减少每个参与者所需的工作量和通信量,从而有可能避免以前的分布式分类账实施方式中可能固有的可伸缩性瓶颈,并有可能使得能够使用附加资源来转变成增加的吞吐量。本文描述的方法、技术和/或机制可以提供实现可扩展的基础设施的方法,以支持由多个“分片”组成的分类账,每个分片都可以被考虑并可以被独立地实现为分布式分类账。在一些实施例中,多个分片可以并行操作。
在一些实施例中,仅在诸如财团之类的授权机构的许可下,才可以允许在分片式、许可式、分布式分类账中的参与。授权机构的许可可以允许利用这种许可决定所隐含的信任,而永远不要完全信任任何人或任何事物。根据各种实施例,还可以利用这种许可以便有可能确保可以经由技术和非技术的各种机制中的任何一种来检测行为不当的参与者并追究其责任。
本文描述的方法、技术和/或机制可以为实现分片式、许可式、分布式分类账的系统提供机会来指示期望的行为(例如,确定在任何时间点哪些参与者积极地维护给定的分片),和/或对不遵守(例如,不遵守分类账协议和/或共识算法)的行为负责。如本文所述,根据一些实施例,分片式、许可式、分布式分类账可以利用(和/或包括)可扩展的基础设施,该基础设施通过将分片与管理它们的参与者解耦来虚拟化服务的提供,从而可能允许容量和工作负荷彼此独立地增长。
附图说明
图1是图示根据一个实施例的实现分片式、许可式、分布式分类账的系统的逻辑框图。
图2是图示根据一个实施例的在若干节点上负责维护分片式、许可式、分布式分类账的分片的核实器的逻辑框图。
图3是图示用于向分片式、许可式、分布式分类账中的分片追加交易的方法的一个实施例的流程图。
图4是图示用于分配接收到的消息的方法的一个实施例的流程图。
图5是图示在核实器变为活动状态时利用分片快照的方法的一个实施例的流程图。
图6是图示根据一个实施例的具有协调分片的成员资格服务的逻辑图。
图7是根据一些实施例的被配置为实现分片式、许可式、分布式分类账系统的计算设备的框图。
虽然本文通过示例的方式描述了若干实施例和说明性附图,但是本领域技术人员将认识到的是,本公开不限于所描述的实施例或附图。应当理解的是,本文的附图和详细描述并非旨在将本公开限制到所公开的特定形式,而是相反,本公开将覆盖落入由所附权利要求定义的精神和范围内的所有修改、等同形式和替代形式。本文使用的任何标题仅用于组织目的,并不意味着限制本描述或权利要求的范围。如本文所使用的,词“可以”以宽松的意义(即,意味着有可能)而不是强制性的意义(即,必须)使用。类似地,词“包括”和“包含”意味着包括但不限于。
具体实施方式
描述了用于实现分片式、许可式、分布式分类账的方法、技术、装置和系统。在一些实施例中,分片式、许可式、分布式分类账可以减少每个参与者所需的工作量和通信量,从而可以避免先前的分布式分类账实现中固有的可伸缩性瓶颈,并且使得能够使用附加资源,从而可能增加吞吐量。
在整体式分类账中(例如,BitcoinTM作为一个示例),分类账中的交易以单个线性顺序布置。因此,整体式分类账一般固有地是顺序的:建议向分类账追加新交易的每个节点都必须通过参与共同的共识协议来与其它此类节点竞争,并且随着参与者数量的增加,总体系统吞吐量和等待时间往往受到影响。
相比之下,在分片式分类账中,单个分类账可以被拆分成多个分片的集合,并且每个分片本身可以是线性分类账。相关的交易可以被追加到同一个分片,而不相关的交易可以并行地追加到不同的分片。并行追加不相关的交易的能力允许分片的分类账被认为固有地具有更大的可扩展性。此外,每个分片可以由可用资源的子集维护。因为用于维护单个分类账(或在分片的分类账的情况下为个体分片)的共识机制常常无法随着参与者的数量而扩展,所以分片之间的这种资源分区也会增加每个个体分片的吞吐量。与由同一资源集维护的整体式分类账相比,将交易并行追加到多个分片的优势与增加个体分片的吞吐量相结合,可以显著提高吞吐量。
简单地创建彼此完全独立的分类账集,并且指派资源以维护它们中的每一个具有如本文所述的分片式、许可式、分布式分类账没有共享的几个缺点。例如,分类账和维护完全独立的分类账集的资源之间的固定映射是不灵活的,一般而言会阻止分类账之间的自动负荷平衡。此外,如果维护每个独立分类账的资源集保持不变,那么会有可能在足够数量的这些资源之间形成联盟,以至于它们可以破坏分类账,例如通过同意更改分类账的历史。
在一些实施例中,分片式、许可式、分布式分类账可以动态地改变分片与维护它们的资源之间的映射。在一些实施例中,这可以启用例如执行负荷平衡的通用策略,并且还可以使系统能够定期重新指派资源,从而潜在地挫败了在维护任何给定分片的资源之间形成联盟的努力。此外,关于一个分片的状态的信息可以被包括在一个或多个其它分片的分类账中。如以下更详细描述的,将关于一个分片的状态的信息包括在另一个分片的分类账中可以被认为是“纠缠”技术的一个示例,该技术可能增加破坏任何给定分片的难度。
在一些实施例中,分片式、许可式、分布式分类账还可以提供用于支持跨分片交易(即,影响或取决于多个分片的状态的交易)的机会。
此外,根据各种实施例,本文描述的方法、技术和/或机制可以适用于各种区块链和分布式分类账系统。
实现分片式、许可式、分布式分类账
如上所述,根据一些实施例,本文描述的方法、技术和/或机制可以将分类账拆分成多个分片,并且布置节点的子集来维护每个分片,而不是让所有节点彼此通信以维护单个分类账。图1是图示根据一个实施例的被配置为实现分片式、许可式、分布式分类账的系统的逻辑框图。
在一些实施例中,分片式、许可式、分布式分类账可以包括多个分片,其共同可以代表完整的分片式、许可式、分布式分类账。此外,分片本身可以就是分类账。换句话说,虽然包括整个分类账中的信息的子集,但是分片可以以与完整分类账相同的方式起作用并与之交互。
根据各种实施例,被配置为实现分片式、许可式、分布式分类账的系统(诸如系统100)可以包括多个节点(诸如节点120A-N),这些节点可以被认为是整个分类账系统的参与者。节点120A-N可以被配置为经由一个或多个应用、模块、进程、线程等(诸如经由分配器130A-N、成员资格代表140A-N和(一个或多个)核实器150A-N)参与分类账系统。此外,在一些实施例中,节点120A-N可以被配置为共同维护分片式、许可式、分布式分类账,该分类账可以被拆分成多个分片。
客户端(诸如客户端180A-M)可以通过网络110进行通信,以与分片式、许可式、分布式分类账系统进行交互,诸如提交要添加到分类账的交易。根据各种实施例,网络110可以表示在实际上任何类型的通信介质上并且根据实际上任何通信协议进行操作的实际上任何类型的有线或无线网络。此外,在一些实施例中,每个节点120可以具有一个或多个特殊的“分配器”进程(诸如分配器130A-N),其可以负责将消息从客户端指引到核实器。虽然每个节点仅示出单个分配器130,但是在一些实施例中,每个节点可以包括多个分配器。
在一些实施例中,系统可以包括成员资格和配置服务170,该成员资格和配置服务170被配置为确定和/或分发关于在分类账系统的执行期间利用的各种决定的信息,诸如在任何给定的时间点哪些节点可以在哪些分片上处于活动、每个分片的数据的多少副本应当由存储服务存储、参与者(例如,节点)在分片上变为活动之前必须准备多少提前通知等,如将在下面更详细讨论的。虽然被示为一个实体,但是成员资格服务170在一些实施例中可以表示多个服务,诸如一个服务用于成员资格,一个服务用于节点指派(例如,指派到分片),一个服务用于系统配置,等等。
在一些实施例中,系统还可以包括存储服务190,该存储服务190被配置为在分类账中(和/或与之关联)维护所有数据(例如,交易)中的一些。不是让节点120仅负责分片的数据,而是可以使用分离的存储服务190,如随后将更详细描述的。虽然在一些实施例中,可以将分片存储在节点120A-N上,但是在其它实施例中,可以将系统的分片(以及因此分类账)与节点120A-N分开存储在与节点120A-N不同的存储设备上(诸如存储服务190内)。在其它实施例中,可以将用于分片的数据既存储在节点120A-N上,又存储在分离的存储设备上(诸如存储服务190内)。
多个客户端(诸如客户端180A-M)可以与分片式、许可式、分布式分类账系统进行交互,诸如为了提交要添加到分类账的交易。当客户端180向分类账系统呈现交易时,客户端可以指定该交易应当指向的分片(即,构成分类账的分片之一)。客户端180可以以各种方式中的任何一种指示目标分片(即,交易应当被指向的分片)。例如,在一个实施例中,客户端180经由其与分类系统100进行通信的通信协议可以提供客户端180经由其指示目标分片的机制(例如,消息类型、字段等)。此外,可以以各种方式中的任何方式将交易指派给分片,包括但不限于在服务器之间平衡负荷的指派、有利于地理位置附近的服务器的指派和/或在单个分片上聚合相关交易的指派。一般而言,用于将交易指派给分片的具体方式和/或机制可以随实施例而变化。
系统组织和信任模型
如上所述,每个分片可以被组织为分类账,其可以类似于单分类账系统被维护。例如,在一个实施例中,可以指派任何节点120以维护任何分片。但是,在其它实施例中,可以仅允许节点120A-N的子集在任何给定时间维护任何给定分片(例如,诸如用于可伸缩性)。本文描述了用于在实施分片式、许可式、分布式分类账的系统中确定哪些节点在哪些时间参与维护哪些分片的各种技术。
实现分片式、许可式、分布式分类账的系统可以防止试图破坏或损坏分类账的对手。为了便于讨论,可以将每个节点视为在一个实体的控制之下,并且还可以假设对手可以在单个节点的粒度上进行损坏。例如,如果节点的一个进程已损坏,那么那个节点上的所有进程都可能行为不当。相反,可以将单个节点上的进程视为彼此信任,而不同的区别节点上的进程不会彼此信任。
虽然本文针对其中每个节点针对每个分片具有单个核实器进程的系统进行了描述,但是在一些实施例中,可以实现分片式、许可式、分布式分类账系统,使得每个节点可以具有针对每个分片的线程。在其它实施例中,进程和/或线程可以在不同时间维护不同的分片。因此,在一些实施例中,分片式、许可式、分布式分类账系统可以包括多个节点(诸如节点120A-N),每个节点可以包括针对每个分片的进程(诸如(一个或多个)核实器150A-N)。此外,每个核实器150可以参与仅维护它在其上处于活动状态的分片。
图2是根据一个实施例的图示核实器参与将分片维护到分片式、许可式、分布式分类账的逻辑图。图2中示出了节点210、220和230,它们在一些实施例中可以与节点120A-N中的各个节点相同(或表示其)。请注意,虽然为了便于讨论仅图示了三个节点,但是在一些实施例中,可以包括多得多的节点并且这些节点可以参与如本文所述的分片式、许可式、分布式分类账系统。此外,虽然未示出,但是节点210、220和230可以包括其它应用、模块、进程和/或线程,诸如分配器、成员资格代表等。
在任何给定时间,节点对于给定分片都可以处于活动或不活动状态。如果节点对于给定分片处于活动状态(如从核实器到分片的点线所指示的),那么该节点的用于那个分片的核实器过程将参与共识,以将新交易追加到该分片的分类账。例如,节点210的核实器215A可以对于分片265A处于活动状态,如从核实器215A到分片265A的点线所指示的。类似地,核实器215N对于分片265S可以处于活动状态,如从核实器215N到分片265S的点线所指示的。此外,节点220的核实器225A-N和节点230的核实器235A-N中的各个核实器可以在分片265A-S中的各个分片上处于活动状态,如从核实器到分片的点线所指示的。请注意,图示的核实器和分片的逻辑布置是为了便于讨论并且不能代表节点、核实器和/或分片的任何实际物理布置。
当维护分片时,用于给定分片的活动核实器可以遵循各种方法和/或共识协议中的任何一种。例如,在一个实施例中,节点210、220和230(和/或节点120A-N)的核实器可以遵循基于Raft的版本的共识算法,该版本可以被“强化”以容忍拜占庭式行为(可以在本文中称为BFT Raft)。因此,在一些实施例中,核实器可以遵循共识协议(或算法),包括各种措施,诸如以下一个或多个:
·要求所有消息由发送方签署,从而启用认证;
·包括交易序列的递增散列,从而启用节点在整个交易序列上达成同意的核实,并且几乎不可能在对于其他人来说是不明显的情况下修订分类账的历史;
·向所有参与者(不仅仅是领导者)广播确认。
虽然这些措施会导致O(n2)消息复杂性,但是这种共识协议可以扩展到更大数量的节点并实现更高的交易吞吐量(例如,因为它们使不同的节点能够以不同的速率前进)。
此外,在一些实施例中,分片式、许可式、分布式分类账系统可以包括领导者核实器(诸如领导者240)。例如,在一个实施例中,可以将一个活动的核实器指定为领导者核实器。领导者240可以提出要追加到分类账的新交易。
图3是图示用于向分片式、许可式、分布式分类账中的分片添加交易的方法的一个实施例的流程图。如方框300中所示,领导者240可以确定要添加到分类账的分片的提出的交易。根据各种实施例,领导者240可以以各种方式中的任何一种来确定提出的交易,诸如通过接收客户端提交的交易。领导者240可以通过向其它活动的核实器发送提出的交易以及支持信息(例如,诸如为了验证领导者的权限和/或真实性)提出要追加到分类账的新交易,如方框310中所示。例如,在一些实施例中,领导者可以利用支持信息,包括指示(或表示)示出其作为领导者的合法性的投票的信息、应当在其后追加新交易的分类账索引等。接收所提出的交易的核实器可以检查交易和支持信息是有效的,如方框320中所述。如判定框330的肯定输出所指示的,如果支持信息(和/或所提出的交易的其它方面)是有效的,那么核实器可以发布对那个事实的确认,如方框340中所指示的。每个核实器(例如,目标分片上针对交易处于活动状态和/或接收所提出的交易的核实器)可以独立地验证来自领导者240的所提出的交易和/或支持信息,并发布确认。在一些实施例中,领导者240也可以发布确认(例如,与其它核实器一致),但是在其它实施例中,所提出的交易的发送可以表示领导者240的确认。
在一些实施例中,如判定框350和方框360的肯定输出所指示的,节点可以考虑一旦它已经从一定数量的处于活动状态的核实器接收到确认就提交所提出的交易。因此,当节点从法定数量(quorum)的处于活动状态的核实器中接收到针对给定索引的交易的此类确认时,该节点还可以认为直至该索引的分类账中的交易将被提交。此外,在一些实施例中,处于较低索引的所有交易也可以被认为已提交。
根据一些实施例,法定数量可以被认为是分片上处于活动状态的节点的任何多数。虽然图2仅示出了每个分片两个处于活动状态的核实器(即,为了便于说明和讨论),但是在其它实施例中,每个分片可以使用奇数个核实器,从而可以实现明显的多数。因此,一旦法定数量的处于活动状态的节点确认提出的交易为分类账中的下一个交易,另一个法定数量就可能无法在该那个索引处确认不同的交易(除非至少一个处于活动状态的核实器签署冲突的确认,这提供了它在作弊的不可否认的证据)。
在一些实施例中,如果当前的领导者行为不当或变得无响应,那么处于活动状态的核实器的法定数量可以罢免领导者并选举新的领导者。当被法定数量的核实器罢免时,原始的领导者的任期被认为完成,而另一个任期由新的领导者开始。
与向分片添加交易相关联的消息复杂性可以被认为取决于那个分片的处于活动状态的节点的数量,而不是取决于系统中节点的总数。根据一些实施例,这可以使得多个分片能够并行操作,并且还可以允许每个分片实现比由所有节点维护的单个分片更高的吞吐量。
分配器
如上所述,每个节点可以具有一个或多个分配器进程(诸如分配器130A-N),其可以负责将消息从客户端指向处于活动状态的核实器。图4是图示用于分配接收到的消息的方法的一个实施例的流程图。如方框400中所示,分配器130可以从客户端接收指示目标分片的消息。在一些实施例中,分配器130A-N可以从客户端180A-M接收交易请求。来自客户端的请求可以指定目标分片以及命令和/或交易(例如,要添加/应用于目标分片的提出的交易)。分配器可以负责将接收到的请求转发到在目标分片上处于活动状态的进程(诸如核实器150)。如判定框410的肯定输出所指示的,如果与分配器在同一节点(例如,分配器正在其上执行的节点)上的核实器在目标分片上处于活动状态(例如,负责维护目标分片),那么如方框340中所指示的,分配器可以将该请求转发到分配器自身节点上的进程(例如,核实器)。
如判定块410的否定输出所指示的,如果没有与分配器在同一节点上的核实器在目标分片上处于活动状态,那么分配器可以将请求发送到目标分片上处于活动状态的另一个节点(即,远离分配器自己的节点)上的进程(例如,核实器),如在方框430中所示。在一些实施例中,可能不需要分配器在将每个请求转发给处于活动状态的核实器时都非常准确。尽管如此,通过尽可能频繁地这样做可以避免不必要的转发。
在一些实施例中,分配器可以维护状态信息以支持对目标分片来说处于活动状态的进程的识别。在一些实施例中,由分配器维护的这个状态信息可以至少包括:维护给定分片的进程集,诸如核实器;当前对于分片处于活动状态的进程的子集;和/或分配器自己的节点上维护分片的进程的身份。根据各种实施例,被配置为实现分片式、许可式、分布式分类账的系统可以以各种方式中的任何一种来识别进程、核实器和/或分片。例如,在一个实施例中,唯一标识符可以与每个进程、核实器、分片等相关联,并且这些标识符(名称、数字ID、字母数字ID等)可以在状态信息内被利用。在其它实施例中,指针(例如,可编程的存储器指针)可以被用于识别、定位进程、核实器、分片等和/或与其通信。
如果在目标分片上存在本地进程,那么分配器可以利用状态信息在本地转发请求。如果在目标分片上没有处于活动状态的本地进程,那么分配器可以使用状态信息来识别目标分片上处于活动状态的远程进程。在一些实施例中,状态信息可以本地维护在分配器自己的节点上,而在其它实施例中,分配器可以依靠远程存储(但可访问)的状态信息。根据各种实施例,可以响应于来自成员资格服务的指令来更新关于处于活动状态的核实器和分片的状态信息。
分片指派
在一些实施例中,用于每个分片的处于活动状态的进程可以在初始化时确定,并且可以在系统的整个生命周期中保持静态。但是,在一些实施例中,使用静态进程指派会有一些缺点,诸如:
·不允许添加分片。
·不允许添加节点。
·不允许替换分片上的处于活动状态的参与者(例如,诸如如果他们变得无响应或被观察到行为不当)。
·同一节点集始终在任何给定分片上保持活动状态,从而允许在维护给定分片的不诚实的节点之间建立联盟。
在其它实施例中,可以将节点(和/或核实器)动态地指派给分片。
在各种实施例中,可以使用各种方案来确定进程何时在其分片上变为活动状态。例如,在一些实施例中,诸如核实器之类的进程可以遵循分片上的激活的固定时间表。例如,如果/当分片的分类账达到一定长度时,在给定分片上处于活动状态的核实器可能对于那个分片变得不活动。但是,注意的是,在一些实施例中,当条件(诸如分类账达到一定长度)要求这样做时,处于不活动状态的进程/核实器可能无法立即变为活动状态,因为它可能不知道这些条件。代替地,在一些实施例中,可以“唤醒”进程/核实器,并通知它现在在给定分片上处于活动状态。在一些实施例中,唤醒进程可以由另一个处于活动状态的进程(诸如将要在分片上变得不活动的进程)执行。在其它实施例中,可以将相关事件(诸如分片达到阈值长度)通知给分配器,这可以使它们相应地更新其状态信息,并唤醒和/或通知进程它现在处于活动状态。还可以通过从另一个在分片上处于活动状态的、知道该分片已达到阈值长度(例如,触发进程变为活动状态的阈值)的进程接收消息来唤醒新处于活动状态的进程。在还有其它实施例中,成员资格服务170的参与者可以通知进程它已在分片上变为活动状态。
在一些实施例中,代替按固定时间表激活进程/核实器(例如,当分类账达到一定数量的交易时),进程/核实器可以基于可能受到各种信息的组合的影响的常规重新指派而变为活动/不活动,该信息包括以下任何一个或全部:
·关于分片上的负荷的信息;
·关于那个分片上处于活动状态的进程的可用性和响应性的信息;
·关于那个分片上处于活动状态的进程的(可疑)行为不当的信息;以及
·关于策略输入的信息,诸如服务级别要求、约束等。
在一些实施例中,参与者(例如,节点、进程、核实器等)不能控制分片指派可以是重要的。否则,一组节点可能能够合谋以在分片上实现足够的主动参与,从而他们可以胜过该分片中的所有其它处于活动状态的参与者,从而有效地获得控制那个分片的能力(例如,用于自我服务和/或非法目的)。由于这个原因,在一些实施例中,分片指派决定可以由策略来驱动,该策略被实现为参与者无法控制的随机(例如,伪随机)序列的确定性功能,可能连同附加信息一起。
将随机信息用于分片指派决定可以防止对手(例如,行为不当的节点)一致地做出可以使其能够获得对一个或多个分片的控制的选择,并且还可以提供问责(accountability)。例如,可以检测偏离确定性策略和随机性源所指示的选择的任何尝试(即,或者立即或者事后),并且可以追究不诚实的节点的责任。
一般而言,可以以各种方式中的任何一种来利用随机性源(诸如密码随机性源)用于确定性分片指派策略。根据各种实施例,一些示例包括:
·周期性地随机选择分片、选择在该分片上处于活动状态的进程并使其变为不活动状态,然后随机选择同一节点的进程处于不活动状态的分片并使其变为活动状态的策略;
·重复地随机选择两个分片、然后选择在不同分片上处于活动状态的一对节点并交换这些角色的策略;和/或
·周期性地生成满足所需的任何策略的新系统范围指派的策略(例如,确保每个分片具有足够的活动进程,并且负荷在节点之间均等地平衡)。
上面的第一示例策略可以使给定节点在其上处于活动状态的分片的数量保持恒定,同时在处于活动状态的分片指派中创建某些周转(或“搅动”)。但是,在一些实施例中,不能保证每个分片将总是具有足够的处于活动状态的节点来推进并容许每个分片上的指定数量的拜占庭式节点。上面的第二示例策略可以保留每个节点上的负荷以及每个分片的处于活动状态的进程的数量。
一般而言,根据各种实施例,可以存在折衷、挑战和/或约束,这些折衷、挑战和/或约束会影响对于特定目的最有效的策略的选择。例如,如果重新指派的频率不够高,那么参与给定分片的节点可能有机会组成联盟,并可能尝试控制分片。另一方面,在一些实施例中,将进程重新指派给分片会带来各种开销。例如,在一些实施例中,如果进程在分片上处于非活动状态,那么该进程将不具有关于最近交易的最新信息,并且可能需要进行通信以获得这个信息,然后它才可以开始参与追加新交易。因此,可能不期望过于频繁地重新指派进程。
参数(诸如分片重新指派的数量和频率)可以随实施例有所不同。例如,在一个实施例中,此类参数可以由初始化时间参数来确定,而在其它实施例中,此类参数可以基于各种输入(诸如分片上观察到的负荷(例如,交易的数量))和/或问责信息(诸如当分片上的阈值数量的处于活动状态的参与者报告另一个处于活动的参与者没有响应或行为不当时)而变化。
准备即将活动的进程
为了参与共识以将更多交易添加到分片,节点上的处于活动状态的进程可能需要与用于那个分片的先前交易保持最新。这可以是必需的,以便节点可以在所有先前交易的上下文中验证交易。此外,在一些实施例中,处于活动状态的进程可能需要是最新的,以便它可以在构造新交易时使用最新交易的密码散列(例如,诸如为了帮助确保分类账是防篡改的)。如果进程先前处于非活动状态,那么它可能缺乏用于分片(它现已针对其处于活动状态)的部分或全部交易。
在各种实施例中,参与者(例如,核实器)可以根据若干方法中的任何一种变成最新的。例如,在一些实施例中,共识算法(例如,诸如BFT Raft共识算法)可以具有供落后的参与者“赶上”前方的其他参与者的措施。但是,在参与者获取所有必需的交易时(例如,在追赶时),可能会产生显著的延迟,尤其是如果节点在分片上长时间处于不活动状态的话。
可替代地,在其它实施例中,可核实的分片“快照”可以在各个点处汇总分片的状态,从而可能使新处于活动状态的核实器能够采用快照而不必重放自上次在分片上处于活动状态以来的所有交易(或者,如果核实器以前从未在这个分片上处于活动状态的话,那么是针对分片的所有交易)。在一个实施例中,参与者可以验证并签署快照,并且如果足够数量的参与者验证并签署快照,那么可以保证其中至少一个是诚实的。
图5是图示当核实器变为活动状态时用于利用分片快照的方法的一个实施例的流程图。当核实器在给定分片上变为活动状态时,如方框500中所示,如果核实器在分片上不是最新的(通常可以是这种情况),如判定框510的否定输出所指示的,那么核实器可以确定对于给定分片,快照是否可用。例如,在为给定分片生成快照之前,核实器可能已经处于活动状态,因此没有快照可用。如果对于分片,快照不可用,如判定框520的否定输出所指示的,那么如方框560中所示,核实器可为分片的分类账重放先前的交易。根据各种实施例,当为分片的分类账重放交易时,核实器可以以各种方式中的任何一种来获得交易,诸如通过从最近处于活动状态的核实器或从存储服务190请求其所需的附加交易数据。在其它实施例中,响应于观察到核实器已经(或将)变为活动状态,其它核实器和/或参与者(诸如存储服务中的参与者)可以主动发送交易或快照数据。
可替代地,如果存在快照,如判定框520的肯定输出所指示,那么核实器可以获得并认证分片的快照,如方框530中所示。根据各种实施例,核实器可以以各种方式中的任何一种来获得或访问快照。在一个实施例中,快照(或快照的副本)可以存储在核实器自己的节点上。在其它实施例中,核实器可以被配置为从远程节点或从存储服务190请求和/或访问快照。
此外,根据一些实施例,核实器可以认证快照,诸如通过检查至少一定数量的其他参与者已经通过验证并签署了快照。在一些实施例中,“证据”可以与交易或快照数据一起存储,以使接收方能够核实其准确性。此类证据可以包括已为交易或快照投票的核实器的签名、加密散列和/或使接收核实器能够检查交易或快照有效的Merkle证明。然后,核实器可以如方框540中那样应用来自快照的交易。
如判定框550的肯定输出所指示的,如果存在不包括在快照中的分片的附加交易,那么核实器可以从分片重放那些交易,如方框560中所示。例如,在核实器获得和使用快照的过程中,可能已将附加交易提交给了分片。
如上所述,虽然快照方法可以减少追赶所需的时间,但它可能无法完全消除追赶,因为获得和验证快照会花费时间,并且在快照之后在核实器充分赶上来以便开始参与添加新交易之前可能有交易要应用。因此,在一些实施例中,被配置为实现分片式、许可式、分布式分类账的系统可以被配置为向进程/核实器提供它们将在不久的将来在分片上变为活动状态的提前警告。因此,在一些实施例中,在可能需要在给定分片上变为活动状态之前,进程可以能够开始追赶。例如,核实器可能从最近处于活动状态的核实器或从存储服务190请求其所需的附加交易数据。
如果过早知道未来的参与,那么在一些实施例中,这会给恶意联盟形成机会。另一方面,如果未给予足够的通知,那么新处于活动状态的节点/核实器在获取他们开始参与所需的数据时(例如,当他们追赶时)会有延迟。一般而言,给出的通知量可以随实施例而变化。例如,根据各种实施例,给定的通知量可以基于初始化时间参数和/或可以基于观察值进行动态适应/调整(例如,节点在主动参与之前需要多长时间才能赶上来)。
存储
在传统的整体式区块链系统中,所有参与者都可以接收、验证和存储所有交易和相关元数据(诸如区块、区块头、快照等)。在一些实施例中,分片式、许可式、分布式分类账系统,处于不活动状态的核实器可能不维护交易的最新记录,因此,当它们再次变为活动状态时,它们在追赶时会有延迟。在其它实施例中,可以通过使处于活动状态的节点在完成对它们的共识之后(例如,当交易被提交给分片时)广播交易来使处于不活动状态的节点和/或核实器保持最新。在此类实施例中,作为共识进程的一部分,处于活动状态的节点可以存储从其它处于活动的参与者接收的签署的(例如,已认证的)消息。
此外,根据一些实施例,向处于不活动状态的核实器广播的交易可以伴随有在当时处于活动状态的参与者之间已经达成共识的证明。因此,在一些实施例中,所有节点可以与所有分片保持(至少相对地)最新,同时仍将与共识相关的通信限于处于活动状态的参与者的组,该组可以包括少于全部参与者。但是,向处于不活动状态的核实器进行主动广播会导致附加的存储和处理开销,诸如所有节点为所有分片存储所有交易并在所有交易上进行至少一些处理。
为了减少因向处于不活动状态的核实器广播而引起的附加开销,可以限制任何给定节点可以变为活动状态的分片集。例如,节点可能从不会参与特定分片集之外的分片,因此可以从不需要存储和处理其交易(例如,针对不在特定集合中的分片的交易)。在一些实施例中,在具有许多节点和许多分片的大型网络中,将节点限制到特定的分片可以是期望的,使得仍然有足够的节点可用于参与任何给定的分片,从而使得能够定期重新指派以阻止共谋。
此外,在一些实施例中,可以使用诸如存储服务190之类的分离的存储服务,而不是让单个的节点单独负责存储分片数据和对请求进行响应(例如,用于快照以促进节点追赶分片),而不是单独使用节点。与维护分片的节点一样,存储服务中的参与者可能被许可,并且可能对他们可用于和/或能够提供被要求存储的数据保持问责。
在一些实施例中,可能要求变为不活动状态的分片核实器首先确保在存储服务109中使该用于分片的数据(例如,交易、共识和/或其它数据)充分可用。例如,核实器可以被配置为将数据发送到存储服务190的一个或多个存储节点。此外,在一些实施例中,核实器还可以被配置为接收(和/或认证)数据已被存储的签署的确认。在一些实施例中,将存储与处理解耦(例如,使用分离的存储服务190)可以使数据能够被复制足够的次数以使其非常有可能可用,同时可能避免过多的要求(例如,诸如让所有参与者存储所有数据)。
根据各种实施例,与分片式、许可式、分布式分类账系统的其它可配置方面一样,诸如存储服务应当存储多少个数据副本之类的参数可以由初始化时间参数确定,或者可以是动态的,由来自参与者和/或来自授权的管理员的输入通知的确定性策略驱动。这些和其它输入可以被收集和使用的一种方式是经由特殊的“协调分片”,如下面所讨论的。
成员资格和配置服务
如上所述,根据各种实施例,分片式、许可式、分布式分类账系统可以被配置为做出各种配置和/或操作决定,诸如关于在任何给定的时间点哪些节点在哪些分片上处于活动状态,关于应当存储每个分片的数据的多少副本(诸如由存储服务存储),和/或关于参与者应当在它要求在分片上变为活动状态之前提前多久接收到通知。在各种场景和实施例中,许多其它可能种类的决定可以是相关的。在一些实施例中,分片式、许可式、分布式分类账系统可以包括被配置为做出此类决定的成员资格服务170。在一些实施例中,成员资格服务170可以被分解成多个服务,诸如成员资格服务、用于将处于活动状态的节点指派给分片的服务和/或配置服务。因此,虽然在本文中被描述为单个服务,但是根据不同的实施例,成员资格服务170可以包括和/或表示多个不同(但可能相互关联)的服务。
节点可以以各种方式与成员资格服务170接口。例如,在一个实施例中,每个节点可以包括特殊的“成员资格代表”进程140,其被配置为参与成员资格服务170,并且可以与其节点中的其它进程(诸如分配器和/或核实器)进行通信。在一些实施例中,成员资格服务170可以不表示分离的模块(例如,与节点分离),而是代替地成员资格服务170可以表示由来自多个节点的多个成员资格代表140共同提供的服务。
一般而言,根据各种实施例,可以利用各种机制中的任何一种来实现成员资格服务、与之通信和/或参与其。例如,虽然在本文中被图示和描述为分离的模块/进程,但是在一个实施例中,可以将节点的分配器和成员资格代表的角色组合到单个进程中。
根据各种实施例,成员资格服务170可以被配置为做出关于成员资格、哪些节点在哪些分片上处于活动状态的指派和/或其它系统配置改变的各种决定。成员资格代表可以将基于这些决定的指令传达给其它参与者(诸如分配器和/或核实器)。例如,在一些实施例中,成员资格代表140可以被配置为将指令传达给分配器,分配器可以被配置为将相关指令转发给核实器。
在一些实施例中,成员资格服务的关键要求可以是所有诚实的参与者都遵守相同的决定序列(以及由此产生的指令)。例如,在一个实施例中,可以遵循确定性时间表(例如,在初始化时固定)。但是,这种固定的确定性时间表可能无法对某些事件做出反应,诸如节点行为不当或变得无响应。在另一个实施例中,可以使用基于输入和事件(诸如无响应、行为不当、配置改变等的报告)来做出决定的确定性策略。
在一些实施例中,成员资格服务170可以包括协调分片,其可以使用与用于系统中其它分片的技术类似的技术来实现。图6是图示根据一个实施例的具有协调分片的成员资格服务的逻辑图。例如,成员资格服务170可以包括协调分片610,其可以被配置为记录相关的输入和事件(诸如成员资格/分片信息630(例如,以便所有诚实的参与者对输入和事件具有相同的看法)),从而可能允许协调分片610中的参与者传达成员资格指令620,诸如可能基于将这些输入和事件作为输入的确定性策略。
作为一个示例,考虑一种简单的方案,该方案通过在每个分片上的每T个交易之后替换每个分片上的一个处于活动状态的参与者来确定哪些节点在哪些分片上处于活动状态。为此,可以在诸如分片265之类的分片s完成T个交易时通知协调分片610。这可以经由在分片s上处于活动状态的参与者(诸如核实器150)提交给协调分片610的交易640。可替代地,核实器150可以将其分片265上的进度通知给其本地(并且因此受信任的)分配器130,并且分配器130可以将相关事件传达给成员资格服务170(成员资格服务170可以随后将事件提交给协调分片)。此外,在一些实施例中,分配器130可以将交易640提交给通信分片610,而在其它实施例中,分配器130可以与本地成员资格代表通信,后者可以将成员资格/分片信息630传达给成员资格服务170和/或协调分片610。在一些实施例中,交易640可以包括分片265已经提交了另外T个交易的指示,并且还可以包括分片上当前处于活动状态的节点的一个或多个投票的指示,作为交易已经被提交的证据。
在一些实施例中,可以将附加信息提交给协调分片610,诸如经由交易。此类附加信息可以包括但不限于:
·关于其它节点的行为的观察,包括不响应、以可证明违反协议的方式行事和/或以值得注意的方式行事,即使它没有直接证明行为不当。
·关于分片的负荷的观察(例如,最近T个交易花费的时间)。
·状态信息的摘要(例如,可能简洁、不可伪造的摘要),诸如直到分片上某个索引的交易的净效应,或者对于从成员资格服务或其它服务接收的指令流是相似的。这些可以被认为是“纠缠”的示例,下面将对其进行更详细的讨论。
·来自特别授权方的调整参数的指令。例如,由财团治理委员会的五分之三成员签署的交易,指示那个分片上的交易应当由存储服务至少复制3次。
·来自特别授权方的从系统中添加或移除参与者的指令。
·来自特别授权方的对被认为行为不当的参与者处以罚款的指令(也许部分地基于先前包括在协调分片中的观察)。
在一些实施例中,系统在给定时间点的当前配置(包括诸如哪些参与者在哪个分片上以什么间隔处于活动状态(例如,参与者可能在分片上从交易N直到交易N+T处于活动状态)的信息)可以是协调分片的分类账中的信息的确定性函数,或者可以基于该信息。因此,如果/当一定数量的诚实节点关于协调分片分类账的状态达成同意时,它们可以被认为具有系统配置的共同导出的视图。
哪些进程可以参与协调分片610和/或进程的数量可以随实施例而变化。在一个实施例中,所有核实器和分配器都可以参与,诸如如果配置改变的频率不够高的话。在其它实施例中,每个节点处的分配器可以参与,而在其它实施例中,仅分配器的处于活动状态的子集可以参与。根据一些实施例,可以类似于针对常规分片来实现的方式来确定主动指派或在协调分片上可以激活哪些进程。一般而言,指派进程(或变得活动)以参与协调分片的方式可以随实施例而变化,并且可以取决于各种因素(诸如改变的频率、所需的响应性程度、威胁级别等)。
在一些实施例中,可能有必要将协调分片610上提交的交易广播给所有成员资格代表(和/或分配器)。例如,可能有必要确保所有可用的诚实节点都具有最新的成员资格和配置信息,诸如可以在协调分片中维护。此外,考虑到协调分片在控制整个系统各个方面时的潜在重要性,在一些实施例中,可能期望在协调分片610中具有比普通分片(例如,分片265)更多的处于活动状态的参与者。与其它配置参数一样,涉及协调分片中处于活动状态的参与者的数量和/或提交给协调分片的交易频率的权衡可以随实施例而变化。例如,与协调分片相关的配置参数可以在初始化时固定,或者可以动态地适应/调整(诸如经由作用于协调分片中记录的输入和事件的确定性策略)。
此外,在一些实施例中,协调分片的角色可以由多个特殊分片来实现。例如,一个特殊分片可以确定哪些实体被授权参与系统,另一个可以确定哪些节点在哪些分片上处于活动状态,而另一个管理配置参数(诸如在处于活动状态的成员资格发生改变之前要提交给分片的交易的数量)。一般而言,根据各种实施例,可以以各种方式中的任何一种来实现协调分片。
纠缠
如本文所述,纠缠可以被认为是使分片式、许可式、分布式分类账系统更难以损坏的技术。例如,纠缠可以涉及包括在一个位置来自另一个位置的信息的简洁的不可伪造的摘要。例如,当交易(或交易的区块)中记录的密码散列被记录在分类账上时,可以将其认为是纠缠的一种基本形式。密码散列可以使得不可能改变分类账上的一个区块或交易的内容而又不改变所有后续交易(例如,因为每个交易都可以基于前一个交易的密码散列)。
根据各种实施例,可以以除了这个基本形式之外的各种其它方式来使用纠缠。例如,在一个实施例中,提交给一个分片的交易可以包括另一个分片的当前或最近状态的密码散列(例如,状态信息),从而有可能确保即使联盟设法充分控制它可以修订第二分片的历史记录的第二分片,这也是可检测的(和/或可证明的),诸如通过证明第二分片不再由第一分片中包括的散列正确汇总。为了掩盖它的踪迹,试图修订一个分片的联盟还需要控制并修订已经记录了要修订的数据的摘要的一个或多个其它分片。确保与多个其它分片定期纠缠可以使得,即使是成功控制分片的联盟,也很难以不可检测的方式修订分片的内容。
因此,在一些实施例中,核实器可以被配置为计算、确定或以其它方式获得用于分片的当前状态的密码散列,并且还可以被配置为当向另一个分片提交交易时包括那个密码散列。
在另一个示例中,在一个实施例中,提交给协调分片(例如,用于实现成员资格服务的分片)的交易可以包括附加信息,诸如另一个分片的状态的表示的密码散列或Merkle根。可以认为这种纠缠与在多个常规分片之间进行纠缠具有相似的好处,和/或可以认为具有附加的好处(例如,由于其在系统中的重要作用,诸如在协调分片具有更大法定数量尺寸、更严格的审查等情况下)。
在又一个示例中,由成员资格服务170发送给其它参与者(诸如分配器130和/或核实器150)的指令流可以包括(或携带)累积散列(例如,指令流中的所有信息的散列),这可以类似于常规分片上每个交易可能包括的散列。因此,这些散列可以被报告回成员资格服务170并被记录(例如,在协调分片610上)-可能作为指令流已经被无损接收的证据。在一些实施例中,所报告的散列中的任何失配都会立即造成问题并且可以识别出可能的行为不当的参与者。相反,根据一些实施例,可以认为从一些、大多数或所有参与者接收到的匹配散列值增加了关于成员资格服务170已经发布了什么指令没有分歧或歧义的信心。
在一些实施例中,可能要求定期进行纠缠,并且所实现的纠缠的确切性质可以由由协调分片610实现的策略来驱动。如上所述,参与者未能遵守纠缠要求会给出标记(raisea flag)、触发调查和/或防止可疑参与者进一步参与等。此外,根据一些实施例,成员资格服务指令的摘要可以涉及多方。例如,在一个实施例中,指令可以被发送到分配器130,并且相关的指令可以由分配器130转发到本地核实器150,并且这些核实器150可以(直接或间接地)向协调分片610提交交易,从而可能证明指令尚未(诸如在传输中和/或被任何中间参与者)损坏。在一些实施例中,可以由成员资格服务170和核实器150计算每个分片的摘要,从而即使核实器150可以仅接收针对其自己的分片的指令,也可以验证核实器的状态。
问责和信任
如先前所讨论的,参与分片式、许可式、分布式分类账可以仅通过许可。因此,许可可以给参与者带来保持问责的机会,以防他们行为不当。例如,在一些实施例中,如果无论如何仍未使其分片处于活动状态的损坏节点尝试以分片共识来进行投票,那么其它节点可以检测到这一点,他们可以能够证明该行为不当(例如,通过给出签署的针对一轮共识的投票,连同发送方在那一轮中未处于活动状态的证明)。这会导致系统和/或现有机制自动施加处罚(诸如监管处罚、诉讼等)。因此,节点可以强烈希望遵循协议(例如,由系统实现的共识协议),或至少避免任何可以被检测到的行为不当,尤其是如果它可以被证明的话。
在一些实施例中,处于活动状态的、诚实的分片参与者必须能够说出哪些其它分片参与者是处于活动状态的,诸如以便诚实的参与者可以忽略来自假装处于活动状态的、损坏的、处于不活动状态的参与者的消息。例如,在一些实施例中,诚实的节点的处于活动状态的核实器可以知道在任何给定交易索引处处于活动状态的节点的至少子集。否则,损坏节点集可能通过发送足够多的投票以构成分片的共识协议中的法定数量而接管该分片,而无需被授权参与其中。如之前所讨论的,成员资格服务170可以根据各种实施例以各种方式来实现,包括但不限于使用特殊的协调分片610、确定性时间表或其它机制。此外,在一些实施例中,成员资格服务170可以被配置为确保所有诚实的成员资格代表将相同的指令序列传达给它们相应的分配器130和/或核实器150。
例如,如果核实器v1接收到来自核实器v2的对索引1500处的交易的投票,那么核实器v1在确定成员资格服务已发出指示核实器v2在索引1500处处于活动状态的指令之后可以在那个索引处对核实器v2的投票计数。根据一些实施例,如果核实器v1没有这样的指令可用,那么核实器v1可以被配置为推迟对该投票的计数,直到其接收到核实器v2在那个索引处处于活动状态的确认。
在一些实施例中,可以要求核实器v2提供“证据”以支持其处于活动状态的声明。例如,成员资格服务指令可以包括“指令序列号”,而核实器v2可以在投票中包括指令的序列号,使其对于包括1500的间隔处于活动状态。当核实器v1随后接收到具有那个序列号的成员资格服务指令时,核实器v1随后可以确认这个指令确实使核实器v2对于包含索引1500的间隔处于活动状态,并且如果没有,那么核实器v1可以通过提供其投票无效的证据来发出核实器v2行为不当的警报。在一些实施例中,在每个投票中包括指令序列号可以确保在识别出无效证据之前只是时间问题,从而不鼓励这种行为不当。
根据其它实施例,更复杂的方案可以包括更多证据,这些证据可以使核实器v1能够确认声明而无需等待指定的指令。例如,在一个实施例中,证据可以包括Merkle证明,该Merkle证明示出由成员资格服务170做出的决定序列所隐含的状态反映了核实器v2在其交易索引1500处的分片上处于活动状态。这可以使核实器v1能够检查这个证明并确信核实器v2的声明,而无需等待成员资格服务的附加指令。
但是,在许多情况下这种方法可能是不必要的。如以上所讨论的,可能期望参与者在变得活动之前至少具有一些预先通知。在那种情况下,直到核实器v2进行投票时核实器v1才意识到核实器v2处于活动状态的决定的上述情况可能相对较少。最糟糕的情况可以是核实器v1无法计数核实器v2的投票(当时)。根据一些实施例,取决于多少个节点是不诚实的和/或多少个指令被延迟,这可能潜在地阻止节点确认足够的票数以接受交易,直到接收到更多的指令。
在一些实施例中,核实器v1可以接受核实器v2声名对面值(face value)有效,诸如因为核实器v2知道如果它撒谎,那么可能在将来被发现,并且可能受到惩罚和/或以其它方式被问责。在一些实施例中,配置参数可以确定可以计数多少这种“投机”投票。但是,在一些实施例中,甚至计数一次投机投票也使得有可能(即使极不可能)欺诈性投票会使得在没有合法处于活动状态的节点的法定数量的投票的情况下确认交易。在一些实施例中,这可以是完全不可接受的,因此节点可以被配置为在核实其发送方合法地处于活动状态之前不对投票进行计数。
根据各种实施例,可以以不同于简单地等待延迟的指令到达的方式来实现这种核实。例如,在一个实施例中,可以存储证据(例如,由存储服务190和/或成员资格服务170中的参与者),从而可能使得能够按需请求证据。因此,遵循上述示例,在一些实施例中,核实器v2可以在其签署的投票中包括证明其处于活动状态的证据的标识符(例如,散列),并且核实器v1可以被配置为请求这个证据,以便核实v2的声明。
附加细节和/或优化
在一些实施例中,参与者可以被配置为一旦已经被核实和/或从受信任的源接收到数据,就使用各种技术中的任何一种来优化查询数据(例如,诸如分配器从其成员资格代表接收的指令)。例如,在一个实施例中,分配器可以接收MakeActive指令流,每个指令指定节点、分片和间隔(例如,开始、结束)。一旦核实了每个指令(例如,至少通过核实/认证发送该指令的受信任的本地成员资格代表的签名),该指令就可以存储在本地数据结构中。在本地存储此类指令可以提高公共操作的速度。在一些实施例中,核实器可以被配置为当接收到指令(例如,从本地分配器或成员资格代表)时类似地更新适当的数据结构,诸如为了促进它们的公共操作。
在一些实施例中,处于活动状态的核实器可以被配置为确定在其分片上的当前交易索引处哪些其它核实器处于活动状态,并且可以被配置为向它们广播与共识相关的消息。此外,当从另一个核实器接收到与共识相关的消息(例如,诸如对交易的投票)时,处于活动状态的核实器可以被配置为确认发送方对于由投票指定的交易索引是处于活动状态的,其中该交易索引可以与接收方的当前索引不同。
在一些实施例中,可以通过为接收到的每条指令更新“间隔图”数据结构来支持与确定哪些核实器对于当前交易处于活动状态并且与确认发送方对于具体交易索引处于活动状态相关的查询。在一些实施例中,间隔图可以支持其中键为间隔的键-值图,并且查询可以确定哪些值与包含指定的点、与指定的间隔重叠等等的间隔相关联。在一些实施例中,间隔图可以使用间隔树来实现。
继续以上示例,核实器v1可以被配置为维护间隔图,并且还可以被配置为在其间隔图中插入一对(值),以将间隔[1000,2000]映射到识别核实器v2的记录。当将数据插入间隔图时,核实器v1还可以包括其它可能需要的信息,诸如核实器v2的公钥(虽然此类信息可以在其它位置可用,但将其存储在间隔图中可以对经常访问的信息提供更快的速度)。根据一些实施例,维护间隔图可以使核实器v1能够使用已接收到其投票的索引来查询间隔图,从而潜在地识别在那个索引处处于活动状态的核实器集合。
附加的优化对本领域技术人员将是显而易见的。例如,在一些实施例中,核实器可以被配置为仅向间隔图查询其当前交易索引一次,并且在处理针对那个索引的与共识相关的消息时将结果高速缓存以供重复使用,从而在新指令影响结果的情况下使高速缓存的结果失无效或更新。在其它实施例中,例如由于在记忆功能的结果的功能语言中实现,因此这种优化可以是“免费的”。
根据一些实施例,分配器可以类似地维护数据结构以加速其公共操作。例如,分配器可以被配置为维护每个分片的间隔图,类似于以上针对核实器描述的间隔图。但是,如上所述,分配器的主要角色可以是接收来自客户端的交易并将其转发给适当的核实器。在一些实施例中,分配器不必具有(或获得)关于在每个分片上哪些核实器处于活动状态的精确信息。例如,如果分配器130向当前处于不活动状态的核实器150发送/转发消息(例如,客户端交易),那么核实器150可以被配置为将该消息转发到其本地分配器130。
但是,出于性能原因,在一些实施例中,可能期望分配器识别分片的处于活动状态的核实器。此外,如果分配器重复地向处于不活动状态的核实器发送消息,然后核实器将其发送回分配器,那么分类账中的总体进度会变慢。因此,在一些实施例中,核实器可以被配置为(例如周期性地)向分配器通知他们在其分片上看到的最高交易索引,从而潜在地使分配器能够查询其间隔图并可能确定哪些核实器当前处于活动状态(例如,以合理的准确性)。
随机性
如以上所讨论的,根据一些实施例,用于确定哪些参与者在哪些时间在哪些分片上处于活动状态以及用于确定各种配置参数的当前值的策略和/或决定可以至少部分地基于随机选择。因此,为了确保此类策略是确定性的并且可以由任何参与者独立地计算,在一些实施例中可能需要共享的随机性源。为了避免操纵策略的结果,没有人(例如,没有节点或其他参与者)应当能够控制随机性源。此外,为了拒绝对手提前计划的机会,所使用的任何随机数据都不应当在需要之前很早就知道。因此,在一些实施例中,在初始化时间选择随机种子并永久使用它可能是不够的。相反,在一些实施例中,分片式、许可式、分布式分类账系统可以被配置为定期替换共享的随机性源。
在一些实施例中,可以在协调分片上的领导者的任期内使用随机性源,并且可以在下一个领导者的任期用新的随机性源代替。例如,根据一个实施例,可以为每个领导者的任期生成用于确定性伪随机数生成器的新种子。但是,如本文根据各种实施例所述,一般而言,当实现分片式、许可式、分布式分类账时,可以利用用于提供随机性的各种机制中的任何一种。此外,根据各种实施例,随机性源的更新频率可以或者更高(提供更高的安全性),或者更低(需要更少的工作),或者由领导者改变以外的事件驱动(例如,诸如在不使用基于领导者的共识的系统中)。
例如,如上所述,在一些实施例中,可以通过为确定性伪随机数生成器生成“良好的”种子来生成随机性。显然,任何参与者都不能控制种子的选择。而且,在一些实施例中,种子可能无法提前太久被预测。如果对手可以提前告知在不久的将来将启用哪个分片核实器,那么对手可以着手尝试损坏这些核实器。
在一个实施例中,当领导者的任期结束时,领导者可以被配置为获取最后提交的交易的密码散列,这可能不会被预先预测。但是,这个散列可能由领导者操纵。例如,不诚实的领导者可以选择交易并对其进行排序,使得生成的散列具有期望的特性,诸如将“友好的”参与者指派给他们想要损坏的分片。因此,在一些实施例中,当前随机性源确定性地将伙伴节点指派给每个领导者。在其任期结束时,领导者然后可以将最后提交的交易的增量散列发送给伙伴节点,并且伙伴节点可以被配置为使用自己的私钥对散列进行签署,并将签署的散列返回给领导者,领导者然后可以使用自己的签名对结果进行XOR,从而得到不受任何一方控制的种子。
此外,在一些实施例中,可以为领导者指派多个伙伴节点(例如,至少与系统可以容忍的损坏节点一样多)。如果被损坏的节点数不超过指派的数量,那么这可以确保至少一个(或者领导者或者伙伴之一)是诚实的,因此不参与“试错”串通。根据一些实施例,如果通过所有签名的函数(例如,所有签名的XOR)来选择随机种子,那么确保单个参与者是诚实的排除了任何人控制随机性源。
如果领导者或其任何伙伴未能参与这个协议,那么在一些实施例中,领导者可能最终被罢免,并选举出新的领导者。然后,新领导者可以与其伙伴(由前一个随机性源的函数确定)合作,参与相似的协议以生成新的随机种子。最终,在一些实施例中,很有可能会发现一些其伙伴都做出了响应并且至少一个是诚实的领导者,这暗示着生成了新的可靠的随机性源,并且协议可以正常进行。
虽然上述方法可以允许领导者假装失败,以防所产生的随机性不符合其喜好,但是它将对下一个领导者及其伙伴选择的随机性没有影响。此外,这种故障对于其他人可以是可见的,因此可能有助于在怀疑故障是故意操纵结果的情况下进行评估的证据。
示例计算系统
本文描述的用于提供分片式、许可式、分布式分类账的技术和方法的实施例的各种部件可以在可以与各种其它设备交互的一个或多个计算机系统或计算设备上执行。图7图示了一种这样的计算机系统或计算设备。在所示的实施例中,计算机系统1000包括一个或多个经由输入/输出(I/O)接口1030耦合到系统存储器1020的处理器1010。计算机系统1000还包括耦合到I/O接口1030的网络接口1040,以及一个或多个输入/输出设备1050(诸如光标控制设备1060、键盘1070、音频设备1090和(一个或多个)显示器1080)。在一些实施例中,预期可以使用计算机系统1000的单个实例来实现实施例,而在其它实施例中,可以将多个这样的系统或构成计算机系统1000的多个节点配置为托管不同的部分、部件或实施例的实例。例如,在一个实施例中,可以经由与实现其它元件的那些节点不同的计算机系统1000的一个或多个节点来实现一些元件。
在各种实施例中,计算机系统1000可以是包括一个处理器1010的单处理器系统,或者是包括若干处理器1010(例如,两个、四个、八个或另一个合适数量)的多处理器系统。处理器1010可以是能够执行指令的任何合适的处理器。例如,在各种实施例中,处理器1010可以是实现各种指令集体系架构(ISA)(诸如x86、PowerPC、SPARC或MIPS ISA、或任何其它合适的ISA)中任何一种的通用或嵌入式处理器。在多处理器系统中,每个处理器1010可以共同但不一定实现相同的ISA。
在一些实施例中,至少一个处理器1010可以是图形处理单元。图形处理单元或GPU可以被认为是用于个人计算机、工作站、游戏控制台或其它计算机系统的专用图形渲染设备。现代GPU在操纵和显示计算机图形时可以非常高效,并且它们的高度并行结构可以使它们在一系列图形算法中比典型的CPU更有效。例如,图形处理器可以以使它们执行比通过主机中央处理单元(CPU)直接绘制到屏幕快得多的方式来实现许多图形基元操作。(一个或多个)GPU可以实现一个或多个应用编程接口(API),其允许程序员调用(一个或多个)GPU的功能。合适的GPU可以从诸如NVIDIA Corporation、ATI Technologies及其它供应商处购买。
系统存储器1020可以被配置为存储处理器1010可访问的程序指令和/或数据。在各种实施例中,可以使用任何适当的存储器技术来实现系统存储器1020,诸如静态随机存取存储器(SRAM)、同步动态RAM(SDRAM)、非易失性/闪存类型的存储器或任何其它类型的存储器。在所示的实施例中,实现所需期望功能的程序指令和数据(诸如以上针对用于在分布式分类账中提供增强的责任感和信任的方法(包括但不限于如图2至6中所示的将分布式分类账消息作为发送方节点和/或作为接收器节点进行处理的方法)的各种实施例描述的程序指令和数据)被示为分别作为系统指令1025和数据存储装置1035存储在系统存储器1020中。在其它实施例中,可以在不同类型的计算机可访问介质上或在与系统存储器1020或计算机系统1000分离的类似介质上接收、发送或存储程序指令和/或数据。一般而言,计算机可访问介质可以包括存储介质或存储器介质,诸如磁性或光学介质,例如,经由I/O接口1030耦合到计算机系统1000的盘或CD/DVD-ROM。经由计算机可访问介质存储的程序指令和数据可以由传输介质或诸如电、电磁或数字信号之类的信号传输,这些信号可以经由诸如网络和/或无线链路之类的通信介质来传送,诸如可以经由网络接口1040来实现。
在一个实施例中,I/O接口1030可以被配置为协调处理器1010、系统存储器1020和该设备中的任何外围设备之间的I/O流量,其中外围设备包括网络接口1040或其它外围接口(诸如输入/输出设备1050)。在一些实施例中,I/O接口1030可执行任何必要的协议、定时或其它数据变换,以将来自一个部件(例如,系统存储器1020)的数据信号转换成适于由另一个部件(例如,处理器1010)使用的格式。在一些实施例中,I/O接口1030可以包括对通过各种类型的外围总线(例如,诸如外围部件互连(PCI)总线标准或通用串行总线(USB)标准的变体)附接的设备的支持。在一些实施例中,I/O接口1030的功能可以被拆分成两个或更多个分离的部件,例如,诸如北桥和南桥。此外,在一些实施例中,I/O接口1030(诸如到系统存储器1020的接口)的一些或全部功能可以直接结合到处理器1010中。
网络接口1040可以被配置为允许数据在计算机系统1000与附接到网络的其它设备(诸如其它计算机系统)之间或者在计算机系统1000的节点之间交换数据。在各种实施例中,网络接口1040可以支持经由有线或无线通用数据网络的通信,例如,诸如任何合适类型的以太网网络;经由电信/电话网络,诸如模拟语音网络或数字光纤通信网络;经由诸如光纤通道SAN之类的存储区域网络,或经由任何其它合适类型的网络和/或协议。
在一些实施例中,输入/输出设备1050可以包括一个或多个显示终端、键盘、小键盘、触摸板、扫描设备、语音或光学识别设备,或适于由一个或多个计算机系统1000输入或检索数据的任何其它设备。多个输入/输出设备1050可以存在于计算机系统1000中或可以分布在计算机系统1000的各个节点上。在一些实施例中,相似的输入/输出设备可以与计算机系统1000分离并且可以通过诸如网络接口1040之类的有线或无线连接与计算机系统1000的一个或多个节点交互。
如图7所示,存储器1020可以包括:程序指令1025,被配置为实现用于在分布式分类账中提供增强的问责和信任的方法的实施例;以及数据存储装置1035,其包括可由程序指令1025访问的各种数据。在一个实施例中,程序指令1025可以包括用于在分布式分类账中提供增强的问责和信任的方法的实施例的软件元素,如以上附图所示。数据存储装置1035可以包括可以在实施例中使用的数据。在其它实施例中,可以包括其它或不同的软件元素和数据。
本领域的技术人员将认识到的是,计算机系统1000仅仅是说明性的,并且无意于限制本文所述的用于提供分布式分类账中的增强的问责和信任的方法的范围。特别地,计算机系统和设备可以包括可以执行所指示的功能的硬件或软件的任何组合,包括计算机、网络设备、互联网设备、PDA、无线电话、寻呼机等。计算机系统1000还可以连接到其它未示出的设备,或者代替地可以作为独立系统操作。此外,在一些实施例中,由所示出的部件提供的功能可以在更少的部件中组合或分布在附加的部件中。类似地,在一些实施例中,可以不提供一些所示部件的功能和/或可以获得其它附加功能。
本领域的技术人员还将认识到是,虽然将各种项目图示为在使用时存储在存储器中或存储在存储装置上,但是出于存储器管理以及数据完整性的目的,这些项目或它们的一部分可以在存储器和其它存储设备之间转移。可替代地,在其它实施例中,一些或全部软件部件可以在另一个设备上的存储器中执行,并且经由计算机间通信与所示的计算机系统通信。一些或全部系统部件或数据结构也可以被存储在计算机可访问介质或便携式物品上(例如,作为指令或结构化数据),以由适当的驱动器读取,上面描述了其各种示例。在一些实施例中,可以将存储在与计算机系统1000分离的计算机可访问介质上的指令经由传输介质或信号(诸如经由通信介质(诸如网络和/或无线链接)传送的电、电磁或数字信号)传输到计算机系统1000。各种实施例还可以包括在计算机可访问介质上接收、发送或存储根据前述描述实现的指令和/或数据。因而,本发明可以与其它计算机系统配置一起实践。
如图所示和本文描述的各种方法表示方法实施例的示例。方法可以以软件、硬件或其组合来实现。方法的次序可以改变,并且可以添加、重新排序、组合、省略、修改等各种元素。
如对于受益于本公开的本领域技术人员将显而易见的是,可以进行各种修改和改变。意图是本发明包括所有这样的修改和改变,并且因而,以上描述应当被认为是说明性而非限制性的。
Claims (20)
1.一种计算机实现的方法,包括:
在多个计算设备上维护关于分布式分类账的一个或多个交易的信息,所述多个计算设备被配置为作为多个节点参与分布式分类账系统,所述分布式分类账包括多个分类账分片,所述多个分类账分片包括至少第一分片和第二分片;
由节点之一上的分配器进程接收指向第一分片的客户端交易请求;以及
由分配器进程向与第一分片相关联的核实器进程发送分片交易以执行客户端交易请求,所述分片交易包括附加有第二分片的当前状态的摘要的所接收的客户端交易请求。
2.如权利要求1所述的计算机实现的方法,其中第二分片的当前状态的摘要是不可伪造的。
3.如权利要求1所述的计算机实现的方法,其中第二分片的当前状态的摘要包括第二分片中包括的先前交易的密码散列。
4.如权利要求3所述的计算机实现的方法,还包括:
接收分片交易的成功完成的指示,所述成功完成包括在第一分片处存储第二分片的当前状态的副本;以及
在接收到所述指示之后,检测对第二分片中包括的先前交易的修订,包括:
从第二分片中读取当前状态的更改的摘要;以及
核实更改的摘要与存储在第一分片处的当前状态的摘要的副本不匹配。
5.如权利要求1所述的计算机实现的方法,
其中所述分片交易被发送给第一分片的领导者核实器;并且
其中所述计算机实现的方法还包括由领导者核实器根据共识协议向在第一分片上活动的一组核实器进程提出所述分片交易。
6.如权利要求5所述的计算机实现的方法,其中第二分片的当前状态的摘要包括关于第二分片的其他核实器进程的信息。
7.如权利要求1所述的计算机实现的方法,其中第二分片的当前状态的摘要包括第二分片中包括的交易的计数。
8.一种分片式、许可式、分布式分类账系统,包括:
包括至少一个处理器和存储器的多个计算设备,被配置为作为多个节点参与存储分布式分类账的分布式分类账系统,所述分布式分类账包括多个分类账分片,所述多个分类账分片包括至少第一分片和第二分片,其中所述多个分类账分片中的各个分类账分片维护关于分布式分类账的一个或多个交易的信息;
所述多个节点中的节点在所述节点的存储器内存储程序指令,所述程序指令在所述节点的至少一个处理器上执行时使得所述至少一个处理器实现所述分片式、许可式、分布式分类账系统的分配器进程,所述分配器进程被配置为:
接收指向第一分片的客户端交易请求;以及
向与第一分片相关联的核实器进程发送分片交易以执行客户端交易请求,所述分片交易包括附加有第二分片的当前状态的摘要的所接收的客户端交易请求。
9.如权利要求8所述的分片式、许可式、分布式分类账系统,其中第二分片的当前状态的摘要是不可伪造的。
10.如权利要求8所述的分片式、许可式、分布式分类账系统,其中第二分片的当前状态的摘要包括第二分片中包括的先前交易的密码散列。
11.如权利要求10所述的分片式、许可式、分布式分类账系统,其中分配器进程被配置为:
接收分片交易的成功完成的指示,所述成功完成包括在第一分片处存储第二分片的当前状态的副本;以及
其中所述分片式、许可式、分布式分类账系统的分配器进程或另一进程被配置为:
在所述分配器进程接收到所述指示之后,检测对第二分片中包括的先前交易的修订,包括:
从第二分片中读取当前状态的更改的摘要;以及
验证更改的摘要与存储在第一分片处的当前状态的摘要的副本不匹配。
12.如权利要求8所述的分片式、许可式、分布式分类账系统,
其中所述分片交易被发送给第一分片的领导者核实器;并且
其中领导者核实器被配置为根据共识协议向在第一分片上活动的一组核实器进程提出所述分片交易。
13.如权利要求12所述的分片式、许可式、分布式分类账系统,其中第二分片的当前状态的摘要包括关于第二分片的其他核实器进程的信息。
14.如权利要求8所述的分片式、许可式、分布式分类账系统,其中第二分片的当前状态的摘要包括第二分片中包括的交易的计数。
15.一个或多个非暂态计算机可读存储介质,存储有程序指令,所述程序指令在一个或多个计算机上或跨所述一个或多个计算机执行时使得所述一个或多个计算机执行:
在多个计算设备上维护关于分布式分类账的一个或多个交易的信息,所述多个计算设备被配置为作为多个节点参与分布式分类账系统,所述分布式分类账包括多个分类账分片,所述多个分类账分片包括至少第一分片和第二分片;
由节点之一上的分配器进程接收指向第一分片的客户端交易请求;以及
由分配器进程向与第一分片相关联的核实器进程发送分片交易以执行客户端交易请求,所述分片交易包括附加有第二分片的当前状态的摘要的所接收的客户端交易请求。
16.如权利要求15所述的一个或多个非暂态计算机可读存储介质,其中第二分片的当前状态的摘要是不可伪造的。
17.如权利要求15所述的一个或多个非暂态计算机可读存储介质,其中第二分片的当前状态的摘要包括第二分片中包括的先前交易的密码散列。
18.如权利要求17所述的一个或多个非暂态计算机可读存储介质,其中所述计算机可读存储介质存储有程序指令,所述程序指令在所述一个或多个计算机上或跨所述一个或多个计算机执行时使所述一个或多个计算机还执行:
接收分片交易的成功完成的指示,所述成功完成包括在第一分片处存储第二分片的当前状态的副本;以及
在接收到所述指示之后,检测对第二分片中包括的先前交易的修订,包括:
从第二分片中读取当前状态的更改的摘要;和
验证更改的摘要与存储在第一分片处的当前状态的摘要的副本不匹配。
19.如权利要求15所述的一个或多个非暂态计算机可读存储介质,
其中所述分片交易被发送给第一分片的领导者核实器;并且
其中所述计算机可读存储介质存储有程序指令,所述程序指令在所述一个或多个计算机上或跨所述一个或多个计算机执行时使所述一个或多个计算机还执行由领导者核实器根据共识协议向在第一分片上活动的一组核实器进程提出分片交易。
20.如权利要求19所述的一个或多个非暂态计算机可读存储介质,其中第二分片的当前状态的摘要包括关于第二分片的其他核实器进程的信息。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/605,689 | 2017-05-25 | ||
US15/605,689 US10740733B2 (en) | 2017-05-25 | 2017-05-25 | Sharded permissioned distributed ledgers |
CN201880043371.4A CN110800005B (zh) | 2017-05-25 | 2018-05-16 | 分片式、许可式、分布式分类账 |
PCT/US2018/032943 WO2018217511A1 (en) | 2017-05-25 | 2018-05-16 | Sharded permissioned distributed ledgers |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880043371.4A Division CN110800005B (zh) | 2017-05-25 | 2018-05-16 | 分片式、许可式、分布式分类账 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117237099A true CN117237099A (zh) | 2023-12-15 |
Family
ID=62685127
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880043371.4A Active CN110800005B (zh) | 2017-05-25 | 2018-05-16 | 分片式、许可式、分布式分类账 |
CN202311066025.7A Pending CN117237099A (zh) | 2017-05-25 | 2018-05-16 | 分片式、许可式、分布式分类账 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880043371.4A Active CN110800005B (zh) | 2017-05-25 | 2018-05-16 | 分片式、许可式、分布式分类账 |
Country Status (5)
Country | Link |
---|---|
US (4) | US10740733B2 (zh) |
EP (1) | EP3631722A1 (zh) |
JP (2) | JP7098660B2 (zh) |
CN (2) | CN110800005B (zh) |
WO (1) | WO2018217511A1 (zh) |
Families Citing this family (87)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10515409B2 (en) * | 2016-03-23 | 2019-12-24 | Domus Tower, Inc. | Distributing work load of high-volume per second transactions recorded to append-only ledgers |
US20160321751A1 (en) | 2015-04-28 | 2016-11-03 | Domus Tower, Inc. | Real-time settlement of securities trades over append-only ledgers |
US10523421B2 (en) * | 2016-11-30 | 2019-12-31 | International Business Machines Corporation | Checkpoints for permissionless blockchains |
US10740733B2 (en) | 2017-05-25 | 2020-08-11 | Oracle International Corporaton | Sharded permissioned distributed ledgers |
JP2020522796A (ja) * | 2017-06-01 | 2020-07-30 | シュヴェイ, インク. ディー/ビー/エー アクソーニSCHVEY, INC. d/b/a AXONI | 安全なアクセス制限を管理する分散型のプライベートにサブスペース化されたブロックチェーン・データ構造 |
JP2019012415A (ja) * | 2017-06-30 | 2019-01-24 | 株式会社bitFlyer | ネットワークにおける合意形成方法及び当該ネットワークを構成するノード |
US11238164B2 (en) * | 2017-07-10 | 2022-02-01 | Burstiq, Inc. | Secure adaptive data storage platform |
US11146380B2 (en) * | 2017-08-03 | 2021-10-12 | Parity Technologies Ltd. | Methods and systems for a heterogeneous multi-chain framework |
EP3665858B1 (en) * | 2017-08-09 | 2022-05-25 | Visa International Service Association | Verification of interactions system and method |
EP3676849B1 (en) * | 2017-08-28 | 2024-04-17 | Visa International Service Association | Layered recording networks |
US10868673B2 (en) * | 2017-09-25 | 2020-12-15 | Sap Se | Network access control based on distributed ledger |
US11769150B2 (en) * | 2017-10-11 | 2023-09-26 | International Business Machines Corporation | Transaction scheduling for block space on a blockchain |
US10742612B2 (en) * | 2017-10-16 | 2020-08-11 | Cisco Technology, Inc. | Determine payload integrity for traffic flowing across proxies |
US10756904B1 (en) * | 2018-02-22 | 2020-08-25 | EMC IP Holding Company LLC | Efficient and secure distributed ledger maintenance |
US11531975B2 (en) * | 2018-04-13 | 2022-12-20 | International Business Machines Corporation | Network node management on a blockchain |
CN112041873B (zh) * | 2018-04-27 | 2024-04-19 | 区块链控股有限公司 | 区块链网络划分 |
US11194837B2 (en) | 2018-05-01 | 2021-12-07 | International Business Machines Corporation | Blockchain implementing cross-chain transactions |
US11030217B2 (en) * | 2018-05-01 | 2021-06-08 | International Business Machines Corporation | Blockchain implementing cross-chain transactions |
WO2019216949A1 (en) | 2018-05-08 | 2019-11-14 | Visa International Service Association | Sybil-resistant identity generation |
JP6684850B2 (ja) * | 2018-05-16 | 2020-04-22 | 株式会社日立製作所 | 分散台帳システム、分散台帳サブシステム、および、分散台帳ノード |
US10764258B2 (en) * | 2018-06-29 | 2020-09-01 | Arm Ip Limited | Blockchain infrastructure for securing and/or managing electronic artifacts |
GB201811263D0 (en) * | 2018-07-10 | 2018-08-29 | Netmaster Solutions Ltd | A method and system for managing digital using a blockchain |
JP7056430B2 (ja) * | 2018-07-18 | 2022-04-19 | 株式会社デンソー | 履歴管理方法、履歴管理装置及び履歴管理システム |
CN109063049B (zh) * | 2018-07-18 | 2020-12-08 | 百度在线网络技术(北京)有限公司 | 一种区块链网络的账号处理方法、装置、设备及存储介质 |
JP7056429B2 (ja) * | 2018-07-18 | 2022-04-19 | 株式会社デンソー | 履歴管理方法、及び履歴管理装置 |
WO2020018898A1 (en) * | 2018-07-20 | 2020-01-23 | Ezblock Ltd. | Blockchain sharding with parallel threads |
US11989208B2 (en) * | 2018-08-06 | 2024-05-21 | Inveniam Capital Partners, Inc. | Transactional sharding of blockchain transactions |
US11410174B2 (en) * | 2018-08-07 | 2022-08-09 | International Business Machines Corporation | Custom blockchain for IoT devices |
US10862908B2 (en) * | 2018-08-09 | 2020-12-08 | Hrl Laboratories, Llc | System and method for consensus ordering of broadcast messages |
WO2020041127A1 (en) * | 2018-08-23 | 2020-02-27 | Providentia Worldwide, Llc | Systems and methods for blockchain interlinking and relationships |
US11196542B2 (en) | 2018-08-29 | 2021-12-07 | International Business Machines Corporation | Checkpointing for increasing efficiency of a blockchain |
US11334439B2 (en) | 2018-08-29 | 2022-05-17 | International Business Machines Corporation | Checkpointing for increasing efficiency of a blockchain |
US10901957B2 (en) * | 2018-08-29 | 2021-01-26 | International Business Machines Corporation | Checkpointing for increasing efficiency of a blockchain |
US11803923B1 (en) | 2018-09-06 | 2023-10-31 | Side, Inc. | Blockchain-based system and method for purchase document transformation and accountability |
US11336430B2 (en) | 2018-09-07 | 2022-05-17 | Sap Se | Blockchain-incorporating distributed authentication system |
CN109308658A (zh) * | 2018-09-11 | 2019-02-05 | 北京永恒纪元科技有限公司 | 一种高效安全的去中心化资产托管清算平台系统 |
CN109272385B (zh) * | 2018-09-14 | 2021-03-23 | 创新先进技术有限公司 | 一种基于区块链的版权事件代理存证方法及系统 |
CN109274667B (zh) | 2018-09-14 | 2020-06-23 | 阿里巴巴集团控股有限公司 | 一种基于区块链的版权事件存证方法及系统 |
US11409734B2 (en) * | 2018-10-29 | 2022-08-09 | Electronics And Telecommunications Research Institute | Blockchain system and operation method thereof |
EP3651112A1 (en) * | 2018-11-06 | 2020-05-13 | Electricité de France | Method for processing data and apparatuses for implementing the same |
US20220058549A1 (en) | 2018-11-30 | 2022-02-24 | Shaun Cutts | Systems and methods for distributed resource allocation |
CN110033363B (zh) * | 2018-12-14 | 2024-01-23 | 创新先进技术有限公司 | 基于区块链的事件处理方法及装置、电子设备 |
US11048596B2 (en) * | 2018-12-14 | 2021-06-29 | Nokia Technologies Oy | Hierarchical weighted consensus for permissioned blockchains |
US20200192880A1 (en) * | 2018-12-14 | 2020-06-18 | Samsung Electronics Co., Ltd. | Optimal dynamic shard creation in storage for graph workloads |
SG11201906831YA (en) | 2018-12-28 | 2019-08-27 | Alibaba Group Holding Ltd | Accelerating transaction deliveries in blockchain networks using acceleration nodes |
EP3571808A4 (en) | 2018-12-28 | 2020-03-04 | Alibaba Group Holding Limited | IMPROVE THE SPEED OF BLOCKCHAIN TRANSACTIONS USING GLOBAL ACCELERATION NODES |
JP6892514B2 (ja) | 2018-12-28 | 2021-06-23 | アドバンスド ニュー テクノロジーズ カンパニー リミテッド | トランザクションの再送信を使用してブロックチェーンネットワークにおけるトランザクション配信の加速化 |
US20200236031A1 (en) * | 2019-01-23 | 2020-07-23 | Hewlett Packard Enterprise Development Lp | Blockchain Routing Protocols |
EP3702951A1 (de) * | 2019-03-01 | 2020-09-02 | Siemens Aktiengesellschaft | Computerimplementiertes verfahren und blockchain-system zur erkennung eines angriffs auf ein computersystem bzw. computernetzwerk |
JP6731123B1 (ja) | 2019-03-18 | 2020-07-29 | アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited | 合意システムのダウンタイムの回復 |
AU2019203865B2 (en) | 2019-03-18 | 2021-01-21 | Advanced New Technologies Co., Ltd. | Consensus system downtime recovery |
US10938750B2 (en) | 2019-03-18 | 2021-03-02 | Advanced New Technologies Co., Ltd. | Consensus system downtime recovery |
CN110046896B (zh) | 2019-04-26 | 2022-03-01 | 腾讯科技(深圳)有限公司 | 一种区块处理方法和节点以及系统 |
CN110149373B (zh) * | 2019-04-28 | 2022-01-07 | 平安科技(深圳)有限公司 | 基于点对点网络的数据存储方法、装置、介质及服务器 |
US11416548B2 (en) * | 2019-05-02 | 2022-08-16 | International Business Machines Corporation | Index management for a database |
CN111915306B (zh) * | 2019-05-08 | 2023-12-19 | 华控清交信息科技(北京)有限公司 | 业务数据的验证方法和验证平台 |
US11949691B2 (en) * | 2019-05-24 | 2024-04-02 | International Business Machines Corporation | Malicious peer identification |
US11943237B2 (en) * | 2019-05-24 | 2024-03-26 | International Business Machines Corporation | Malicious peer identification for database block sequence |
SG11202004685RA (en) | 2019-06-05 | 2020-06-29 | Alibaba Group Holding Ltd | Consensus system and method |
WO2020255158A1 (en) * | 2019-06-20 | 2020-12-24 | INDIAN INSTITUTE OF TECHNOLOGY MADRAS (IIT Madras) | Colosseum, a scalable and byzantine-fault tolerant consensus mechanism for permissioned systems |
US10872367B1 (en) | 2019-07-02 | 2020-12-22 | Mythical, Inc. | Systems and methods for controlling permissions pertaining to sales activities by users of an online game |
US11062284B1 (en) | 2019-08-05 | 2021-07-13 | Mythical, Inc. | Systems and methods for facilitating transactions of virtual items between users of an online game |
US11695543B2 (en) * | 2019-08-22 | 2023-07-04 | Myndshft Technologies, Inc. | Blockchain network control system and methods |
CN110730204B (zh) | 2019-09-05 | 2022-09-02 | 创新先进技术有限公司 | 区块链网络中删除节点的方法和区块链系统 |
CN114401150B (zh) | 2019-09-05 | 2023-10-20 | 创新先进技术有限公司 | 区块链网络中加入节点的方法和区块链系统 |
WO2021050929A1 (en) * | 2019-09-11 | 2021-03-18 | Visa International Service Association | Blockchain sharding with adjustable quorums |
US11288735B1 (en) | 2019-10-31 | 2022-03-29 | Mythical, Inc. | Systems and methods for selling virtual items on multiple online sales platforms simultaneously, the virtual items being useable within an online game |
US11641313B2 (en) * | 2019-11-21 | 2023-05-02 | Vmware, Inc. | Asynchronous liveness boosting of state machine replication |
US10708042B1 (en) * | 2019-12-02 | 2020-07-07 | Yield Solutions Group, LLC | Computer-based systems including blockchains with differential permissioning and vaulting of tokens and token exchanges and methods of use thereof |
EP4070221A1 (en) | 2019-12-02 | 2022-10-12 | Schvey, Inc. D/B/A/ Axoni | Cross-partition calls in partitioned, tamper-evident data stores |
CN111131399B (zh) * | 2019-12-03 | 2021-11-26 | 北京海益同展信息科技有限公司 | 一种区块链中共识节点动态增加方法及装置 |
US11403281B2 (en) * | 2020-01-09 | 2022-08-02 | Eternal Paradise Limited | Parallel blockchain processing |
US11288645B1 (en) | 2020-01-13 | 2022-03-29 | Mythical, Inc. | Systems and methods for buying virtual items from multiple online sales platforms, the virtual items being useable within an online game |
US11379474B2 (en) * | 2020-02-19 | 2022-07-05 | International Business Machines Corporation | Computation of containment relationships |
US11295363B1 (en) | 2020-03-04 | 2022-04-05 | Mythical, Inc. | Systems and methods for facilitating purchase offer selection across multiple online sales platforms |
CN111324613B (zh) * | 2020-03-13 | 2021-03-26 | 华东师范大学 | 一种面向联盟链的分片内数据组织管理方法 |
US11853291B2 (en) * | 2020-07-06 | 2023-12-26 | International Business Machines Corporation | Privacy preserving architecture for permissioned blockchains |
US20220036346A1 (en) * | 2020-07-28 | 2022-02-03 | Sensoriant, Inc. | Systems and methods for re-organizing blockchains for efficient operations |
US11522705B2 (en) * | 2020-07-28 | 2022-12-06 | Safelishare, Inc. | Testing and other data communicated using trust models in decentralized and distributed systems |
US10861095B1 (en) | 2020-07-31 | 2020-12-08 | Mythical, Inc. | Systems and methods for an automated electronic networked central clearinghouse for clearing and reversing reversible exchanges of non-fungible digital assets |
US10850202B1 (en) | 2020-07-31 | 2020-12-01 | Mythical, Inc. | Systems and methods for distributions by an automated electronic networked central clearinghouse |
CN114077637B (zh) * | 2020-08-12 | 2022-12-27 | 北京航空航天大学 | 分片区块链实现方法 |
US11651096B2 (en) | 2020-08-24 | 2023-05-16 | Burstiq, Inc. | Systems and methods for accessing digital assets in a blockchain using global consent contracts |
US11514417B2 (en) * | 2020-10-19 | 2022-11-29 | Mythical, Inc. | Systems and methods for operating a bridge server to support multiple shards of a blockchain |
CN112202933B (zh) * | 2020-12-08 | 2021-03-05 | 腾讯科技(深圳)有限公司 | 区块链网络的信息处理方法、装置及节点设备 |
US11651110B2 (en) * | 2021-07-08 | 2023-05-16 | Dell Products, L.P. | Hardware device mutual authentication system and method for a baseboard management controller (BMC) |
CN113395357B (zh) * | 2021-08-16 | 2021-11-12 | 支付宝(杭州)信息技术有限公司 | 区块链系统的分片方法及装置 |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6671821B1 (en) | 1999-11-22 | 2003-12-30 | Massachusetts Institute Of Technology | Byzantine fault tolerance |
US7080123B2 (en) | 2001-09-20 | 2006-07-18 | Sun Microsystems, Inc. | System and method for preventing unnecessary message duplication in electronic mail |
US7953860B2 (en) * | 2003-08-14 | 2011-05-31 | Oracle International Corporation | Fast reorganization of connections in response to an event in a clustered computing system |
US8230253B2 (en) | 2008-07-21 | 2012-07-24 | International Business Machines Corporation | Byzantine fault tolerant dynamic quorum using a trusted platform module |
US9171044B2 (en) * | 2010-02-16 | 2015-10-27 | Oracle International Corporation | Method and system for parallelizing database requests |
US8849749B2 (en) * | 2010-05-14 | 2014-09-30 | Oracle International Corporation | Load balancing in parallel database systems using multi-reordering |
US9740762B2 (en) * | 2011-04-01 | 2017-08-22 | Mongodb, Inc. | System and method for optimizing data migration in a partitioned database |
US9805108B2 (en) * | 2010-12-23 | 2017-10-31 | Mongodb, Inc. | Large distributed database clustering systems and methods |
US8661449B2 (en) * | 2011-06-17 | 2014-02-25 | Microsoft Corporation | Transactional computation on clusters |
US8712879B2 (en) * | 2011-09-20 | 2014-04-29 | Oracle International Corporation | Data portal for concurrent assessment |
US10860563B2 (en) * | 2012-01-06 | 2020-12-08 | Microsoft Technology Licensing, Llc | Distributed database with modular blocks and associated log files |
US20140108421A1 (en) * | 2012-10-04 | 2014-04-17 | Codefutures Corporation | Partitioning database data in a sharded database |
KR101544356B1 (ko) * | 2012-10-31 | 2015-08-13 | 삼성에스디에스 주식회사 | 메타데이터 및 트랜잭션 발생량을 고려한 동적 샤딩 기능을 지원하는 분산 데이터베이스 관리 방법 및 그 구성 노드 |
US20150103383A1 (en) | 2013-10-10 | 2015-04-16 | Eric Morgan Dowling | Network scanner for global document creation, transmission and management |
US10303702B2 (en) * | 2014-02-07 | 2019-05-28 | Ignite Scalarc Solutions, Inc. | System and method for analysis and management of data distribution in a distributed database environment |
US9607071B2 (en) * | 2014-03-07 | 2017-03-28 | Adobe Systems Incorporated | Managing a distributed database across a plurality of clusters |
CN104951935B (zh) * | 2014-03-25 | 2021-03-09 | 北京小米支付技术有限公司 | 一种分账方法及装置 |
US11093468B1 (en) * | 2014-03-31 | 2021-08-17 | EMC IP Holding Company LLC | Advanced metadata management |
US9712606B2 (en) | 2014-05-21 | 2017-07-18 | Nasdaq Technology Ab | Efficient and reliable host distribution of totally ordered global state |
US9811546B1 (en) * | 2014-06-30 | 2017-11-07 | EMC IP Holding Company LLC | Storing data and metadata in respective virtual shards on sharded storage systems |
WO2016046820A1 (en) | 2014-09-23 | 2016-03-31 | Spondoolies Tech Ltd. | System and method for providing shared hash engines architecture for a bitcoin block chain |
CN104217362B (zh) * | 2014-09-29 | 2017-12-08 | 深圳市淘淘谷信息技术有限公司 | 基于互联网通讯的清分系统及线下交易、在线即时分账的方法 |
US20160098723A1 (en) * | 2014-10-01 | 2016-04-07 | The Filing Cabinet, LLC | System and method for block-chain verification of goods |
CN107251475B (zh) | 2014-12-24 | 2020-07-28 | 本质Id有限责任公司 | 来自物理不可克隆功能的加密密钥产品 |
US10185730B2 (en) * | 2014-12-31 | 2019-01-22 | Nexenta Systems, Inc. | Methods and systems for key-value-tuple-encoded storage |
US20160321751A1 (en) | 2015-04-28 | 2016-11-03 | Domus Tower, Inc. | Real-time settlement of securities trades over append-only ledgers |
US10515409B2 (en) * | 2016-03-23 | 2019-12-24 | Domus Tower, Inc. | Distributing work load of high-volume per second transactions recorded to append-only ledgers |
US11829349B2 (en) * | 2015-05-11 | 2023-11-28 | Oracle International Corporation | Direct-connect functionality in a distributed database grid |
US10291707B1 (en) * | 2015-05-18 | 2019-05-14 | Twitter, Inc. | Systems and methods for balancing storage resources in a distributed database |
US20160342977A1 (en) * | 2015-05-20 | 2016-11-24 | Vennd.io Pty Ltd | Device, method and system for virtual asset transactions |
US10009044B1 (en) * | 2015-06-17 | 2018-06-26 | Amazon Technologies, Inc. | Device type differentiation for redundancy coded data storage systems |
US10496669B2 (en) * | 2015-07-02 | 2019-12-03 | Mongodb, Inc. | System and method for augmenting consensus election in a distributed database |
US10402792B2 (en) * | 2015-08-13 | 2019-09-03 | The Toronto-Dominion Bank | Systems and method for tracking enterprise events using hybrid public-private blockchain ledgers |
WO2017069874A1 (en) | 2015-10-21 | 2017-04-27 | Manifold Technology, Inc. | Event synchronization systems and methods |
US20170132625A1 (en) * | 2015-11-05 | 2017-05-11 | Mastercard International Incorporated | Method and system for use of a blockchain in a transaction processing network |
US11941588B2 (en) * | 2015-11-06 | 2024-03-26 | Cable Television Laboratories, Inc. | Systems and methods for blockchain virtualization and scalability |
US20170140375A1 (en) * | 2015-11-15 | 2017-05-18 | Michael Kunstel | System and Method for Permissioned Distributed Block Chain |
CN105488665A (zh) * | 2015-11-25 | 2016-04-13 | 布比(北京)网络技术有限公司 | 一种去中心化的交易方法 |
US20170236120A1 (en) | 2016-02-11 | 2017-08-17 | Oracle International Corporation | Accountability and Trust in Distributed Ledger Systems |
US10796000B2 (en) | 2016-06-11 | 2020-10-06 | Intel Corporation | Blockchain system with nucleobase sequencing as proof of work |
CN106302720B (zh) * | 2016-08-13 | 2019-12-13 | 青岛莱月网络科技有限公司 | 一种用于区块链可生存存储系统及其方法 |
US10282558B2 (en) * | 2016-09-02 | 2019-05-07 | The Toronto-Dominion Bank | System and method for maintaining a segregated database in a multiple distributed ledger system |
CN106548330B (zh) * | 2016-10-27 | 2018-03-16 | 上海亿账通区块链科技有限公司 | 基于区块链的交易验证方法及系统 |
US10862959B2 (en) | 2016-11-28 | 2020-12-08 | Keir Finlow-Bates | Consensus system and method for adding data to a blockchain |
US10102265B1 (en) * | 2017-04-12 | 2018-10-16 | Vijay K. Madisetti | Method and system for tuning blockchain scalability for fast and low-cost payment and transaction processing |
US10740733B2 (en) | 2017-05-25 | 2020-08-11 | Oracle International Corporaton | Sharded permissioned distributed ledgers |
US20220284129A1 (en) * | 2021-03-07 | 2022-09-08 | Guardtime Sa | Verifiable Splitting of Single-Instance Data Using Sharded Blockchain |
US20230342774A1 (en) * | 2022-03-28 | 2023-10-26 | Guardtime Sa | Atomic Multi-Unit Transfer of Single-Instance Data Units in Sharded Blockchain |
-
2017
- 2017-05-25 US US15/605,689 patent/US10740733B2/en active Active
-
2018
- 2018-05-16 JP JP2019564902A patent/JP7098660B2/ja active Active
- 2018-05-16 CN CN201880043371.4A patent/CN110800005B/zh active Active
- 2018-05-16 WO PCT/US2018/032943 patent/WO2018217511A1/en active Application Filing
- 2018-05-16 EP EP18733014.7A patent/EP3631722A1/en active Pending
- 2018-05-16 CN CN202311066025.7A patent/CN117237099A/zh active Pending
-
2020
- 2020-08-07 US US16/988,039 patent/US11538003B2/en active Active
-
2022
- 2022-06-29 JP JP2022104925A patent/JP7532449B2/ja active Active
- 2022-11-23 US US18/058,616 patent/US11989704B2/en active Active
-
2024
- 2024-04-17 US US18/638,504 patent/US20240265358A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
CN110800005B (zh) | 2023-09-08 |
JP7098660B2 (ja) | 2022-07-11 |
US20240265358A1 (en) | 2024-08-08 |
JP2022141684A (ja) | 2022-09-29 |
JP2020521252A (ja) | 2020-07-16 |
US20230089896A1 (en) | 2023-03-23 |
EP3631722A1 (en) | 2020-04-08 |
WO2018217511A1 (en) | 2018-11-29 |
CN110800005A (zh) | 2020-02-14 |
US11538003B2 (en) | 2022-12-27 |
US11989704B2 (en) | 2024-05-21 |
US10740733B2 (en) | 2020-08-11 |
US20200410461A1 (en) | 2020-12-31 |
JP7532449B2 (ja) | 2024-08-13 |
US20180341930A1 (en) | 2018-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110800005B (zh) | 分片式、许可式、分布式分类账 | |
CN110915166B (zh) | 区块链 | |
US12074963B2 (en) | Blockchain for general computation | |
CN110380858B (zh) | 用于处理区块链的游戏共识协议的方法和系统 | |
US20230116348A1 (en) | Scalable, secure, efficient, and adaptable distributed digital ledger transaction network | |
US20220269672A1 (en) | Scalable, secure, efficient, and adaptable distributed digital ledger transaction network | |
US11461310B2 (en) | Distributed ledger technology | |
CN109815373B (zh) | 数据存储的控制方法、装置、服务器及可读存储介质 | |
CN112136291A (zh) | 区块链的高效验证 | |
US11616649B2 (en) | Computer-implemented systems and methods relating to a binary blockchain comprising a pair of coupled blockchains | |
KR20220044306A (ko) | 부분-정렬된 블록체인 | |
CN112840617A (zh) | 存储区块链资源的区块链通知板 | |
WO2023184881A1 (zh) | 提案共识执行方法、区块链系统、设备和存储介质 | |
CN112037055A (zh) | 交易处理方法、装置、电子设备及可读存储介质 | |
US20240364498A1 (en) | Blockchain for general computation | |
WO2023201032A1 (en) | Secure retrieval of off-network data by trusted network entities | |
CN116566622A (zh) | 用于联盟链的动态交易分片协议方法 | |
CN117795903A (zh) | 基于区块链的数据的认证修改 |
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 |