区块链应用

超块链(Hyperchain)拥有先进专利算法的并行区块链

Hyperchain 来源:区块网 2019-04-08 09:11

超块链是一种全新的区块链技术,以高性能和高度数据兼容为设计目标,主要解决块效率低下、算力耗费严重和设计以交易导向为主而引发的应用局限性。区块链作为下一代互联网基础设施的候选技术,仍需要解决诸多不足,超块链以此为目标,提出分布式系统下的CAP分时一致性方法,并以此理论基础设计出全新的Buddy共识算法,为区块链技术提供了三种全新的特性:可并行出块,可处理离散数据,链上可承载虚拟链。其他次要新特性包括如内建的跨链操作、自定义共识等可被应用层直接调用,这些都极大的拓宽了区块链的适用范围。超块链同样支持交易事务、智能合约等现有区块链的全部缺省特性,而且更加高效。
超块链设计目标
超块链将成为一代高性能、对上层应用友好、开放、敏捷和可定制的区块链技术,以期足以在更广泛领域内承载各类互联网应用。在基本架构的层面上解决现有区块链性能差、局限于交易导向、数据类型受限、去中心化不佳等致命问题。
超块链的具体技术目标是:
· 数据结构及算法充分并行化以提高效能
· 节点对等,完全去中心化
· 对离散(非一致性、非结构化)数据有良好的支持
· 不依赖特定的基础币,不依赖特定的账本
· 内建对智能合约、跨链操作等特性的支持
· 开放架构,支持应用层自定义共识和自定义链上数据
· 支持链上虚拟化
基本原理
超块链以更高并行性为设计目标,而现有区块链在数据结构上是完全串行的,这一硬约束是区块链的关键瓶颈,超块链首先在链结构上作了大幅的改进,提出全新的并行的结构(详见数据结构一节),这一改变可以充分利用分布式网络天然的并行性优势,大幅提高出块效率。
并行的数据结构并不能直接带来效率,现有共识算法普遍基于交易账本,并不支持并行。超块链设计了全新的具有并行特性的共识算法,该算法在Paxos算法理论(一种分布式系统容错算法)的基础上做了大幅改进(详见共识算法一节),采用对等互证的原理,将局部共识有条件扩展为全局共识。
并行链结构存在着一定的回溯不确定问题(回溯指针不唯一),我们通过链结构中的周期性“超块(Hyper Block)”来解决回溯不确定性问题,保证链结构和传统串行链具有同样严谨的一致性。
超块链对所支持的数据结构没有硬性限制,是一种高度开放的区块链技术。
超块链采用与现有区块链相同的方式来支持智能合约等应用特性。
超块链满足区块链技术的去中心化、对等共识、前向依赖三大特征。
超块链完全不同于现有交易导向的串行区块链,而是一个适用于更多应用场景的并行链。
1. 数据结构

超块链的链块分为局部块和超块两种,超块链的数据块结构与传统区块链的链结构相仿,无论是局部块或是超块都是一种前向依赖的链式结构,拓扑结构上均为由块头和块体构成。

整个局部块的整体组装过程如下算法所示:

超块是超块链为了解决并行性和回溯一致性的矛盾而设置的周期性数据结构,这个结构也是一个前向依赖的链式结构,同时记录了局部块的相关信息。

在周期性的超块之间,局部块并行出块,与超块一起形成以下的结构。

整个超块的整体组装过程如下算法所示:

构成超块链并行结构的局部块和超块,各自依据前序哈希值进行锚定,并且不同子链各自可以采用Layer2共识进行进一步的加强难度累积,从而实现整个数据结构的数据一致性的高可靠。
2. 共识算法
超块链的共识算法主要解决在并行条件下的数据共识问题,同时还要支持非一致性数据,因此除POW以外的现有区块链共识算法(基于特定一致性数据的共识)并不适用,因此我们提出了一种基于对等互证原理的全新算法,这一算法借鉴了Paxos算法的实施思想,但作了大幅改变,避免了该算法可能产生的隐式中心化,实现了超块链完全去中心化的并行共识算法——Buddy共识算法。
在Paxos算法中,存在Proposer、Acceptor、Client、Learner这几种角色,该算法是为了实现分布式一致性和容错而设计,节点关系并不是对等场景。在超块链网络的完全对等场景中,我们将角色合并处理为Proposer、Acceptor两个,即每个Proposer同时也是Client,每个Acceptor兼具Learner。这一合并的基本立足点为:每一个节点既是Server也是Client,每个Client获得服务的条件是为对等方提供Server服务。我们将这种对等关系称为Buddy。
利用状态机理论形式化描述如下图所示,如上文所述,网络参与节点存在着“建议者”和“Buddy伙伴”两个状态,其中如前文所述的Acceptor也即为“Buddy伙伴”,有4种不同的响应。任何网络参与节点在“建议者”状态下,上链不成功则依然是“建议者”,发出邀约获得通过则转变为“Buddy伙伴”状态,在此状态下通过其他邀约则继续保持“Buddy伙伴”状态,发生通讯异常则自动退回“建议者”状态。

