北京时间 2019 年 8 月 30 日,ZVChain 首席科学家吕晟珉,以特邀嘉宾身份出席 2019MiiX 全球区块链应用生态开发者峰会,并发表“DEFI 公链的架构设计与创新”主题演说。

上海路演 | ZVChain 首席科学家吕晟珉受邀发表 DEFI 主题演说

以下为大会演讲实录: 大家下午好,首先感谢主办方对 ZVChain 的邀请。我本人在算法研发层面已经有 15 年的工作经历,现在担任 ZVChain 的首席科学家。总的来说,我是一个技术人员,所以我后面的演讲可能会涉及到一些算法的问题,相对来说会有些偏技术层,我希望尽量用简单的语言来进行解释。

上海路演 | ZVChain 首席科学家吕晟珉受邀发表 DEFI 主题演说

首先我们先来看一下传统金融和 DeFi 的区别。举个例子,当身在中国的 Alice 要给远在德国的 Bob 发起一笔转账交易,中间会经过很多金融机构,而你却无法知道这中间需要多少时间和费用,即使是金融机构从业人员也没法估计这个值。所以通常这个时间会消耗比较长,三到七个工作日以上。

上海路演 | ZVChain 首席科学家吕晟珉受邀发表 DEFI 主题演说传统金融

而用 DeFi 的方式,Alice 和 Bob 只需要在他们的计算机节点上发起一个交易,经过区块链交易的确认时间,就完成该笔交易。
这个确认时间是很明显的,由整个区块链系统决定,像比特币是 6 块确认,一个小时到账,以太坊基本上是 12 块到 18 块确认,3-7 分钟到账(以交易所标准计算)。它的费用也是固定的,因为在区块链上单笔转账费用,基本上是比较公开的一个价格。

上海路演 | ZVChain 首席科学家吕晟珉受邀发表 DEFI 主题演说

Defi 从这里我们很明显的看出,传统金融行业整体手续时间长、费用高,而 Defi 可以又快又好。 回首伴随我们百年的传统金融,其最大优点就是安全。这个安全我们应该从两方面来分析,一方面是系统安全,还有一方面是业务安全。兼具这两方面的安全是传统金融行业的优点所在。但是现有的情况,表现为它的缺点越来越多。
现有的传统金融行业就像 19 世纪后期的运输业,在那个时候,马车是当时最快的运输工具,而内燃机已经出现。但是那时候还没有汽车产生。所以我们来看的话,传统的金融行业如果说不依靠工具(生产力)的提升的话,他的上升空间就很有限。

DeFi 的机遇与挑战

DeFi 是 Decentralized Finance 的英文简称,是区块链技术融入到金融行业的尝试。现在就好比有一辆车,区块链技术可以看作是一个发动机,我们有了发动机但还没有完整车的样子,那我们可以对车进行一个构想:DeFi 需要有一些去中心化的本质,同时需要满足互联网金融的前车之鉴,需要安全和监管。

上海路演 | ZVChain 首席科学家吕晟珉受邀发表 DEFI 主题演说

对车有了一个构思以后,那如何去改造这个区块链技术,让它能够满足 Defi 的要求?在这一点上,我们主要是考虑到现有的区块链技术存在的三大不足:首先对于区块链金融公链来说,安全性排在第一位,但是刚才也介绍到,安全是分为系统安全和业务安全两方面。 在现有的区块链技术中,真的有满足业务安全这一需求吗?实际上还没有。 刚才我所举的跨境支付例子是一个很简单的金融场景。我们可以再看一个例子,比如我现在是一个商家,当我收到客户的订货款,我能查到,那我就确定能给客户发货了吗? 现有的区块链技术有这样一个问题,就是现在主流的区块链 pow 机制存在着数据无最终性的问题。数据最终性就是指到某一个高度,用户可以知道这个区块是确定的,是不会被推翻了。在这个层面,现有的区块链大多数还是会存在这一安全问题。我们觉得这些问题最主要的产生原因,是因为区块链中不可避免的会产生分叉问题。现在大多数的链,解决链分叉的方法是采用最长链胜出机制,这必然会造成这条链是没有最终态的情况。 假设现在有一个超级算力拿在手上,我可以依赖算力强劲产生一个难度比你大、长度比你更长的链放在那里,当我进行交易以后,再把这条链放出去,因为最长链的原则,系统会用我手中这条链去替换原来那条链,然后推翻过去这个交易。对于金融公链来说,一旦这个确认是没有最终性的话,是一个极大的隐患。

第二个就是说交易确认的问题,刚才所讲到的主流 POW 链的区块确认基本上都采用概率确认的方式,比如比特币是认为后续串接了六个追加块,就是这个块被确认了,就是该块内的所有交易被确认了。然后现有的交易所基本上认为以太坊上会有 12 到 18 块追加区块,就是认为这个交易已经是确认了,但是真的可以确认了吗?

上海路演 | ZVChain 首席科学家吕晟珉受邀发表 DEFI 主题演说

我们可以假想一下,如果说现在中美的海底光缆被分割了以后,这两个网都会变成两个子网,那在这个子网中他们会分别各自运行。按照这个运行准则,以太坊会用 3-7 分钟左右进行块确认,如果中间断网时间几个小时,那两边的子网都会产生一些区块会被确认掉。在这些状态下面,客户可以认为区块被确认了吗?作为商家,我觉得这个区块被确认了以后,我可以发货了吗? 第三个问题就是在刚刚我所举的这个例子,如果说网络一旦被隔离,或者大量矿工节点被攻击的情况下,有没有一种机制能够警示用户,让用户避免在网络健康度不佳时进行交易?这三个问题是我们觉得现有的区块链没有一个很好的解决方案,这也是安全性的一部分。 除了上述的安全性问题之外,还有数据隐私保护 / 监管问题,以及用户体验存在问题。

