Rollup的zk-SNARKs 性能瓶颈及解决方案探索

金色财经专栏 2021-02-23 16:00 5 0条评论
Rollup的zk-SNARKs 性能瓶颈及解决方案探索

一、它山之石,可以攻玉

 

 

Rollup是当下最火的以太坊扩容方案,但其所依赖的零知识证明算法zk-SNARKs 的性能问题是制约其大规模推广的主要因素之一。

笔者结合当前区块链软硬件加速方案的代表:HPB芯链的BOE加速引擎,来简单聊聊对zk-SNARKs性能瓶颈的可行探索。开始之前,我们先回顾下ETH目前的扩容方案的现状。

 

二、以太坊TPS性能之殇

NY7gXbvWxLzn5wGPdCM1XkP03JO4iFiU0fqiDF5c.png

 

以太坊2.0启动在即,近期的质押推进比较顺利,同时欧美市场上合规的数字货币投资基金也正式推出ETH投资基金,让ETH有望接棒BTC来主导的这次涨幅周期。

 

在社区对2.0无限期望的同时,如果有效扩容的问题却迟迟无法达成一致意见,依旧是社区讨论较多的话题。

 

早在多年前以太坊社区就意识到了可扩展性的重要性,Plasma、状态通道等概念相继提出,但发展至今实际推行仍然遥遥无期,并且有非常多的问题,例如要求用户定期上线以及数据可用性问题,制约了 Plasma 的发展。

 

特别是在DeFi、NFT等应用带动的用户快速增长后,社区才真正的感受到TPS问题如同魅影一般伴随在ETH创立到至今,且严重制约着ETH生态的发展。

 

相比众多方案, Rollup扩容方案获得了以太坊联合创始人 Vitalik Buterin的支持,被推荐为当前可选的最佳方案进而推动以太坊 Layer 2 扩容。

 

 

三、Rollup之光

 

Rollup解决方案推出已经有2年多了,Rollup 技术解决了之前 Plasma 暴露出的问题,提供了和以太坊 Layer 1 (也就是以太坊自己) 相同的数据可用性和安全性,而且还能极大提高网络的吞吐能力,同时降低单笔交易成本。正因如此,虽然很多人在广义上称 Rollup 为 Layer 2 的技术,但事实上其却是介于 Layer 1 和 Layer 2 之间 。

 

Rollup 的核心理念很简单,就是将原本散布在区块中的大量交易数据,打包成一笔「浓缩」的交易,发布到链上。为确保其中每笔交易的有效性,各种 Rollup 方案设计了不同的机制,以确保整个过程的安全性与 Layer 1 保持一致。

 

zk Rollup以零知识证明 zk-SNARKs 的密码学协议确保交易的安全性,而 Optimistic Rollup则继承了 Plasma 的 惩罚机制 ,以制约节点的作恶行为。

 

 

四、零知识证明 zk-SNARKs 

Rollup的核心技术之一就是零知识证明。

 

零知识证明(Zero-Knowledge Proof, ZKPs)于上世纪80年代由S.Goldwasser、S.Micali及C.Rackoff提出,被称为最小泄露证明系统,也是一种基于概率的验证方式。它的全称是「 简洁化的非交互式零知识证明 」 (zero-knowledge succinct non-interactive argument of knowledge) 

 

零知识虽然出现的时间较长,但仍有许多问题需要进一步努力探索,近年来已成为密码学研究的核心课题。零知识证明的基本理论是当代大部分密码学协议的基础,对当代密码学产生了深远的影响,在广泛的信息安全协议的设计中起着很大的作用。零知识证明,通俗的说,就是证明者可以在不给验证者透露任何自己的资料的前提下,也能让验证者相信某个信息是正确的。它在实质上是一种协议,在这个协议中,一方面关系到验证者,另一方面关系到证明者。其中的一方,我们称为证明者,通常用P表示,另一方我们称为验证者,通常用V来表示。在协议执行过程中,证明者向验证者V声称已收获了一些信息,通过一系列互动验证P和V,验证或证明,或拒绝一个声称,在这一过程中,验证者V始终没有得到任何关于证明者P的具体内容信息。

 

在Rollup解决方案中,它通过将交易聚合,仅需要在链上进行一次交易,就可以验证多笔其他交易。而打包交易和验证交易的方式是通过 zk-SNARK 技术实现的,这样就能大幅度减少交易成本,确保安全性,也可以解决 Plasma 之前遇到的问题。

 

 

五、zk-SNARKs也遇到了性能问题!

     

      技术社区对zk-SNARKs的性能进行了详细的测试和验证, zk-SNARKs算法安全性依赖于底层选取的椭圆曲线,发现目前的性能较差,计算复杂度主要来自于底层依赖的椭圆曲线配对运算。

     目前分析市场上零知识证明有使用 BN254椭圆曲线,生成一笔隐私交易对应的零知识证明需要40 s左右,并占用约4GB的内存,这导致了无法在现有的移动设备上使用 零知识证明算法,并且40s的时间也无法匹配现实生活中的高并发场景。  

      但这一切还不够,我们来测算下当前TPS,目前技术社区号称百万的TPS的Rollup按目前zk-SNARKs的性能预估,TPS最高为600左右。

    笔者从技术社区找到并分析了两种 Rollup 方案 ZK Rollup 和 Optimistic Rollup 的对比数据,分别在可扩展性、延迟、通用性、安全性上等方面进行了比较。