图四 Buddy共识算法节点状态机图

Buddy共识算法将共识分为两个阶段:局部共识和全局共识。局部共识由有数据上链需求的一对节点为起始,通过广播各自的共识协议而发现对方并提出共识请求,此时节点角色为Proposer,当收到任意Acceptor的回复后,Proposer会依据预定义的共识脚本来决定选择哪一个Acceptor作为Buddy,并按照该共识脚本组装共识数据。这一共识数据被视作初始局部链由两个节点共同拥有。接下来,这两个节点作为新的Proposer,重复前一过程,使局部链以2n的速度增长,直至共识脚本所约定的长度。该过程在系统中是并行进行的,因此系统中将同时存在多条局部链。

全局共识的执行是周期性的,全局共识过程将并行存在的多条局部链的相关信息固化到超块中,形成超块链特有的并行链结构。全局共识由局部链的代表节点来执行,该代表节点由局部链的参与节点按照局部链的共识脚本来产生,因此会有多种产生方法,默认由局部链的尾节点执行。代表节点采用与局部链类似的方式,按照超块定义的共识脚本,计算超块,并在节点间达成共识,全局共识过程至此完成,链上数据达成一致性的状态。新一轮的共识同时开始,新一轮的共识将以最新超块的数字指纹作为共识依据。

需要强调的是,全局共识和局部共识也是并行进行的,全局共识除了具有周期性和序列性的特点,其本身并不阻塞局部共识的进行。
4. 技术特点和优势比较
超块链在基本架构设计上摒弃了串行化数据结构的硬性限制,使用并行方法处理区块链的共识问题,以此解决了现有区块链技术的几大瓶颈问题,包括串行化导致的性能问题、共识算法的扩展受限于链上数据问题、数据类型有限且难于扩展、算力消耗问题、伪去中心化问题等。
超块链没有采用交易导向的设计,而是面向更广泛的互联网行业数据处理设计了分层处理机制,链块层的共识和应用层行为互不阻塞。超块链不需要发行基础币,不依赖特定的账本,不解释链块用户区中的数据,链块用户区的数据交由应用层处理,从而对上层提供了更大的数据灵活性,并且允许应用层自行定义基于用户数据的共识脚本。这样一来,链上数据不再局限于特定的账本结构和基础币交易记录,链上数据的地位也更加平等,允许多币与多账本共存。当上层应用使用超块链技术发币或产生账本的时候,仍然可以保持与其它区块链数字币或账本相当的可靠性。当采用恰当的应用层共识脚本时,甚至可以在超块链上虚拟运行另外一种传统的区块链。
超块链是完全去中心化的,其去中心化特性是由共识算法决定的。相比而言,POW是一种完美的去中心化手段,但其所付出的算力成本是高昂的;POS类算法解决了算力问题,但实际上赋予了部分节点过多的权力,对等性受到一定的影响;BFT类算法简洁高效,但严重破坏了区块链的去中心化特性,沦为多中心化甚至传统中心化系统。BFT类算法还有另外一个问题就是其设计是用来解决“容错”场景下“一致性”的问题,这和区块链中的“共识”一词的实际含义是有很大区别的。我们认为,预设立场的“强一致性”是中心化的容错概念,而不是去中心化场景下的共识概念,与“去中心化”和“对等”的概念是背道而驰的。超块链所设计的Buddy算法思想与Paxos算法类似,但我们作了大幅改进以避免出现Paxos中预设立场的“强一致性”,保证运算节点的完全对等性。
超块链是遵循并行原则设计的区块链,同时又利用不同分层处理共识来实现了共识算法的可扩展性,因此可以在局部链上同时运行多种不同的共识,支持多种数字货币和账本,这一特性为跨链操作提供了天然的便利性,跨链操作本身也可以被序列化和固化下来,提供额外的信用证明。超块链内置了跨链操作引擎供应用层直接调用,并且可以随时扩展这些操作以适应更多的区块链互操作。

技术方案
1. 整体架构

