识算法是近年来分布式系统研究的热点,也是区块链的关键技术之一。我们从当前主流的共识算法特点入手,研究一下 VRF (可验证随机函数)为什么有可能成为破解「不可能三角」的一条切实途径。而作为早期运用 VRF 的金融公链,ZVChain 已在区块链与现实金融之间打造了一条实用通路,并在 VRF 领域有了更新的技术进步。
VRF 缘何在共识算法演变中崛起
众所周知,区块链是分布式网络账本系统,它区别于现有网络中心化的架构,用密码学和经济学共同打造创新的共识机制和算法,展示公开透明的计算过程,达成人人可信的公正结果。然而,与比特币相伴而生的区块链技术发展十年来,诞生的 PoW (工作量证明)、PoS (权益证明)、DPoS (委托权益证明)、PBFT (实用拜占庭容错)等各种共识算法,都无法突破业界公认的区块链「不可能三角」:即区块链网络无论采用哪种共识机制来决定新区块的生成方式,皆无法同时兼顾扩展性(Scability)、安全性(Security)和去中心化(Decentralization)这三项要求,至多只能三者取其二。
在区块链从 PoW 机制向 PoS 机制进化之路上,不可避免地会碰到一个核心问题:舍弃 POW 这种强算力型的随机算法后,PoS 应该采用何种低功耗随机算法可以保证矿工记账权益的公正公平性的同时,还能保障系统鲁棒性。从以太坊迟迟未能升级 Casper 看出,真随机数问题一直以来是 PoS 的核心问题。
在此情况下,VRF 算法近年来得到越来越多人关注,它是一种低能耗、高效率的随机数算法,并提供了非对称密钥可验证机制。
VRF 算法,由莫卡利教授于 1999 年提出。作为一种基于密码学的新型共识模型,VRF 能产生具有个体属性且可验证的随机数;这种算法适用于高度去中心化、节点需要主动竞争胜出而非被动指定的场景;VRF 最大的优点是安全性,具备后验属性、抗攻击能力强、对算力需求低(具有较高的经济性),以及能快速共识。
VRF 共识具备 PoW 算法的形,且算力要求低。你可以想象它是一个黑盒子,当你往黑盒子里扔进去一个东西,里面会随机生成一个结果。如何将 VRF 运用到共识验证当中去呢?VRF 的方式是让各个节点轮流往这个函数(黑盒子)里输入值,输入值为自己的私钥和一个全网都知道的随机数。如果输出的随机结果满足阈值条件,那么就由该节点进行记账。
VRF 拥有诸多优点,但也存在缺点。首先,全网通讯造成等待时间长,从数据上来看,就算很小的出块,也会有十秒钟左右来等待所有提案者收到 proof (凭证)并进行验证的时间;然后,验证步骤需要数轮,很繁琐复杂;最后,签名数据量大,占用带宽。VRF 不仅是要求网络通讯量多,数据存储开销也大,因为签名的结果都需要上链并受其他节点验证。总的来说,验证耗时、大量占用网络带宽,是 VRF 的主要缺陷。
从上图可以看出 Algorand、DFINITY 和 ZVChain 都采用 VRF 加其他验证方式的 PoS 算法,从技术上看,共识算法的类型趋于同类。
以 DFINITY 为代表的项目存在有系统安全问题(例如 DDoS 攻击、提案者与验证组联手作恶),ZVChain 尝试通过「后验方式」解决。简而言之,参与者用自己的私钥自行计算 VRF,若满足提案条件则成为本轮提案者,打包交易完成提案区块后,将提案区块和凭证(VRF proof)一起对外广播,其他参与者通过凭证计算才能确定其身份合法性。因此,在本环节任务结束之前,参与者的角色身份均保密,极大程度避免了被恶意者「腐化」或者 DDOS 攻击的风险。
另外,ZVChain 还进行了一系列增强设计:提案者多点并行方式给出提案区块,在验证组内竞争签名达成共识。而针对最严重的 51% 攻击,目前在业内有提出“系统健康度概念”,即超级中心需要控制 95% 的节点,才能发起类似比特币的 51% 攻击。这些增强设计也都是 ZVChain 的业内首创。
ZVChain 在共识阶段采用与 BLS 算法相似的门限签名算法时,通过采用不同的椭圆曲线,以及更安全高效的双线性对算子,可以在提案区块进行验证的同时达成共识。这意味着效率将大大提高——layer 1 (一层) TPS 达 3000 以上同时又可以保持签名数据量小、每轮产生唯一且不可预测的随机数等优点。
概括来说,ZVChain 通过 VRF 算法进行秘密抽签,选择多名提案者并行提案,再通过门限签名算法来达成验证组内共识,优化了 Algorand、DFINITY 中存在的上述问题。
除了共识算法,其他方面对比如下:
众所周知,基于 VRF 共识算法的 Algorand 跟 DFINITY 在募资方面均获得很大成功,但开发进程缓慢,很多技术细节无法明确获知,Algorand 今年 6 月上线测试,另一项目 DFINITY 尚未上线,而 ZVChain 已于年初测试网上线,在三个项目中目前进展最快、开发进程也较为稳健。
ZVChain 双重账户专注服务 DeFi 应用场景
基于各家跨链技术的区别,今年许多热门的跨链项目其交易信息除了交易双方,其他人没法获知交易细节,监管机构也很难进行监管。ZCash、Grin 等匿名币公链被很多国家监管层所排斥,也就无法真正落地,为商业应用更好的服务。为了解决这一核心痛点,ZVChain 从底层架构出发,构建出一套符合商业逻辑的账户体系,在保护用户隐私的前提下,满足监管的要求。
今年,ZVChain 正式升级为专业化金融公链,用开源与去中心化的区块链技术为金融行业提供高安全、可监管、易扩展的数字金融基础设施和技术服务。
2019 年,除了共识算法的更新换代,DeFi (Decentralized Finance,去中心化金融)类项目的崛起引人瞩目,以太坊上有超过 100 个基于智能合约的金融 Dapp, 这些项目都以连接现实金融体系为目标,但目前却在区块链孤立存在。然而在现实世界中,各国商业经济体系无法独立存在,以货币而言,则通过货币汇率交易规则进行交易、兑换。ZVChain 的目标是打造去中心化、连接基于 DeFi 的各种数字金融应用的底层框架,这将极大便利用户使用区块链技术,用户在完成去中心化认证之后,便可以无缝使用各种区块链金融服务和体验,体验用数字货币实现实体经济的各种活动,例如借贷、理财、保险、支付等。
ZVChain 将从企业和消费者两端保障更好的金融流通性。在企业端:发展电子钱包、闪兑、与银行合作等,解决银行、商业企业、金融流通领域遇到的难点和缺点;在消费者端:希望实现数字货币的流动性,实现类似数字货币的支付宝应用,让用户数字货币流通、交易、支付成为现实。ZVChain 希望实现能摸得到、用得到的应用和场景,成为打通现实与虚拟壁垒的去中心化数字金融实用底层体系。
ZVChain 在业界推出独有的双重账户体系设计,其账户分为普通账户(Common account)、KYC 账户(KYC account)和匿名账户(Anonymous account)三种类型:
普通账户(Common Account)
类似比特币、以太坊,用户利用客户端程序自行产生一个非对称密钥对(私钥+公钥)得到一个区块链的账户地址,普通账户的余额(balance)、交易信息是和现有的以太坊、比特币是一样的,无数据隐私保护,明文保存,其他用户均可见。
KYC 账户(KYC Account)
个人或企业上传上个人或企业 KYC 信息,并附带一个指定的普通账户,向 ZVChain 系统申请 KYC 认证,待系统确认后,该账户地址即成为完成认证的 KYC 账户。KYC 信息上传时,需附带使用该地址私钥所产生的数字签名。系统通过数字签名验证来确认该用户拥有该账户地址的私钥。希望申请匿名账户的用户一定需要先有一个 KYC 账户。因为匿名账户的私钥会由 KYC 账户的私钥衍生得到。本质来说,KYC 账户是经过 KYC 认证的普通账户,所以 KYC 账户余额涉及的交易依然没有隐私保护的。建议 KYC 用户使用匿名账户交易,并且 KYC 用户可以拥有不止一个匿名账户。
匿名账户(Anonymous Account)
匿名账户的余额采用半同态加密的方式进行数据加密,矿工通过交易给出的零知识证明来验证交易的合规性。所以匿名账户的余额是隐私保护的,交易双方均是匿名账户的话,交易额也是不可见的(注:若交易一方是匿名账户,一方是非匿名账户,虽然匿名账户余额加密,但可从非匿名账户的余额变更得知该交易的金额)。
ZVChain 账户体系匿名账户的生成算法,是由用户提供的随机数 r 对应的公钥、守护节点公钥,以及其 KYC 账户公钥做为参数输入而产生的。形象地说,利用随机数 r 的公钥和守护节点公钥,对 KYC 账户公钥做了混淆得到匿名账户公钥。所以匿名账户的私钥是由 KYC 账户私钥经过数据混淆而得到的,他人无法获得匿名账户与 KYC 账户之间的关联。但出于监管考虑,匿名账户生成算法保证了通过守护节点提交各自的秘密片段聚合,可以反解出匿名账户对应的 KYC 账户。所以一旦出现用户有涉嫌违规行为,监管者可以找出与其交易的所有账户,非匿名的账户因为数据透明可以采用现有的监管策略,但对其中的匿名账户,ZVChain 也提供了解决方案:
1. ZVChain 社区发起协助投票。
2. 投票同意后,针对匿名账户使用的随机数 r 的公钥,守护节点计算秘密片段递交给固定用户,该用户聚合秘密片段,可以反解出该匿名账户来源于哪个 KYC 账户。
3. 算法保证仅有守护节点(计算秘密片段需要用到守护节点的私钥),且需要全部守护节点参与,才能反解出该关系。
其中守护节点由 ZVChain 社区产生,不会也不可能集中掌握在项目发起团队 ZVTech 手中,所以不必担心账户隐私的问题。
相比于 Algorand、DFINITY 表示其项目普遍适用于任何应用场景,ZVChain 的目标更清晰聚焦。长久以来,不管是比特币、以太坊或是 EOS,提供了加密数字货币的同时,无法打通实体金融与数字货币平台的鸿沟。拥有数字货币的用户虽然保证了隐私性,但这是以躲避政府监管、放弃法律保护为前提。ZVChain 正是从打破这个痛点出发,从底层架构构建出一套符合商业逻辑的双重数字账户体系,在保护用户隐私的前提下,满足政府监管需要。
今年 ZVChain 加强了社区生态建设,计划在下半年主网上线前代码全部开源,同时启动赏金计划,借助开发社区的力量让 ZVChain 成为真正安全的公链。
ZVChain 代币 ZV 确定为 50 亿枚发行总量,即将在两个月内在国外主流交易所上线,其中代币总量 15% 逐年释放给团队,以保证网络的持续升级;70% 由矿工挖出,释放周期约为 12 年;10% 将面向早期支持的机构,另外 5% 由基金会来促进社群开发等运营使用。
ZVChain 尽可能将代币均匀发放给尽可能多的参与者,充分调动开发团队、矿工和用户的主观能动性、发挥去中心化的力量,社区与技术强强联合,才能一起构建全球化、由技术驱动的顶级公链。