【摘要】 IRISnet主网IRIS Hub于北京时间2019年8月29日升级完成,这次升级是BPoS网络中首次对一个非兼容版本,在不硬分叉、不清空数据情况下的平滑升级。更重要的是
IRISnet主网IRIS Hub于北京时间2019年8月29日升级完成,这次升级是BPoS网络中首次对一个非兼容版本,在不硬分叉、不清空数据情况下的平滑升级。
更重要的是,这次升级后引入了许多激动人心的新功能,包括:
· 多资产管理
· 随机数生成器
· 多签账户及多签交易
· 使用Keystore文件来备份密钥
· Tendermint模块升级
· 其他优化与bug修订
过程回顾:不硬分叉的平滑升级
IRIS Hub 主网自上线以来,已稳定运行了5个月,期间经历了两次 Class-I 升级(兼容升级);而本次升级是第一次 Class-II 升级,即新版本 v0.15.0 将不能与老版本共存。
在本次正式升级前,IRISnet于2018年8月22日 21:00 发起升级提案,通过链上治理的形式,邀请网络的验证人进行投票,投票时间窗口为5天。到了8月27日 21:15,总计投票参与率为90.99%,超过社区自治所需的87.5%,其中赞成达100%,远超提案通过所需的85.7%。
提案详情:https://www.irisplorer.io/#/ProposalsDetail/2
在接下来的2天内,主网IRIS Hub开始进行升级,并于8月29日在区块高度229万时完成平滑升级。
本次升级我们引入了全新的功能模块,所以前后版本并不兼容,在以往的区块链网络中这就意味着要硬分叉。但是在这次升级中,不需要硬分叉,也不需要清空历史数据,就可平滑完成从链上治理提案发起、表决通过、网络在线升级的全部过程。这是BPoS网络历史上的首次!
更重要的是,这次升级后引入了许多激动人心的新功能,下面我们来重点介绍多资产管理、随机数生成器、多签账户及多签交易三大核心功能。
多资产管理
本次升级包含的多资产管理模块,可以在IRIS Hub上发行、管理和使用多种链上资产。
资产在IRIS Hub上分为三种:原生资产(Native Asset)、网关资产(Gateway Asset)、跨链资产(External Asset)。目前在本次v0.15版本的多资产模块上线后,主要可操作的是原生资产和网关资产;IBC协议将支持跨链资产的操作。
原生资产
即用户发行的资产。个人和公司可以在IRIS Hub上创建和发行他们自己的资产,用于他们可以想象的任何场景,比如资产通证化、稳定币、抵押借贷等等。
网关资产
与原生资产不同,网关资产是依赖于网关将价值移入和移出 IRISnet 网络的一类资产。网关方式是跨链通信(IBC)协议的一种替代方案,在IBC启用后也可能会继续存在。
其中,网关是可受信任的一方,基本上等同于标准交易所模型,用户可以依赖交易所的兑付能力来兑换您的货币。网关通常会发行带有符号前缀的内部资产,如GDEX,OPEN等,并且由网关来管理和操作这些资产。这些资产是真实的 BTC、ETH 或人们存放在网关上的任何其他数字资产的映射,同时由网关来负责资产之间的映射关系。
跨链资产
除了网关资产以外,在IBC协议启用后,我们还可以在IRISHub上创建其它区块链上已经存在的外部资产,以跨链的方式让市场处理需求和供应,而不是在IRIS Hub上建立一个完全由发行者控制供应的内部资产。 创建跨链资产的唯一方法是在 IRIS Hub Governance 上提交一个 TokenAdditionProposal 提案,但为了用户方便起见,BTC和ETH将在系统中预先配置。
操作方法可参考《如何在 IRIS Hub上发行资产 --多资产功能使用简介》
以多资产模块作为基础支撑,可以为许多DeFi类应用提供支持。例如,多资产和跨链的天然结合就可以为DEX赋能。IRISnet将和GDEX合作,可通过GDEX网关把BTC ETH 以及比特股网络上的稳定币引入到IRIS Hub,不同链上的资产都能通过网关产生相互间的联系。在跨链通信协议IBC实现之后,这些资产将经由IRIS Hub进入整个Cosmos生态网络,
启用跨链之后的Hub,可以为DEX的应用专有链提供一种分布式资产托管服务。DEX间的资产清算将更为简便快捷,也将支持更多、更广泛的多资产间交易,包括各个主流公链的原生资产及衍生资产;Cosmos生态各个Hub的Staking可以作为资产锚定机制的安全与抵押保障,将更加灵活可靠。 而所有这些都是以多资产模块作为底层基础设施来支持的。
随机数生成器
包括DeFi在内的很多DApp均依赖于随机数。
随机数按照生成方式主要可分为2种:真随机数、伪随机数。
真随机数一般是通过物理过程来生成的随机数
伪随机数是从“种子”以特定算法来生成的、近似于随机分布的数字。例如传统计算机中通常使用时间戳来生成一个分布符合要求的伪随机数。
在分布式环境下的区块链上,很多DApp会选择只使用区块哈希等数据来作为种子生成伪随机数,以满足各个节点间随机结果的一致性以及随机数验证过程的公开和简便。但这种方式很容易受到矿工或黑客等操控及攻击。
IRIS Hub v0.15版本的随机数生成器通过区块链生成的多个指标作为“种子”来计算随机数,增加随机性,同时也使得此随机数公开透明,方便验证。
随机数“种子”具体包含以下指标:
上一个区块的哈希:区块哈希的生成,取决于该区块的多方面因素,比如区块高度、交易数量、时间戳等等,因此区块哈希本身就具有一定的不可预测性。
当前区块的时间戳:区块时间戳采用 BFT 时间,即根据验证人的权重,使用上一个区块中每一个Precommit的时间,加权计算出来的分布式时间戳(毫秒级别),也具有一定的不可预测性 [BFT Time:https://tendermint.com/docs/spec/consensus/bft-time.html#bft-time] 。
请求随机数的账户地址:主要是为了实现不同人在同一个区块高度得到不同的随机数。
计算公式为
由于区块哈希和 BFT 时间的计算都是基于上一个区块的信息,为了避免请求随机数之前可以预先计算结果,所以另一方面,我们通过“未来区块”,加强随机数的不可预测性。
不过,不可预测不代表不可操纵。此模块处于 Beta 阶段,使用前请评估风险。下一个版本,我们拟采用预言机的方式,引入外部的可信随机数来源,以真随机数形式来生成。
多签账户及交易
多签账户是由多个密钥来管理、控制的账户,是实现保管大额资产、协同处理交易等场景的关键技术。
IRIS Hub上多签账户的过程包括生成和发起交易。
多签账户在创建时就会要求设定好最小签名人数
在发起交易时必须至少超过该阈值才能构建好签名后的交易数据,并通过网络广播签名后的交易
多签账户及交易功能可以更好地支持DeFi应用,例如在借贷类产品中,用户抵押资产进行担保,与借贷平台共享一个多签账户,协同管理这一账户。当发生赎回、违约等情形时,需要超过最小签名人数才能发生交易,避免了单签账户的中心化风险。
总结
IRIS Hub构建于Cosmos SDK之上,可以看到,Cosmos SDK可以以高度模块化的方式进行增补。本次平滑升级不仅展示了IRISnet先进的治理模块,而且也将会为包括DEX、Staking等DeFi应用提供更好的支持。(IRISnet)