2 对等层
使用P2P技术构建的去中心化的对等网络,保障节点在网络层的对等操作。
3. 数据层
基于对等层之上建立的虚拟链空间,链空间由全体节点共同维护。节点不必维护全部链数据,只需保留对自身业务有意义的部分数据。通过全网所有节点来实现链数据的冗余存储。
4 封装与处理层
该层主要提供节点间互操作支持、本地数据处理和封装、认证信息处理等功能。
5 共识层
超块链出块操作的驱动层,任意节点有数据上链请求时,通过该层参与局部共识和全局共识,保证节点在共识中独立对等的处理数据,且能实现结果的一致性。
6 应用层
包括链上扩展、API接口、节点信息及远程管理等
运行与部署
1 初始化和节点建立
任意节点运行超块链节点软件后,通过广播发现或连接Bootstrap Server尝试连接其他超块链节点,并在收到的响应包中查询符合创始块要素的节点,进一步向这些节点请求链空间信息,通过对比不同节点返回的链空间信息来确定合法的链数据和对等节点。当节点通过以上步骤初步完成本地链空间缓存的初始化后,节点初始化即完成,节点可随时开始参与超块链的共识出块。
2 共识与防作弊
超块链参与共识是基于自身数据上链的需求,该行为可以是节点自身需求,也可以是某种代理行为,超块链的链块层共识过程并不解释用户数据,用户数据作为Payload封装于待共识的数据结构中,该数据结构作为本地数据块,还包含共识脚本和公钥等认证信息,这一本地数据块需要获得至少另外一个(群)对等节点的认可,方能加入局部链的共识过程中,该认可过程会在对等检点之间核查共识脚本和认证信息,共识脚本执行成功后对等节点即成为Buddy,开始参与局部链的共识过程。局部链每次增长都执行已达成局部共识的共识脚本,该脚本会按照定义的规则核查用户数据,以保证数据满足共识要求,这一核查是每节点独立实施的,不受任何其他节点左右,只有超过N/2+1的节点(N为参与局部链共识的节点总数)同意局部共识结果,局部共识方可被接受。局部链按照这样的规则以2n的节奏扩展共识规模,以较高的效率完成对恶意节点和无效数据的甄别,保证局部链的可靠性。共识脚本中包含超块链缺省脚本和用户自定义脚本,因此用户可以非常灵活的选择在共识过程中如何对数据合法性进行验证,包括POW/POS/BFT等附加验证信息,在计算难度或授权方面进一步加强数据合法性的保证。在完全不附加其他验证信息的缺省条件下,超块链仍可以达到“51%恶意攻击”防御效能。
3 提交与查询
用户数据通过参与超块链共识过程而提交上链,该数据可以为账本、交易记录、权证指纹等任何数据,这些数据在共识过程中被共识脚本所核查并固化,由参与节点分布式存储,在全网内形成虚拟的链空间,承载全部链数据。该链数据可以由任意节点请求和查询,也可以通过超块链浏览器检索和查询。
总结
超块链在技术架构上作了全新的设计,为区块链提供了并行能力和灵活的数据类型支持,解决了区块链技术的性能瓶颈和交易导向的设计局限。超块链在完全满足去中心化、对等和数据结构前向依赖的三种基本特性之外,提供了更高的性能和更开放的架构,链上数据和共识算法均支持用户自定义和扩展,更有令人兴奋的新特性如默认内置了跨链操作和链虚拟化等功能。这些特性使超块链以更高的性能、更强的可配置性支持更广泛的应用场景,而且完全兼容现有区块链(如数字货币和统一账本)应用。
超块链对区块链技术做了较新的拓展性尝试,尚存一些不足有待改进。超块链共识算法为了降低算力消耗和保持良好的去中心化特性,付出了较多的通讯成本,这在网络条件不佳的时候会降低系统性能。超块链的数据开放性使垃圾信息更容易绕过审查而占据宝贵的链存储空间。我们认为,随着网络连接质量和存储技术的进一步发展,这些问题不是致命的,并且我们也将在后续的开发中对这些问题进行持续的改进。

网址:https://www.hyperchain.net/

文章来源:http://www.qukuaiwang.com.cn/news/16169.html
原文作者:Hyperchain
特别申明:区块链行业ICO项目鱼龙混杂,投资风险极高;各种数字货币真假难辨,需用户谨慎投资。blockvalue.com只负责分享信息,不构成任何投资建议,用户一切投资行为与本站无关。

1.价值区块链(blockvalue.com)遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.价值区块链的原创文章,请转载时务必注明文章作者和"来源:价值区块链(blockvalue.com)",不尊重原创的行为本站或将追究责任;3.作者投稿可能会经价值区块链编辑修改或补充。