这里来看个具体案例感受一下,这是以太坊上著名的黑洞地址(0x0000000000000000000000000000000000000000),我们通过以太坊的区块链浏览器可以看到上面的 balance 还有 7000 多,并可以完整的看到所有交易。从这个交易可以找到其中最大的两笔交易分别转了 2000eth 和 1000eth。

其实我们可以知道这是黑洞地址,我们猜测大概率是因为用户输错了,但是这种情况如果在一条金融公链上面产生了,是没有办法被顾客容忍的。

上海路演 | ZVChain 首席科学家吕晟珉受邀发表 DEFI 主题演说

另外一点就是,现有区块链大部分都是使用地址进行转账,用户需要手工输入几十个随机的字符来进行交易,而在字符输入时我们难免会产生一两个错误,这样的转账大概率就会转到一个无人地址,这也是目前比较缺陷的地方。 ZVChain 的创新解决方案 为了解决这三个问题,ZVChain 主要从三个架构层次来进行设计。首先是系统层,我们设计了一个 chiron 共识,它是一个基于 VRF 算法构建的 pos 共识。

上海路演 | ZVChain 首席科学家吕晟珉受邀发表 DEFI 主题演说

刚才讲到 pow 主要是对数据的确认上面存在着风险,我们采用 pos 共识是通过提案和验证完成一个铸块的过程。由于时间关系,Chiron 共识在区块链共识层面的安全性,高效性,去中性化的特性,在这里我不详细表述了,感兴趣的朋友可以关注 zvchain 公众号来阅读,这里着重讲述一下针对上述问题的解决方案。 ZVChain 的机制,用户是通过质押来申请成为矿工,然后系统针对候选的矿工进行随机分组,产生多个用户组。所有的矿工都会分为若干组,系统会在若干组内随机去选择工作组完成铸块这个工作。 这样做的好处在于,用户或者矿工是能够感知到整个网络的健康状况的。

举个例子,我们在 ZVChain 系统里定义了确认块的概念。当某个区块后续串接的区块工作组覆盖系统当前所有工作组的三分之二,我们就定义该区块是一个确认块。我们刚才说所有矿工是被分组的,我们是可以知道在某一时刻系统是分了多少个组,其实也就可以把它看为一个数学问题。

上海路演 | ZVChain 首席科学家吕晟珉受邀发表 DEFI 主题演说

比如说我有 50 个不同颜色的球放在一个袋子里面,每次从里面抽出一个再把它放回去。如果抽 100 次的话,有 99.99% 的概率是可以满足 70% 以上的球至少被抽到一次,即有 35 以上个球被抽中过。把这个球替换成区块的工作组也就是说某区块后续串接的 100 个区块,至少应该有 35 以上个组会被随机抽取到。 回到刚才这个问题,如果中美网络断开了,那就变成两个子网,变成两个子网以后,任意一个区块后续串接的区块的工作组的的分布是不能满足这些条件的。所以通过这个机制,用户可以根据区块工作组的分布感知到网络的状况。 这个优点在于,如果这个区块满足后面跟的这些区块都是随机分布的,那这个块就可以认为是被确认的。

我们知道现在以太坊提出 Casper 项目,主要的一个原因也是希望通过 POS 来进行 check point 机制。它的这个机制本身来说也是希望构建一定比例的 POS 节点,对某个节点来进行投票,如果三分之二的节点认可,那这个节点就被固化了。

上海路演 | ZVChain 首席科学家吕晟珉受邀发表 DEFI 主题演说

所以按照这个机制来做的话,当有确认块产生,可以近似看作全网 stake 的 2/3 认可了该区块,解决了交易确认的固化时间的问题,另外,通过区块工作组的分布可以确认网络的状况。对用户来说可以查询网络状况的情况,他可以选择在网络状况良好的情况下交易。

随机选组员建组以及每轮选工作组所用的随机数是 Chiron 共识的基石,ZVChain 整个 chiron 的算法是基于 BLS 的真随机数算法。 再说账户层,我们对交易有一个匿名交易的选项,匿名交易的算法是用到了椭圆曲线半同态加密,这边会比较偏理论,我大致讲一下这个思路。在交易里面我们通过椭圆曲线对金额进行加密,然后把这个交易传给矿工的时候,保证矿工能进行数据验证、账户更新,并校验区块 Hash 是否正确,但无法知晓交易具体的金额。 同时 ZVChain 的账户同时支持实名账户(KYC)和匿名账户,匿名账户余额以及匿名账户之间的转账金额是同态加密的,所以不可见。实名账户的余额以及交易金额是透明可见的,支持小额,高频交易。用户可以自行选择实名交易或者匿名交易。

上海路演 | ZVChain 首席科学家吕晟珉受邀发表 DEFI 主题演说

第二个是我们为了监管的需要,设计了匿名账户必须由实名账户映射生成。系统的多个守护节点参与实名账户与匿名账户的映射关系,通过守护节点的混淆,实名账户与匿名账户的关系是隐秘的,即其他人无法知晓两个账户之间的关系。当有监管需求时,以社区治理方式开启投票,多数人认可时,可以反解出账户持有人。 在应用层,地址转账给用户不良的体验,我们采用类似 EOS 的账户体系,账户名由用户自行申请,可便于记忆和使用。由于上述讲到,zvchain 有实名账户的存在,交易提供“注册账户交易”的选项,当用户选择该选项时,若输错接收方账户或地址,系统会判别接收方地址是否实名注册,若不满足则该交易失败,避免用户错误转账的风险。 以上是 ZVChain 在 DEFI 公链的架构设计与创新层面的详细解说,目标是为金融公链注入更多可能性。

来源链接:mp.weixin.qq.com