技术角度分析享云链白皮书:高性能、高隐私的商用公链

7月16日,备受市场关注的“享云链”发布白皮书,针对现有区块链技术中的性能、隐私保护、链下到链上的信任等问题,提出了诸多创新且行之有效的方案。从白皮书中可以明显感受到,享云链充分向数百万链克用户以及整个行业展示了技术硬实力,也体现出了打造全球第一商用公链的宏伟蓝图。

下文将对享云链白皮书中体现的技术亮点进行逐一解读:

目标定位分析

白皮书首先将享云链定位为“为共享计算、去中心化的组织、商业和金融的广泛场景提供一个高性能的、安全的区块链基础设施 “,基于这个定位,其提出其要实现的目标包括:

1)高性能:低时延、高吞吐。共识部分提到交易能在1-3s内确认,采用BFT共识算法, 所以单链性能应该与EOS相当。另外,共识部分还提到可以可以按需扩链或用Layer 2方案扩展性能。

2)隐私保护:使用源自门罗币(Monero)的环签名和Bulletproofs密码学算法保障交易双方能够隐藏账户地址和交易金额,保证交易数据无关联性和不可追溯性。

3)多种资产的交互和流转:就是支持多种数字资产管理人账户模型,并且同时支持Account和UTXO两种账户模型。

4)链下到链上的信任传递:一个信用评分的机制,这是涉及社区治理的机制。

架构分析

享云链核心架构包括钱包应用、Dapps SDK、RPC接口层、智能合约、隐私保护、共识算法、P2P网络、账户和资产管理、数据存储等模块:

其中值得注意的是一种新的共识算法EBFT,根据白皮书描述这是一种定期自动竞选验证人节点的拜占庭共识算法,从 PBFT改进而来;智能合约支持WASM和EVM两种虚拟机类型,也就是说Dapps开发者可以自行选择使用C/C++还是Solidity来开发智能合约;隐私保护(Confidential Transactions)使用环签名和Bulletproofs密码学算法来隐藏交易的账户地址和交易金额;账户模型同时支持Account和UTXO两种账户模型,并且支持管理多种资产。

可以看得出来,这个技术架构是与其目标定位相关的,例如EBFT实现高性能目标,Confidential Transactions实现隐私保护目标,Account/UTXO实现多资产管理的目标。

共识算法分析

享云链的共识算法称为EBFT(Electional BFT)算法,相对于其它公链常见PoW或PoS共识机制,这个是强一致(无软分叉)、快速确认(无需延迟几个区块确认)且高吞吐的共识算法。近来以高性能为目标的公链都用BFT类算法,例如EOS的aBFT、最近很火的libra的libraBFT等。这里EBFT的E(Electional)表示验证人节点是通过定期的竞选上任以实现节点更换的,并且验证人节点在任期的表现会影响其下次竞选的结果–看起来很像现实中的民主选举。

首先这个算法涉及的几个概念需要解析一下:

拜占庭容错共识算法:是指能容纳小部分(<1/3)节点崩溃或作恶(篡改数据、双重投票等)的共识算法。最有名的拜占庭容错共识算法是PBFT,而中心化分布式系统中常见的paxos和raft等算法是只能容纳节点崩溃错误的,被称为CFT算法(Crash Fault Tolerance)。

验证人节点:指参与一个区块的提议和投票的节点,通常为22个节点。

备用(验证人)节点:指有资格竞选作为验证人的节点,备用节点的数量没有限制。

节点池:所有验证人节点和备用节点的集合。

竞选算法:是指从节点池中选择验证人节点的算法。

提议:是指负责提议的节点将内存池中的交易添加到新创建的区块里面,然后将这个区块广播给其它验证人节点。

投票:验证人节点收到新提议的区块,则验证区块高度、hash值及区块中包含的交易的合法性,然后根据验证结果可以投赞同票或空票。一个区块要进行两轮投票,并且都收到>2/3的投票数才算确认通过。

这个共识算法的创新之处是在PBFT的基础上引入竞选算法,以支持更多的节点加入系统,所有节点都有机会出块获得奖励,并且通过优胜劣汰的竞选机制保证系统的稳定性和性能。

白皮书原文

“竞选算法按不同的权重对节点质量、押金数额和随机因素这3个条件进行综合评估,以保证具有以下特性:

1)屏蔽掉作恶节点;降低不稳定的节点(例如经常超时不出块的节点)被选中的概率。

2)诚实节点中,押金数额越高的节点被选中作为验证人节点的概率越大。

3)随机因素保证押金数额较低的诚实节点也能以较低的概率被选中作为验证人节点。

4)每次验证人变更需要超过2/3节点的共识,记录到区块中。

验证人节点选举出来后,在随后的在任期间(1小时内),这些验证人节点之间再通过EBFT共识算法来对区块提议进行确认。”

这个规则很好理解,就是你若想提升自己出块的概率,获得更多奖励,你只要:不作恶、保持机器稳定运行和网络通畅、以及交更多的押金!

当然,算法为了保证公平性,避免“富人统治”,你交的押金数额较低也是有机会出块的,因为竞选算法中加入了“随机因素”,只是概率较低。

隐私保护和多资产账户模型分析

隐私保护不是新技术,zcash、门罗币都是专注隐私保护的公链,但这些公链性能较低,而且不支持图灵完备的智能合约,应用场景受限。享云链加入隐私保护功能,企图解决这些问题。关于应用场景问题,隐私保护和多资产账户模型要结合起来看,才能明白其中的强大之处。

关于隐私保护:

“享云链的隐私保护方案的初步版本基于环签名方案和Bulletproofs技术来实现交易双方的地址隐藏和金额隐藏,并从共识算法、多链架构、并行性、硬件加速等方面改进交易验证性能,提升用户体验。并且考虑到公开交易也存在大量的应用场景,享云链的隐私保护特性对用户来说是个可选项,用户发起交易时可自行决定是否需要进行隐私保护。”

关于多资产账户模型:

“享云链的多资产账户模型赋予普通token资产以第一类资产的能力,让token资产能像原生数字货币那样自由流转,并能与任意的智能合约进行更复杂的交互操作;用户的钱包能显示两个账户模型下的所有资产余额,并且能通过发送交易将资产在两种账户模型之间互相转移。

得益于对两类账户和多资产模型的支持,享云链能提供完整的隐私保护方案和去中心化交易所。”

开发者能够通过智能合约发行Token资产,或通过跨链协议从其他现有公链转移数字货币到享云链上,还可以将链下的物理商品或资产Token化到享云链上,然后在享云链的去中心化交易所中进行交易。

也就是说,你的比特币、以太币等等所有的数字货币,都可以跨链转到享云链,然后享受到高性能的隐私保护和去中心化交易所等一条龙服务。这些跨链转入的加密货币(甚至是你用智能合约生成的token),都与其原生的链克具有同样的地位–直接在底层的账户模型中维护管理、执行公开或隐私的交易,而不是只能限制在智能合约内部。这就是隐私保护和多资产账户模型结合起来的强大之处。

智能合约多虚拟机分析

享云链同时支持WASM和EVM两种虚拟机,用户可以用C/C++、solidity等常用编程语言开发智能合约,这也是其它公链所没有的,这样开发者就可以自由选用自己擅长的语言进行智能合约开发。

EVM是以太坊的虚拟机,以太坊的solidity是首个支持图灵完备的智能合约编程语言,大家应该比较熟悉了,不再多说。

WASM(Web Assembly)是谷歌、苹果、微软三大竞争公司同时支持的一种中间代码(字节码), 是浏览器都支持的一种代码。WASM使用clang前端和llvm后端,llvm后端用于编译期优化、链接优化、在线编译优化、代码生成。有了llvm,只要实现一个前端,所有其它语言(java、golang、rust等)都可以用llvm生成wasm字节码,非常强大和方便。

应用场景分析

享云链的链克最初用于玩客云的共享计算的激励,预计5G时代还会有更多产品加入链克构建的共享计算生态。

另外,白皮书还提到中心化交易所的计划。有了高性能的共识算法、隐私保护、多资产账户模型及强大的智能合约虚拟机,结合成熟的跨链技术,白皮书提到的做去中心化交易所是很自然的逻辑,也是非常有优势的。目前已经有Cosmos这样的公链专门在做去中心化交易所,受到大量的关注,被寄予很高的期望。从技术上看,享云链底层支持隐私保护和多资产账户模型,功能更完整,具有非常大的后发优势。

除了共享计算和去中心化交易所,白皮书还列举了在去中心化组织、商业、金融和公益方面的应用的愿景。值得注意的是,很多场景围绕一个称为信用评分的机制展开。信用评分机制在其它公链上还没出现过,看起来类似支付宝里的芝麻信用,用于构建交易双方的信任关系,在商业、金融和保险方面的应用广泛。

在我们以前对区块链的认识中,认为区块链上去中心化的、匿名的系统,跟信用体系是扯不上关系的。但这也极大的限制了区块链的应用场景。在现实世界中,企业的信用评级、个人的信用评分是不可或缺的,比如你要贷款买房子时,信用报告是必须要有的,而且不能有失信记录。再如芝麻信用,据称其数据涵盖了信用卡还款、网购、转账、理财、社交关系等等,已经在信用卡、消费金融、融资租赁、酒店、租房、出行、婚恋、分类信息、学生服务、公共事业服务等上百个场景为用户、商户提供信用服务。这些外部应用我们可能感受不到,但在淘宝体系内,芝麻信用分高的用户在网购退货、信用消费、金融借款等方面是有更高的便利度的,对淘宝生态的重要性也不言而喻。

而在区块链中,即使它的数据是经过共识的、不可篡改的、去中心化的、抗抵赖的、权限对等的等等等等有一大堆让人眩晕的特性,链上的信任也是难以建立的,特别是交易前的信任度,因为在现实世界中,信任能否达成跟交易双方在链下的实际情况及其在交易历史中的表现相关。比如我们考虑一下这些问题:

l作为链上的买家,你如何知道链上哪个卖家是可信的?你付了钱他会不会给你发货?会不会是假货?

l作为卖家,说好货到付款,你会不会担心发了货他却不付钱?

l你愿意在区块链上借钱给别人吗?如果你是链上的金融机构,你怎么判断货款给某个客户的风险有多大?

这些问题正是现实世界中的信用评分起作用的地方,如果区块链上真能建立起可靠的信用体系,那现实世界的很多商业和金融场景还真有上链的可能性,这无疑是区块链领域中的又一大创新,具有广阔的想象空间。

小结

享云链实现了高性能的共识算法、隐私保护、多资产账户模型等等,在治理方面还引入了信用评分体系,拓展了区块链的应用场景。从白皮书来看,享云链产品完整度远超其它公链:跟比特币、以太坊对比,享云链具有隐私保护和高性能;跟门罗币、zcash等隐私币对比,享云链具备多资产模型和可扩展性,支持图灵完备的智能合约,能在上面构建去中心化交易所;跟cosmos相比,享云链提供了多资产模型和隐私保护,资产管理更方便和安全。