4月2日晚,密码极客有幸邀请到Usechain项目团队的三位成员做客“密码极客大咖直播间”,三位嘉宾分别从Usechain的主要特点与设计目标、Usechain与其它公链的比较、Usechain身份系统和共识算法RPOW的具体实现细节、Usechain的金融服务等方面进行了分享和阐述。
分享嘉宾介绍
曹辉宁
Usechain创始人兼CEO
长江商学院金融学教授,金融MBA学术主任,长江商学院建校教授,金融MBA(FMBA)创始人,中国区块链应用研究中心常务理事。
中科大第二届少年班(79级),耶鲁大学生物博士,加州大学洛杉矶分校(UCLA)金融博士,美国财务学会会员,曾任教于加州大学伯克利分校。
任Annals of Economics and Finance的编委会成员及International Financial Review和China Financial Review的主编,连续五年入选中国高被引学者榜单。
周海汉
Usechain CTO
拥有10多年的技术开发和管理经验,多次创业者。对大数据处理,人工智能,网络分布式系统,架构设计有较深了解。2015年接触区块链技术,设计去中心化数字货币的形态。早在2005年开始基于P2P通信技术实现去中心化的通信软件和内容社区。此前曾在科大讯飞,华为等担任高级研发工程师职位。本科毕业于中国科学技术大学,双学士学位,中科院硕士。
张亮
Usechain技术架构师
拥有多年的数字货币交易所和区块链开发经验,曾任微比特虚拟货币交易所和直布罗陀国家区块链交易所高级研发工程师。15年开始接触区块链项目,并对目前的主流的区块链技术进行过深入的研究与探索,中国科学技术大学硕士。
Usechain项目介绍
Usechain是全球第一个隐身镜像区块链生态系统,在Usechain的链上镜像世界中,隐身镜像协议Mirror Identity Protocol(MIP)把链下真实世界的身份与链上镜像世界的账户相关联,在身份的基础上全面复制华尔街的金融业务,在镜像世界中打造一个去中介化、低交易成本、大规模、高效率的链上华尔街。
Usechain首创Randomized Proof of Work(RPOW)共识算法,将突破区块链发展瓶颈,实现安全、效率和规模的平衡。
通过在区块链上的真实身份映射,在保护用户隐私的前提之下满足金融系统中最重要的KYC(了解客户)及AML(反洗钱)原则,降低使用技术门槛,促进去中心化应用的真正落地,在链上的镜像世界中推进全球普惠金融,打造链上华尔街。
以下是三位嘉宾的演讲原文
周海汉演讲内容
我今天分享的主题是Usechain的特点和设计目标。我想介绍一下我们Usechain为什么会这样去设计,然后我也会跟其他的一些公链做一个比较。
Usechain对于金融方面是有很多的想法,所以首要的目标就是想要做到在金融方向上的一个可用性和可落地性。有些对我们Usechain还不是特别的了解的朋友们可能会想:市面上已经有那么多的区块链和联盟链,为什么还需要一个这样的Usechain?
大家都知道区块链有非常突出的几个特点:1)公开;2)去中心化,就是所有人都可以参与进来。像比特币、以太坊,他们一开始就实现了一个人人可以参与的,可以没有任何人去管理的一个公链。但是POW本身的能耗以及矿霸等等这些问题,目前其实也是大多数人想去改革的。
我们Usechain在效率方面做到了很大的提升并兼顾了安全性。我先来讲一下我们设计的RPOW。RPOW跟POW有很大的不同,首先就是它去掉了对于能源的消耗和环境的一个破坏。我们目前的链的实测性能大概在500TPS,能够满足常规的大部分的应用。在理想环境下的话,我们内测大概有3000 TPS左右的性能。RPOW的Randomized主要就是随机选择一个挖矿者来挖矿。
安全问题我们如何解决?我们的底层会有身份相关的一些相关信息,我们会有其他综合性的措施,包括像一个矿工的抵押,它必须达到一定的信用等级才能成为矿工。所以安全性跟那种没有门槛的,会有一定的差异和保障的。
而我们跟EOS的差异是我们的决策效率会更高。我们把挖矿者和决策进行了一个分离,我们设计的委员会是做决策的,他直接在链上面去做决策,矿工会无条件的去执行这个委员会的决策。这样我们就避免了像EOS遇到一些安全问题的时候,互相扯皮,效率低下的问题。
我们的委员会也是一个分布式的,可以选举参与进来的一个检测机构。经过多数委员会的同意,才可以做出一个决策。所以就是从出块效率来说的话,我们应该是可以趋近于DPOS的这种效率,然后从决策效率来说的话,我们是趋近于类似中心化的的角色的效率。
另外,我想来说说我们跟公信宝和本体的差异。市面上有很多这种做身份的链,而我们的链是底层有身份,但是我们并不是说去做类似公信宝他们那种类似passport的这种公链。我们的身份仅仅是为了我们链上面的应用的需要,比如说我们要做金融应用,或者是做商业应用的时候,我们需要有用户的一些身份信用和一些相关认证的信息在链上。所以我们不是为提供用户的身份而存在的链。当然我们也可以有这个能力,所以像本体或者公信宝这样的链是可以成为我们的一个合作方的,他可以成为我们一个身份信息的一个来源。
在跟比较有影响力的这些主要的公链的一个一个差异化之后,我想再来讲一讲我们Usechian主要的特点和设计目标。Usechian主打金融,然后同时可以做各种商业应用。主打金融的话,首先就是要可信赖,可管理,可监管。所以我们底层是支持身份信息加上一个信用信息的。
我们的信用包含四个方面,一个是交易的信用,一个是认证的信用,然后是一个评价的信用,以及一个委员会去存储或者是奖励的一个信用。针对信用这一块,我们为了方便用户去识别,做成了“星钻”等级这样的方式。
但是作为一个公链,用户如果说有身份的话,它可能担心会有一些隐私方面的泄露的问题。于是我们就是采用了专利的隐私保护的一些策略,用户的信息即使放在链上,他也不用担心他的身份信息会泄露,我们有这么几个措施:
一个是身份在链上面是镜像加密存储的,但是我们采用了一些方法,还可以进行一个身份的监控。委员会经过多人决策之后的话,是可以去查看到用户的身份的。
同时用户自己,他也可以选择是否公开身份。如果作为商家的话,他是可以公开自己的身份的,另外他加密的身份,可以单独的点对点的去对某些用户进行公开,比如说他如果要借贷的话,对方可能需要去了解它的qs1。又比如他要买保险的话,那么保险公司肯定是需要要知道这个用户是谁的。
同时我们还兼容这种匿名链,就是它可以用匿名的账号去进行交易。另外一种方式就是子账号,这个子账号它是可以具有主账号相应的信用的。另外我们还有一个设计目标,就是一个高性能,我们未来会加入子链或者是闪电网络等等相关的技术,加上我们主链的这个性能提升,将可以支持大多数的金融和商业应用。
张亮演讲内容
今天很高兴能够和大家一起来分享一下身份系统和共识算法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”这样的一个崇高理想,一个去中化的一个理想状态。
未来我们可能会通过一些子链和闪电网络类通道的一个技术,来继续提升整个网络的交易处理速度,同时引入聚合签名算法降低交易的大小,优化网络性能。另外也会优化目前的智能合约虚拟机,增加更多的原生接口,方便金融类应用开发。
(因为单篇文章篇幅有限,Usechain创始人兼CEO曹辉宁博士的分享内容我们将在下篇文章中推送。)
免责声明:本文章仅代表作者个人观点,不代表本平台的立场和观点。本文章仅供信息分享,不构成对任何人的任何投资建议。用户与作者之间的任何争议,与本平台无关。如网页中刊载的文章或图片涉及侵权,请提供相关的权利证明和身份证明发送邮件到support@aicoin.com,本平台相关工作人员将会进行核查。