可可金融旗下CoCo交易所开放上币申请通道

Usechain架构师张亮:对抗“矿霸” RPOW让每个人都拥有相同的出块权

ChainPilot链先锋·热度: 8897
我们选择了基于链上数据进行伪随机数的产生,这种方法其实有两个需要解决的问题。

分享嘉宾介绍

张亮

Usechain技术架构师

拥有多年的数字货币交易所和区块链开发经验,曾任微比特虚拟货币交易所和直布罗陀国家区块链交易所高级研发工程师。15年开始接触区块链项目,并对目前的主流的区块链技术进行过深入的研究与探索,中国科学技术大学硕士。

以下为Usechain架构师张亮的分享内容实录:

今天很高兴能够和大家一起来分享一下身份系统和共识算法RPOW的具体实现细节。

首先我们的身份实际上是一个很独特的一个系统。身份认证是一个很中心化的东西,那怎么把身份认证做到必要时可进行身份追踪,同时极大程度的保护用户的隐私安全,实际上是一个很困难,甚至来说很矛盾的一个问题。

在Usechain的身份验证模块,会平衡第三方身份验证机构的专业性和区块链网络组织的去中心化特性。同时会采取主从地址、门限密钥技术和身份数据加密技术保护用户的身份隐私,同时我们通过智能合约和委员会的一个裁决,在使用者授权或者整个社区投票决定的情况下,才能获取该自然人的全部信息。

那么如何进行身份认证呢?Usechain的身份认证的主要流程是,首先Usechain会与一些身份认证的CA机构进行合作,用户可以按照Usechain的身份验证标准去专业性和权威的CA机构进行身份验证,CA机构在审核资料合法且有效后,会向用户颁发权威的身份认证证书。用户在拿到身份认证后,通过链上注册主地址认证,发送身份认证请求到智能合约,这时候我们的委员会节点会来审核这些证书是否有效,用户的个人信息是不是有效。当一切校验OK的时候,我们会将用户的审核状态改为已经通过验证。

如果用一般的安全加密技术,用户发了一份加密的用户信息到链上,但是很有可能被一些黑客或者单独一个委员会成员所破解,来泄露个人的隐私。我们引入的身份数据加密&门限密钥技术,使得委员会只有在满足一定数量的委员会成员确认之后,才可以校验用户的个人信息。

这样就避免了意外情况的发生,可能有些委员不在线,或者发生了一些故障,但是整个网络仍然可以有效地进行身份验证,维持链的正常运行,同时也避免了单个或者少数委员会存在一个作恶情况。

提到刚才的委员会,大家可能会很疑惑,在比特币和以太坊的系统中,可能只有矿工和普通节点,那委员会在我们系统中到底是起什么作用的呢?

有限的委员会节点,它可能两大功能,一个是参与共识算法中移动检查点的一个投票。那移动检查点,我会在稍后的RPOW的介绍中向大家来做解释。委员会的另一个功能,是参与身份验证的校验。刚才也说到,通过门限秘钥的技术来实现一定数量的委员会才能进行身份验证的解密,不可避免的会有一些委员会成员之间的信息交互,如果把这些交互放到主链上,会影响链的运行和效率。

因此,我们使用了以太坊的whisper通信协议,委员会成员之间会单独建立一个小型的p2p网络。从而不影响主链的运行,并且提升身份认证效率。

另外在Usechain系统中,地址可以分为主地址和子地址,主地址需要通过申请CA证书和身份认证来进行身份绑定。那可能对于大部分用户,在平时的交易中会用到不同的地址,如果重复主地址申请,未免太过复杂。Usechain可以通过主从地址的技术,从主地址衍生出无限的子地址,用户可以自主选择子地址是匿名的还是跟主地址绑定的。同时主地址和子地址的关系也只有在大部分委员会成员都参与的情况下,才能被解析出来。