BXeSUe2kWnFxBUlIskNzKH27B0vmTolDzN7xQRj5.png

 

六、双线性映射的椭圆曲线是什么?

BN254椭圆曲线来源于双线性映射的椭圆曲线。

 

目前用来实现双线性映射的椭圆曲线根据参数设置不同主要分为以下两类 :

 

BN (Barreto-Naehrig)曲线:一簇易于做双线性映射的椭圆曲线 , 根据签名长度可分为 BN-254、BN-381 和 BN-512 等等。

 

BLS (Barreto-Lynn-Scott)曲线:一簇稍微古老的 Pairing 友好的椭圆曲线,代表曲线为 BLS12-381。

 

BN-254 的曲线,有研究报告使用数域筛法证明,该曲线安全级别只能达到将近 110 比特安全。

而 BN-381 和 BLS12-381 曲线均能达到 128 比特安全,安全性提高了 16%,而相比 BN-512 的安全级别虽然更高,但随之带来的是系统吞吐量下降以及额外的数据存储开销。

 

比特币使用了基于 secp256k1 的椭圆曲线的 ECDSA 作为其数字签名算法,而以太坊也沿用了这一方案。 通过以上对比来看,两种算法都是椭圆曲线的一脉相承。

 

七、HPB BOE加速芯片原理介绍

在具体讨论前,我们先来了解HPB是如何提升区块链主网TPS性能的,这一切都离不开BOE加速引擎。

 

HPB芯链独创的BOE技术即区块链加速引擎(Blockchain Offload Engine),包括BOE硬件、BOE固件、以及与之匹配的体系软件,通过结合CPU串行能力和FPGA/ASIC芯片的并行处理能力,实现高性能和高并发计算加速,也就是将本来占用CPU运算资源的各种与网络通信及计算相关的功能通过一颗片外的芯片独立去实现,以降低CPU负担,实现加速的功能.

 

BOE由4个部分组成:

 

1、TCP/IP引擎(TOE):高速优化以太网系统的吞吐量

2、MAC模块:处理从以太网电缆传输的数据包

3、椭圆曲线数字签名算法(ECDSA)模块:

执行高速签名验证,该模块对创建每秒能生成大量电子签名的系统至关重要。

4、硬件随机数生成器:生成随机数以保护交易,提高加密通道的安全性和可靠性

 

七、Rollup也可以通过BOE进行加速!

 

在BOE的4个组中部分中,我们可以看到BOE最大的特色之一是对椭圆曲线数字签名算法的加速。而且在第六小节介绍的时候,我们会发现BN254椭圆曲线是比ECDSA算法复杂度低。从这个方面来看,BOE完全可以通过改造,来支持对zk-SNARKs底层算法的加速。

 

因为BOE底层采用的是FPGA可编程芯片研发的专用加速芯片服务器,完全可以兼容或者加入对zk-SNARKs底层零知识证明算法的支持,来解决目前zk-SNARKs性能问题。

 

从HPB先前公布给社区的文件中,BOE加速芯片对ECDSA加速在10倍以上,参考目前zk-SNARKs的实际性能在600TPS左右,保守估计至少可以提升至6000TPS甚至更高(因为其算法复杂度比ECDSA要小)。

 

八、HPB的发展未来

 

孙子兵法云:故举秋毫不为多力,见日月不为明目,闻雷霆不为聪耳。

 

上面叙述的这么多,就是为了引出第七小节。

 

HPB芯链作为17年的老项目,首次提出了全球首创的软硬件结合的区块链加速方案,其BOE加速芯片业界仍然无法超越;主链在18年9月上线,运行至今全球有100多个BOE加速节点,目前TPS峰值也稳居在5000左右。据闻HPB团队近期在主打以太坊平行世界市场推广,主链的虚拟机近期会升级支持最新的ETH虚拟机,也就是说他和以太坊有相同的账户体系和虚拟机,但却是高性能区块链。

 

笔者认为,社区在苦苦追寻ETH Layer 2 的性能扩展解决方案,为什么没有人来关注HPB芯链这么好的ETH高性能侧链?

 

或许大家已经习惯了软硬件分类解耦的设计模式吧?但是这个世界上怕就怕的是画地为牢。

 

本文从当前ETHLayer 2 扩容方案的瓶颈角度,另辟蹊径,以独树一帜的HPB芯链作为标的进行对比分析,畅想如果目前HPB也采用zk-SNARKs的解决方案,并把该算法性能问题通过固化在BOE加速引擎之上芯片来加速解决,那么?这个思考就交给读者吧。

 

文章参考了大量的技术社区的文献,但毕竟不是专业的算法研究人员,难免有纰漏之处,烦请联系笔者斧正。

相关文章
更多精彩
    没有任何数据额
评论留言-需认证后才能回复
留言
  • 消灭零回复