BUMO技术观点:支撑几十亿用户的Libra技术到底是什么样的

BUMO公链技术负责人赵正涌从多个维度,对Libra 目前已公布其白皮书、官网及测试网进行了分析。

6月18日,Facebook正式发布了其加密数字货币项目Libra的白皮书,引发了业界广泛关注和讨论。BUMO公链技术负责人赵正涌从开放性、数据模型、共识算法、智能合约、开发语言、Token、Gas、激励机制、加密算法、隐私保护技术、多链分片技术、性能表现邓多个维度,对Libra 目前已公布其白皮书、官网及测试网进行了分析。

BUMO技术观点:支撑几十亿用户的Libra技术到底是什么样的

开放性:

Libra当前为许可链,并且计划五年内开始转向非许可链。目前只有授权的机构才可以接入链,设计中的两点可以体现出其许可特性:首先在网络层面,TCP负责可靠传输、Gossip协议用于Peer发现、Noise组件用于身份验证和端到端的加密,只有符合条件的成员才能加入内部验证网络;其次,共识算法为libraBFT,一种拜占庭容错协议,大多数许可链用到的共识算法,它区别于POS可以通过代币权益竞争出块权利、以及POW可以通过算力竞争出块权利,Libra的出块权利只归已授权的机构。BUMO 的底层技术BU Chain通过配置也可以支持许可链的应用,网络层面BU Chain是基于成熟的PKI体系,使用数字证书加密连接及对Peer的网络连接进行访问控制,BU Chain的BFT共识协议已经稳定运行多年。

数据模型:

不同于BTC的UTXO模型,其采用了基于账户的数据模型。作为要承载几十亿人使用的区块链,这是明智的选择,因为基于账户的区块链可编程性强、学习成本低、与传统业务设计相近。其核心有两个概念:交易和状态,并无明确提到区块的概念,状态存储在其“版本化数据库”中,版本化数据库允许验证者在最新版本处针对分类帐状态执行事务,及响应当前版本及历史版本的客户查询,保存历史版本必然会导致数据急剧膨胀,存储成本增大,会面临大多数区块链遇到的问题:归档和全节点数量的降低,不过其当前有限的几个机构都很有财力,成本增加不是太大的问题。BUMO的设计中也有版本化的概念,账户可以版本化存储,不过是为了应对账户高并发的访问,是一种乐观锁的设计。

共识算法:

Libra的共识算法为libraBFT,一种基于HotStuff改进的算法,属于BFT拜占庭容错算法。为了安全性考虑,经过三轮共识后,第一个区块才会真正提交并执行。此算法特点:基于消息传递、三阶段提交、容错能力为(N-1)/3,Libra选择HotStuff的理由更多的是从工程实现考虑:模块化、与交易执行模块集成容易、性能尚可。但是HotStuff本身只是一种BFT算法,并不是为区块链开发,Libra对其做了4个改进:1,修复可能导致确定性的bugs(确定性是区块链的关键特性,是保证所有节点运算结果一致的重要前提);2,设计一种不依赖同步时钟的超时机制,只依赖大多数验证节点切换到下一轮共识的机制;3,“打算”设计一种不可预测的Leader选举机制;4,设计聚合签名以隐匿验证者节点。

除以上4点,BUMO的共识算法为提高可用性,设计的另外几点:1,用智能合约管理验证节点:把验证节点的管理逻辑分离出来用智能合约实现,这样可以复用合约状态机功能。2,在共识算法的不同阶段针对不同的节点总数,优化了法定集合数量。3,切换共识实例时,优化了消息结构提高数据传输效率。

智能合约:

Calibra团队创新性的开发了MoveVM智能合约引擎,其编程语言是Move,编译器为Move IR Compiler,可以将Move语言编译字节码。Move语言强调的特性是安全, 采用的是静态类型系统,很多编程低级错误都可以在编译的时候发现,而不是拖到运行期才爆出 bug。除了常规的布尔类型、64位无符号整型、256位的地址等常规类型,Move还创新性的定义了“资源”类型,不同于一般类型的值,一般类型的值是可以复制的,而”资源“不可复制或丢失,特别适用于定义数字资产,比如在Move合约中,Token总量为10个,无论合约逻辑出现什么漏洞,都可以保证在任何时刻所有账户的Token总量永远为10,该特性避免凭空造币或者丢币的问题。在BU Chain中也有类似做法,在BU智能合约中如果要操作资产,可以调用原生发行或转移资产接口。由于Move语言是一个全新的语言,还需要较长时间才能成熟可用,目前测试网没有开放Move合约。

开发语言:

底层代码用Rust语言编写,Rust语言可为Libra程序带来更多的安全性。智能合约用Move语言编写,Move是libra自创的语言,用户可以用该语言写出更安全的智能合约。

Token:

Libra 的Token名为Libra Coin,总量无上限,依据一篮子货币量而发行,只有被授权的机构才可以发行,与其他大多数公链的Token逻辑差别很大,大多数公链的Token都是固定的总量,并且Token的产生逻辑是固化在程序中,不会轻易改变,除非硬分叉。Libra Coin除了可以当稳定币用于支付,还可以作为交易上链的燃料,防止DOS 攻击。

