CN107017992B - 一种基于双链结构的高性能联盟区块链的设计方法 - Google Patents

一种基于双链结构的高性能联盟区块链的设计方法 Download PDF

Info

Publication number
CN107017992B
CN107017992B CN201710199314.2A CN201710199314A CN107017992B CN 107017992 B CN107017992 B CN 107017992B CN 201710199314 A CN201710199314 A CN 201710199314A CN 107017992 B CN107017992 B CN 107017992B
Authority
CN
China
Prior art keywords
chain
consensus
service
client
input
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.)
Active
Application number
CN201710199314.2A
Other languages
English (en)
Other versions
CN107017992A (zh
Inventor
谢晗剑
朱立
岳利鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Rivtower Technology Co Ltd
Original Assignee
Cryptape Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Cryptape Co ltd filed Critical Cryptape Co ltd
Priority to CN201710199314.2A priority Critical patent/CN107017992B/zh
Publication of CN107017992A publication Critical patent/CN107017992A/zh
Application granted granted Critical
Publication of CN107017992B publication Critical patent/CN107017992B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5069Address allocation for group communication, multicast communication or broadcast communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/321Cryptographic 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 a third party or a trusted authority

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明公开了一种基于双链结构的高性能联盟区块链,包含一个输入共识链和多个业务逻辑链。输入共识链节点个数为Ni,其中最多包含的恶意节点数为fi,根据BFT类算法的要求,Ni大于等于3fi+1;本发明相比于Fabric,不限制业务逻辑的开发平台、开发语言和基础服务,同时提出了“基于可观测状态的共识”的新选择,将状态指纹的产生效率提升到O(1)的复杂度。与此同时,传统“基于完整状态的共识”的选择仍然对设计者开放。

Description

一种基于双链结构的高性能联盟区块链的设计方法
技术领域
本发明涉及一种基于双链结构的高性能联盟区块链,在现有区块链技术的基础上,修改了联盟区块链中关于共识架构和扩展性方面的设计,形成了一种基于双链结构的高性能联盟区块链。
背景技术
区块链中存在两个独立层面的共识,其一可称为“输入共识”,其含义是各节点对指令的顺序及内容达成共识,类似传统数据通信的会话层,不牵涉业务操作;其二可称为“输出共识”,其含义是业务系统受输入的驱动,状态不断发生跃迁,同时产生一系列输出,此时各参与方对业务系统进入的状态及产生的输出达成共识。
这两层共识在设计上可以分离,但不同区块链在这里的设计差别很大,总的来说有三种方式:
第一种方式是只提供输入共识,此以Factom项目为例。Factom只对数据内容和顺序进行共识,把对数据的后续检验及处理交给其他应用程序完成。其缺点是:不支持应用程序结果的比对和校验,无法抗击应用逻辑执行时的拜占庭错误。
第二种方式是以紧耦合的方式提供输入共识和输出共识,典型案例如以太坊。以太坊的区块头中不仅包含交易根,也包含状态根,通过统一的机制串行地达成对交易和状态的共识,也就是串行完成输入共识和输出共识。其缺点是无关的业务逻辑也不能并行执行,且业务逻辑执行和输入共识执行的串行化会极大降低系统的总吞吐量。
第三种方式是以分离的方式提供输入共识和输出共识。比如在Fabric 1.0中,输入共识在Orderer之间达成,Orderer只看到数据,并不理解任何业务含义,输出共识则通过Endorsor和Committer及应用层CheckPoint机制另外实现。Fabric的输出共识机制所用的状态指纹生成方式乃是把全部智能合约(Chain Code)所访问的KV数据库组织成许多逻辑有序的桶,以各桶为叶节点组织成一棵Merkle树生成,利用哈希操作自底向上逐层计算出树根的值。其缺点是:计算无法个性化定制,即使只有一个桶的内容发生改变,重新计算Merkle根也会带来O(logN)的开销(N是作为叶节点的桶的个数)。另一方面,业务逻辑所需持久化操作若需进入输出共识就必须基于Fabric提供的API、Fabric选用的KV数据库进行,同时开发语言也只能局限于Fabric目前支持的两种语言(golang和java),很大程度上限制了现有代码的重复利用、限制了现有程序员技能的重复利用,限制了开发业务逻辑所能利用的数据库。
发明内容
本发明的目的在于针对现有技术的不足,提供一种基于双链结构的高性能联盟区块链。
本发明的目的是通过以下技术方案实现的:一种基于双链结构的高性能联盟区块链BC,包含一个输入共识链和多个业务逻辑链。输入共识链节点个数为Ni,其中最多包含的恶意节点数为fi,根据BFT类算法的要求,Ni大于等于3fi+1;所述业务逻辑链中最多包含的恶意节点个数为fb。
客户端提交请求,输入共识链的节点基于共识算法为BC的全部客户发送的全部请求提供拜占庭容错的全序组播服务;输入共识链的全部正确节点都将看到全局一致的客户请求流。每个输入共识链的正确节点将客户请求流仍按请求流内的交易顺序向其下游的“业务逻辑链”发布。
业务逻辑链中的正确节点nd与输入共识链的Ni–fi个不同节点建立连接,获取客户请求流,若业务逻辑链中的正确节点nd获取大于等于fi+1个的一致的输入,则读取该输入中的序列<i1,i2,i3,…>,驱动业务逻辑链内部状态发生改变,同时产生有序的输出流<o1,o2,o3,…>,每个nd都向联盟链BC的客户c发送此输出流<o1,o2,o3,…>中和c在业务上相关的应答信息。
BC的客户c比对来自业务逻辑链各个节点的应答信息,并在获得fb+1个一致应答信息后可确信应答信息无误,fb为业务逻辑链中最多包含的恶意节点个数。
进一步地,客户端提交请求时,采用“多业务逻辑链和主题”的设计,为每个请求附带一个主题标签。
进一步地,客户端在对比应答时,采用“基于可观测状态的共识”的方法进行比对。
本发明的有益效果在于:本发明相比于Fabric,不限制业务逻辑的开发平台、开发语言和基础服务,同时提出了“基于可观测状态的共识”的新选择,将状态指纹的产生效率提升到O(1)的复杂度。与此同时,传统“基于完整状态的共识”的选择仍然对设计者开放。
附图说明
图1为该方法的整体架构图。
具体实施方式
一种基于双链结构的高性能联盟区块链BC,包含一个输入共识链和多个业务逻辑链。输入共识链节点个数为Ni,其中最多包含的恶意节点数为fi,根据BFT类算法的要求,Ni大于等于3fi+1;所述业务逻辑链中最多包含的恶意节点个数为fb。
客户端提交请求,输入共识链的节点基于共识算法为BC的全部客户发送的全部请求提供拜占庭容错的全序组播服务,例如,可以采用PBFT共识算法实现。输入共识链中每个正确节点都遵照协议规定的pre-prepare、prepare、commit三阶段算法运行,唯一的变化是:commit成功后只执行空操作,也即完全不执行业务相关逻辑,且不向client发送reply消息。
客户端提交请求m时,采用“多业务逻辑链和主题”的设计,可以为每个m附带一个主题标签,方法如下:
(a)可以采用的最简单的主题标签设计是:每个m只能赋予1个主题,想要把一个消息发送给多个主题,可以打上不同topic标签,提交多次。
(b)可以采用的复杂标签设计则是:可以附带许多个主题标签。
备注:同一BC的不同业务逻辑链对主题的订阅是独立的。订阅的本质是从单一的输入共识链输出流中根据m的主题标签过滤出自己关心的部分进行处理。如果需要有多个不同的输入共识链输出流,将其分在不同分区中就可以了,本专利不阐述这部分设计。
共识算法执行后,输入共识链的全部正确节点都将看到全局一致的客户请求流。一致性体现在:在正确节点看到的客户请求流中,下标seq相同的消息,其内容一定一致。
每个输入共识链的正确节点将客户请求流仍按请求流内的交易顺序向其下游的“业务逻辑链”发布。
业务逻辑链”中的正确节点nd与输入共识链的Ni–fi个不同节点建立连接,进行客户请求流获取,若“业务逻辑链”中的正确节点nd读到大于等于fi+1个的一致的输入m,则可以确定出现在全局输入流的seq位置上的消息确实是m(因为Ni≥3fi+1,故nd建立有至少Ni-fi≥2fi+1个这样的连接,其中至少fi+1个连接到业务逻辑链中的正确节点。此种方式下,业务逻辑链和一般的拜占庭容错集群存在少许不同,因为其正确节点的输入流已可确保一致,所以确保正确的条件可以放宽到Nb≥2fb+1),nd就可以据此执行业务逻辑。
当Ni=Nb时,还可以采用:在业务逻辑链节点和输入共识链节点之间建立一一对应关系,进行发布。由于此时两层链之间的耦合关系被强化,业务逻辑层看到的输入也不能确保正确,所以就应该把对应的一对业务逻辑链节点/输出共识链节点看作一个整体,fi=fb,且必须Nb≥3fb+1。
业务逻辑链的每个正确节点nd读取输入共识链发布的客户请求流中的序列<i1,i2,i3,…>,驱动业务逻辑链内部状态发生改变,同时产生有序的输出流<o1,o2,o3,…>,每个nd都向联盟链BC的客户c发送此输出流<o1,o2,o3,…>中和c在业务上相关的应答信息。
BC的客户c比对来自业务逻辑链各个节点的应答信息,并在获得fb+1个一致应答信息后可确信应答信息无误,fb为业务逻辑链中最多包含的恶意节点个数。
客户端在对比应答时,采用“基于可观测状态的共识”的设计,根据应答中包含的信息量不同,实现这种比对所需的开销和能确保的内容也有所不同:
(a)可以采用的最简单的O(1)的做法是:每个nd都向联盟链BC的客户c发送的输出流<o1,o2,o3,…>不包含任何状态指纹,客户c满足于看到的应答顺序和内容经过共识确保正确。
(b)可以采用的另一种O(1)的做法是:oi中纳入一个preHash字段,o1.preHash=0,oi.preHash=hash(oi-1),在输出序列上构成一个类区块链结构。
备注:有些区块链设计中,在应答之中会嵌入业务逻辑节点执行后系统完整状态的指纹(如fabric中的状态根)。这种指纹将系统内部状态作为白盒进行汇总,哪怕对最终客户而言某些信息与其无关也仍然要汇总。这种设计在本专利中仍然可以使用,但缺点前面也已指出。本专利提出“基于可观测状态的共识”这一新思路,也就是站在客户角度将系统看作黑盒。如果系统对客户展现出的可观测状态(通常是输出,查询的返回也是一种输出)确保是经过共识确保一致的,而客户又确实以此为足,则此时状态指纹的创建可以采用其他方式。

Claims (1)

1.一种基于双链结构的高性能联盟区块链的设计方法,其特征在于,所述高性能联盟区块链包含一个输入共识链和多个业务逻辑链;输入共识链节点个数为Ni,其中最多包含的恶意节点数为fi,根据BFT类算法的要求,Ni大于等于3fi+1;所述业务逻辑链中最多包含的恶意节点个数为fb;
客户端提交请求,输入共识链的节点基于共识算法为高性能联盟区块链的全部客户发送的全部请求提供拜占庭容错的全序组播服务;输入共识链的全部正确节点都将看到全局一致的客户请求流;每个输入共识链的正确节点将客户请求流仍按请求流内的交易顺序向其下游的业务逻辑链发布;
业务逻辑链中的正确节点与输入共识链的Ni – fi个不同节点建立连接,获取客户请求流,若业务逻辑链中的正确节点获取大于等于fi+1个的一致的输入,则读取该输入中的序列<i1, i2, i3,…>,驱动业务逻辑链内部状态发生改变,同时产生有序的输出流<o1,o2, o3, …>,每个业务逻辑链中的正确节点都向联盟区块链的客户发送此输出流<o1,o2, o3,…>中和客户在业务上相关的应答信息;
高性能联盟区块链的客户比对来自业务逻辑链各个节点的应答信息,并在获得fb+1个一致应答信息后可确信应答信息无误,fb为业务逻辑链中最多包含的恶意节点个数。
CN201710199314.2A 2017-03-29 2017-03-29 一种基于双链结构的高性能联盟区块链的设计方法 Active CN107017992B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710199314.2A CN107017992B (zh) 2017-03-29 2017-03-29 一种基于双链结构的高性能联盟区块链的设计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710199314.2A CN107017992B (zh) 2017-03-29 2017-03-29 一种基于双链结构的高性能联盟区块链的设计方法

Publications (2)

Publication Number Publication Date
CN107017992A CN107017992A (zh) 2017-08-04
CN107017992B true CN107017992B (zh) 2020-02-07

Family

ID=59445166

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710199314.2A Active CN107017992B (zh) 2017-03-29 2017-03-29 一种基于双链结构的高性能联盟区块链的设计方法

Country Status (1)

Country Link
CN (1) CN107017992B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107688945B (zh) * 2017-08-11 2020-04-10 杭州溪塔科技有限公司 一种基于延迟状态共识的高效许可链的设计方法
CN109218391B (zh) * 2018-07-16 2021-07-13 哈尔滨工程大学 一种基于区块链的分布式存储系统审计与去中心化的方法
CN109739827A (zh) * 2018-12-19 2019-05-10 北京第一视频科学技术研究院有限公司 一种基于双链架构的区块链存储系统
CN110110269B (zh) * 2019-04-09 2023-04-18 深圳前海微众银行股份有限公司 一种基于区块链的事件订阅方法及装置
CN110083629B (zh) * 2019-04-22 2024-05-07 深圳前海微众银行股份有限公司 一种基于区块链的事件订阅的方法及装置
CN110222532A (zh) * 2019-06-06 2019-09-10 杭州趣链科技有限公司 一种基于命名空间实现联盟链隐私保护的分区共识方法
CN110599139B (zh) * 2019-08-19 2022-09-13 杭州秘猿科技有限公司 一种区块链共识算法中的出块方法和装置
CN112039926B (zh) * 2020-11-04 2021-03-26 南京金宁汇科技有限公司 一种区块链的双层链式架构实现方法
CN114066457A (zh) * 2022-01-17 2022-02-18 常州唯实智能物联创新中心有限公司 面向安全生产监管的区块链机制与共识算法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106506203A (zh) * 2016-10-25 2017-03-15 杭州云象网络技术有限公司 一种应用于区块链的节点监控系统
CN106529951A (zh) * 2016-12-30 2017-03-22 杭州云象网络技术有限公司 一种联盟链网络下采用异步方式的节点共识验证方法
CN106528775A (zh) * 2016-10-28 2017-03-22 山东明和软件有限公司 支持逻辑多链的私有区块链运行支撑系统及其工作方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170017936A1 (en) * 2015-07-14 2017-01-19 Fmr Llc Point-to-Point Transaction Guidance Apparatuses, Methods and Systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106506203A (zh) * 2016-10-25 2017-03-15 杭州云象网络技术有限公司 一种应用于区块链的节点监控系统
CN106528775A (zh) * 2016-10-28 2017-03-22 山东明和软件有限公司 支持逻辑多链的私有区块链运行支撑系统及其工作方法
CN106529951A (zh) * 2016-12-30 2017-03-22 杭州云象网络技术有限公司 一种联盟链网络下采用异步方式的节点共识验证方法

Also Published As

Publication number Publication date
CN107017992A (zh) 2017-08-04

Similar Documents

Publication Publication Date Title
CN107017992B (zh) 一种基于双链结构的高性能联盟区块链的设计方法
Boyle et al. Is there an oblivious RAM lower bound?
Löbel Optimal vehicle scheduling in public transit
CN112118321B (zh) 一种工业区块链的实用拜占庭容错共识机制优化系统
US20070245298A1 (en) Apparatus and data structure for automatic workflow composition
Fiterău-Broştean et al. Learning-based testing the sliding window behavior of TCP implementations
Ellis et al. Computer science and office information systems
Bagchi et al. Vision paper: Grand challenges in resilience: Autonomous system resilience through design and runtime measures
US20230109545A1 (en) System and method for an artificial intelligence data analytics platform for cryptographic certification management
CN115037561B (zh) 一种网络安全检测方法和系统
Hellings et al. Cerberus: Minimalistic multi-shard byzantine-resilient transaction processing
Baron NoSQL key-value DBs riak and redis
CN110781676B (zh) 一种文本处理方法、装置、系统、电子设备及存储介质
Sanchez et al. Bigraphical modelling of architectural patterns
Gorla A taxonomy of process calculi for distribution and mobility
Matsui et al. Leximin asymmetric multiple objective distributed constraint optimization problem
US20100161671A1 (en) System and method for generating hierarchical categories from collection of related terms
Kukharenko et al. Verification of hotstuff bft consensus protocol with TLA+/TLC in an industrial setting
CN110399485A (zh) 基于词向量和机器学习的数据溯源方法和系统
Lei et al. Improved Method of Blockchain Cross‐Chain Consensus Algorithm Based on Weighted PBFT
Min et al. Blockchain-native mechanism supporting the circulation of complex physical assets
Popovic et al. Formal verification of distributed transaction management in a SOA based control system
Gudaparthi et al. Prompting creative requirements via traceable and adversarial examples in deep learning
Kalfoglou et al. The information flow approach to ontology-based semantic alignment
CN104133831B (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200323

Address after: 310012 no.1001, 10 / F, block a, Huaxing Times Square, No.478, Wensan Road, Xihu District, Hangzhou City, Zhejiang Province

Patentee after: Hangzhou Xita Technology Co.,Ltd.

Address before: Seven 310030 Hangzhou Road, Zhejiang province Xihu District three Town Xiyuan No. 3 Building 3 Room 203

Patentee before: CRYPTAPE Co.,Ltd.