下面介绍RPOW的具体细节。Usechain的共识算法设计RPOW是为了解决POW算法中产生的资源浪费,同时提升交易处理的性能。与中心化网络相比,由于分布式网络中拥有众多节点,网络中不可避免的通信延迟,节点可能出现宕机、故障、失效等等复杂情况;而对于区块链网络来说,即要考虑这些因素,还要做到可以抵御一定数量作恶节点的攻击,同时要保证很大程度的的去中心化。

包括POW、POS等等共识算法,本质上来说就是整个网络如何选择一个随机的矿工来出块。归根结底,就是怎样在分布式网络找到一个不被控制,真实有效的随机数。一种就是POW,比特币,通过算力竞争才产生随机数。另一种是可能是基于链下共享信息产生随机数。第三种一种方式就是,基于链上既有的数据来产生一个随机数,最简单的想法就是,能不能通过一个全新区块的哈希来作为一个随机数的种子?那会有什么问题吗?

我们选择了基于链上数据进行伪随机数的产生,这种方法其实有两个需要解决的问题,如果依据的链上信息是固定的,那是不是可以提前计算出所有矿工,这样的话安全性得不到保障。但如果依据的链上信息的有调整空间的,那怎样避免前续矿工的作恶干扰?这样也是不够安全的。

那么,Usechain是怎样做设计的?基于身份认证系统的基础之上,Usechain与其它公链系统最大的区别在于链上身份是稀有的,且在最理想的情况下,每一个真实有效的身份只会对应一个挖矿的主地址。

用户的地址和签名的数据其实是稀有,也是不可调整的。我们引入的确定性签名算法可以保证良好的随机性。将身份签名引入到VRF随机数产生的过程,在未掌握全网私钥的基础下,无法预测未来的区块产生者;实际上这会使得整个网络的安全性有很大的保障。

有了VRF算法,能保证良好随机性,那是不是高枕无忧了?但实际上会碰到一个类似于POS算法同样的问题。我挑选了一个矿工来出快,但是它很有可能宕机网络延迟,出现各种情况。它被选中了,但是他没有出块,为了不影响网络出块,Usechain是怎么处理的呢?

Usechain通过VRF算法计算出第一出块权的矿工,若长时间未出块,则通过VRF重新选择第二出块权矿工。这样就可以在守卫矿工不在线的情况下,进行后续区块的产生,保证整个链的运行。

通过引入备用矿工,使得在任何情况下,Usechain的区块链都可以持续运行下去,但是也引入了分叉剪枝的问题。由于出块无代价,实际上整个网络可能会蔓生出无限的分叉,所以我们也引入了一个移动检查点的机制。在Usechain系统中, 目前使用委员会成员每隔一定区块,对当前的主链的进行投票确认。通过检查点确认的交易,则无法更改

这也就意味着不像POW算法那样,需要等待一定的区块确认数才能确认交易入账,而且还只是概率上的确认。这样的一个确认效率,也使得Usechain在应用场景,尤其一些支付、金融应用的使用中比较方便。目前移动检查点是每10个区块产生一次,出块间隔是5s,意味着交易在最短可以在5s获得交易的严格确认,平均的确认时间会在25s-50s左右。

也有可能有些人会质疑,移动检查点通过委员会节点来进行投票,那是不是偏中心化?目前因为我们的公链刚上线,网络节点会比较少一点,为了网络安全起见,目前是通过委员会来进行投票,未来我们会通过优化一些VRF算法和一些移动检查点的产生机制,在已有的矿工列表里面去挑选部分的矿工来进行移动检查点的一些投票,真正去做到“one cpu,one vote”这样的一个崇高理想,一个去中化的一个理想状态。

未来我们可能会通过一些子链和闪电网络类通道的一个技术,来继续提升整个网络的交易处理速度,同时引入聚合签名算法降低交易的大小,优化网络性能。另外也会优化目前的智能合约虚拟机,增加更多的原生接口,方便金融类应用开发。

声明:本文为入驻“火星号”作者作品,不代表火星财经官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。 未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
语音技术由科大讯飞提供
最近更新
本文来源:ChainPilot链先锋
原文标题:
涨跌幅
排名币种成交额价格(USD)涨幅
您可能感兴趣的内容
暂无内容

评论0