Gas:

Libra Coin可以当做交易上链的燃料,用户可配置两个参数:Gas price ,单位为 microlibra/gas,用户愿意为交易上链所支付的Gas 单价;Maximum gas amount,要上链的交易被允许消耗最大的Gas值。当交易出现拥塞时,系统会按照Gas Price排序,Gas Price较高的交易优先被打包。

激励机制:

在链上无代币激励,这也是大多数许可链的做法,但是有法定的储备货币的利息收入。

加密算法:

Libra使用的杂凑算法为SHA-3第三代安全杂凑算法,之前名为Keccak,NIST对Keccak的评价是: 具有良好的安全性和实现性能,特别是与SHA2不同的设计方式,可避免已有的攻击方式,而且能够提供SHA2不具备的一些性能。Libra使用的签名算法为ED25519,一种椭圆曲线加密算法,特点是性能极高、签名过程中不依赖随机数生成器、不依赖hash函数的防碰撞性。注重商用的区块链项目Ripple和BUMO都使用到该签名算法。 Libra使用的密钥交换算法为X25519。

隐私保护技术

暂无明确规划。Libra会在考虑实用性、可扩展性和可监管的同时,继续评估增强区块链隐私的新技术。

多链分片技术:

暂无明确规划。为提高区块链的性能,Libra会考虑到多链分片等技术。

性能表现:

Libra并没有做实际性能测试,通过并行化、分片及分布式数据库技术,其预估,假如每笔交易大小为5KB,带宽为40Mbps,可并行验证交易签名,预计性能在1000TPS左右,交易确认时间10秒左右。假如每个账户4K,16TB SSD存储介质可存储40亿个账户。而BUMO通过改进关键算法及优化共识协议,节点数量为100个,在局域网的环境下可测出3000TPS的交易速度,如果使用Orbits多链技术,则可随着链的个数增加,线性提高TPS至几万到几十万,可见Libra的1000TPS的目标还是比较现实的,能满足其初步需求。

总结:

从细节可看到Libra虽无过多创新,但是技术选型都是深思熟虑过的。总体来说目前还处于初级阶段,要想为几十亿人服务,还有较长的路要走,尤其是在系统容量、稳定性、合约安全性方面需要投入大量资源去验证与改进。

转载声明:本文 由CoinON抓取收录,观点仅代表作者本人,不代表CoinON资讯立场,CoinON不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。若以此作为投资依据,请自行承担全部责任。

声明:图文来源于网络,如有侵权请联系删除

风险提示:投资有风险,入市需谨慎。本资讯不作为投资理财建议。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2019年6月24日 下午6:28
下一篇 2019年6月24日 下午6:28

相关推荐

BUMO技术观点:支撑几十亿用户的Libra技术到底是什么样的

星期一 2019-06-24 18:28:22

6月18日,Facebook正式发布了其加密数字货币项目Libra的白皮书,引发了业界广泛关注和讨论。BUMO公链技术负责人赵正涌从开放性、数据模型、共识算法、智能合约、开发语言、Token、Gas、激励机制、加密算法、隐私保护技术、多链分片技术、性能表现邓多个维度,对Libra 目前已公布其白皮书、官网及测试网进行了分析。

BUMO技术观点:支撑几十亿用户的Libra技术到底是什么样的

开放性:

Libra当前为许可链,并且计划五年内开始转向非许可链。目前只有授权的机构才可以接入链,设计中的两点可以体现出其许可特性:首先在网络层面,TCP负责可靠传输、Gossip协议用于Peer发现、Noise组件用于身份验证和端到端的加密,只有符合条件的成员才能加入内部验证网络;其次,共识算法为libraBFT,一种拜占庭容错协议,大多数许可链用到的共识算法,它区别于POS可以通过代币权益竞争出块权利、以及POW可以通过算力竞争出块权利,Libra的出块权利只归已授权的机构。BUMO 的底层技术BU Chain通过配置也可以支持许可链的应用,网络层面BU Chain是基于成熟的PKI体系,使用数字证书加密连接及对Peer的网络连接进行访问控制,BU Chain的BFT共识协议已经稳定运行多年。

数据模型:

不同于BTC的UTXO模型,其采用了基于账户的数据模型。作为要承载几十亿人使用的区块链,这是明智的选择,因为基于账户的区块链可编程性强、学习成本低、与传统业务设计相近。其核心有两个概念:交易和状态,并无明确提到区块的概念,状态存储在其“版本化数据库”中,版本化数据库允许验证者在最新版本处针对分类帐状态执行事务,及响应当前版本及历史版本的客户查询,保存历史版本必然会导致数据急剧膨胀,存储成本增大,会面临大多数区块链遇到的问题:归档和全节点数量的降低,不过其当前有限的几个机构都很有财力,成本增加不是太大的问题。BUMO的设计中也有版本化的概念,账户可以版本化存储,不过是为了应对账户高并发的访问,是一种乐观锁的设计。

共识算法:

Libra的共识算法为libraBFT,一种基于HotStuff改进的算法,属于BFT拜占庭容错算法。为了安全性考虑,经过三轮共识后,第一个区块才会真正提交并执行。此算法特点:基于消息传递、三阶段提交、容错能力为(N-1)/3,Libra选择HotStuff的理由更多的是从工程实现考虑:模块化、与交易执行模块集成容易、性能尚可。但是HotStuff本身只是一种BFT算法,并不是为区块链开发,Libra对其做了4个改进:1,修复可能导致确定性的bugs(确定性是区块链的关键特性,是保证所有节点运算结果一致的重要前提);2,设计一种不依赖同步时钟的超时机制,只依赖大多数验证节点切换到下一轮共识的机制;3,“打算”设计一种不可预测的Leader选举机制;4,设计聚合签名以隐匿验证者节点。

除以上4点,BUMO的共识算法为提高可用性,设计的另外几点:1,用智能合约管理验证节点:把验证节点的管理逻辑分离出来用智能合约实现,这样可以复用合约状态机功能。2,在共识算法的不同阶段针对不同的节点总数,优化了法定集合数量。3,切换共识实例时,优化了消息结构提高数据传输效率。

智能合约:

Calibra团队创新性的开发了MoveVM智能合约引擎,其编程语言是Move,编译器为Move IR Compiler,可以将Move语言编译字节码。Move语言强调的特性是安全, 采用的是静态类型系统,很多编程低级错误都可以在编译的时候发现,而不是拖到运行期才爆出 bug。除了常规的布尔类型、64位无符号整型、256位的地址等常规类型,Move还创新性的定义了“资源”类型,不同于一般类型的值,一般类型的值是可以复制的,而”资源“不可复制或丢失,特别适用于定义数字资产,比如在Move合约中,Token总量为10个,无论合约逻辑出现什么漏洞,都可以保证在任何时刻所有账户的Token总量永远为10,该特性避免凭空造币或者丢币的问题。在BU Chain中也有类似做法,在BU智能合约中如果要操作资产,可以调用原生发行或转移资产接口。由于Move语言是一个全新的语言,还需要较长时间才能成熟可用,目前测试网没有开放Move合约。

开发语言:

底层代码用Rust语言编写,Rust语言可为Libra程序带来更多的安全性。智能合约用Move语言编写,Move是libra自创的语言,用户可以用该语言写出更安全的智能合约。

Token:

Libra 的Token名为Libra Coin,总量无上限,依据一篮子货币量而发行,只有被授权的机构才可以发行,与其他大多数公链的Token逻辑差别很大,大多数公链的Token都是固定的总量,并且Token的产生逻辑是固化在程序中,不会轻易改变,除非硬分叉。Libra Coin除了可以当稳定币用于支付,还可以作为交易上链的燃料,防止DOS 攻击。

Gas:

Libra Coin可以当做交易上链的燃料,用户可配置两个参数:Gas price ,单位为 microlibra/gas,用户愿意为交易上链所支付的Gas 单价;Maximum gas amount,要上链的交易被允许消耗最大的Gas值。当交易出现拥塞时,系统会按照Gas Price排序,Gas Price较高的交易优先被打包。

激励机制:

在链上无代币激励,这也是大多数许可链的做法,但是有法定的储备货币的利息收入。

加密算法:

Libra使用的杂凑算法为SHA-3第三代安全杂凑算法,之前名为Keccak,NIST对Keccak的评价是: 具有良好的安全性和实现性能,特别是与SHA2不同的设计方式,可避免已有的攻击方式,而且能够提供SHA2不具备的一些性能。Libra使用的签名算法为ED25519,一种椭圆曲线加密算法,特点是性能极高、签名过程中不依赖随机数生成器、不依赖hash函数的防碰撞性。注重商用的区块链项目Ripple和BUMO都使用到该签名算法。 Libra使用的密钥交换算法为X25519。

隐私保护技术

暂无明确规划。Libra会在考虑实用性、可扩展性和可监管的同时,继续评估增强区块链隐私的新技术。

多链分片技术:

暂无明确规划。为提高区块链的性能,Libra会考虑到多链分片等技术。

性能表现:

Libra并没有做实际性能测试,通过并行化、分片及分布式数据库技术,其预估,假如每笔交易大小为5KB,带宽为40Mbps,可并行验证交易签名,预计性能在1000TPS左右,交易确认时间10秒左右。假如每个账户4K,16TB SSD存储介质可存储40亿个账户。而BUMO通过改进关键算法及优化共识协议,节点数量为100个,在局域网的环境下可测出3000TPS的交易速度,如果使用Orbits多链技术,则可随着链的个数增加,线性提高TPS至几万到几十万,可见Libra的1000TPS的目标还是比较现实的,能满足其初步需求。

总结:

从细节可看到Libra虽无过多创新,但是技术选型都是深思熟虑过的。总体来说目前还处于初级阶段,要想为几十亿人服务,还有较长的路要走,尤其是在系统容量、稳定性、合约安全性方面需要投入大量资源去验证与改进。