从数据分析和密码学的角度,结合微软亚洲研究院可信系统研究小组

游戏知识 2年前 (2022) 李武
0

编者按:区块链技术是近年来的热门话题。无论是比特币以太坊密码货币价格的大幅波动,还是各国政府机构区块链技术研发的大力投入,都说明区块链技术已经处于时代风口浪尖。本文数据分析和密码学的角度,结合微软亚洲研究院可信系统研究小组最近发表的两篇论文,介绍了区块链技术的相关现状和技术趋势

区块链是一个复杂的点对点系统,包括技术部分(如网络、密码学、虚拟机等),以及对生态中各个角色的决策(如攻击者共识维护者、矿工交易所等)。例如,区块链中节点需要根据技术部分运行。同时,根据自身利益,也可以采取相应的决策,对区块链系统产生积极或消极的影响

微软亚洲研究所可信系统研究小组多年来一直在探索区块链技术的前沿发展,并对技术和生态部分进行了长期的研究。因此,可信系统研究小组的研究人员从技术和生态两个角度阐述了区块链技术的相关现状和未来趋势:1。生态部分,从数据分析的角度研究共识维护者的行为和发展趋势; 2。技术部分探索如何更有效地为区块链系统服务,以研究最受欢迎的密码技术之一-零知识

数据分析-以太头部三大矿池计算能力53%

区块链系统以其不可伪造、全过程痕迹、可追溯性、开放透明、集体维护等特点而闻名。金融供应链管理医疗卫生等领域也在利用其特点积极部署区块链系统。但基于工作量的共识(Proof-of-work,PoW)在区块链系统中,仍然存在威胁系统安全的51%计算能力攻击,也就是说,如果某种力量在系统中拥有51%计算能力,则有可能颠覆系统。

实际上,头部矿池控制着大量的计算能力,并具有威胁系统安全的潜在力量。如图1所示,以太坊头部的三个矿池(Spark Pool,Ethermine,F2Pool)已经掌握了占全网53%以上的计算能力,已经能够发起51%计算能力攻击。此外,其他 PoW 区块链也有头部矿池掌握大部分计算能力的情况。

从数据分析和密码学的角度,结合微软亚洲研究院可信系统研究小组

图1:以太坊算力分布图(来源于 Etherscan,2021.03.22)

为了深入了解和分析区块链系统,微软亚洲研究所和清华大学的研究人员首次对以太坊矿池参与者进行了大规模研究。通过数据分析,研究人员了解了矿池参与者的计算能力分布和采矿行为,进一步描述了以太坊计算能力的分散程度,并发表了论文Characterizing Ethereum’s Mining Power Decentralization at a Deeper Level。全球计算机网络领域的重要会议 INFOCOM 2021 接收。

论文地址:https://www.microsoft.com/en-us/research/uploads/prod/2021/02/infocom-camready.pdf

从数据分析和密码学的角度,结合微软亚洲研究院可信系统研究小组

在文章作者中,曾丽仪来自清华大学,现为微软亚洲研究所实习生,与微软亚洲研究所创新工程组郭中新、可信系统研究组陈洋、陈硕、张宪在区块链研究方面有长期合作。

以太坊的采矿生态结构如图2所示。该区块记录了来自矿池经理或独立矿工的采矿账户。他们可以直接获得系统发布的采矿奖励,然后通过链上交易分发给矿池参与者。过去,分析计算能力分散的研究主要集中在分析头部矿池的计算能力分布上,而忽略了其他采矿参与者的计算能力。因此,微软亚洲研究所的研究人员认为,以太坊计算能力分散的研究不仅限于分析采矿节点(矿池和独立矿工)的计算能力分布,还应考虑采矿行为和计算能力分布,为测量计算能力分散和防止计算能力集中的解决方案提供更多的洞察力。

从数据分析和密码学的角度,结合微软亚洲研究院可信系统研究小组

图2:以太坊采矿生态结构图

然而,以太坊账户是去实名化的。仅从链上交易无法准确识别矿池参与者的账户。目前,学术界还没有关于矿池参与者的真实数据集。因此,有必要结合链上链下的多个数据源来识别矿池参与者账户和矿池分发奖励交易。数据集识别过程如图3所示。

从数据分析和密码学的角度,结合微软亚洲研究院可信系统研究小组

图3:以太坊挖矿数据集识别流程图

因为有些矿池会在 Etherscan(以太坊搜索引擎)公开账号信息,一些大型矿池也会为挖掘参与者提供 查询挖掘收入信息API,用于识别以太坊账户是否属于其矿池参与者。因此,研究人员可以在 Etherscan 爬上公开身份的矿池账号,从以太坊区块链数据库提取识别的矿池发出的交易,收集这些交易的接收账号,用于矿池 API 识别。能被矿池 API 识别的帐户可以确认为矿池参与者帐户,然后将识别的矿池提取到矿池参与者的奖励交易中。

微软亚洲研究所和清华大学的研究人员通过对以太坊矿池参与者的第一次大规模识别和分析,创建了第一个大规模以太坊采矿数据集 E-PAR。该数据集涵盖了以太坊自上线以来至2020年4月10日近5年的数据(2015年7月30日),包括所有矿工账户的奖励交易、识别的矿池账户、识别的矿池参与者账户和发送给矿池参与者的奖励交易,覆盖了近两年占全网平均计算能力的77%。

E-PAR 数据集揭示了矿池下矿池参与者的计算能力分布、矿池参与者同时参与多个矿池或在多个矿池之间跳跃的挖掘行为以及矿工选择加入矿池的多种原因,进一步丰富了以太坊计算能力分散评价,讨论了矿池计算能力的可控性,推理了现有研究工作提出的防止矿池集中计算能力的可行性,为区块链社区带来了基于数据驱动的深入计算能力分布研究。如果您想了解更多详细信息,请查看数据集。

数据集 GitHub 地址:https://github.com/yangsrc/pool-dataset

密码-零知识证明了区块链性能的提高

微软亚洲研究院的研究人员除了从数据分析的角度分析区块链生态的发展趋势外,还从技术的角度探索了利用现代密码学提高区块链性能和隐私保护的重要技术零知识证书。

零知识证明(Zero-Knowledge Proof)它是20世纪80年代初现代密码学的重要基础之一,也是现代密码学研究的热点。它在隐私和可验证之间建立了一座桥梁,原则如下:证人 P 不能透露w 向验证者 V 发证(proof),证明 P 我知道一个 w,使给定公开输入 x、公开输出 y 和程序 f,满足 f(x,w)=y。例如,假设 P 是金融机构,V 是监管部门,w 涉及用户交易的隐私数据,f 是验证交易是否合规的程序,x 为公开数据,y 是否合规,零知识证明将确保金融机构能够向相关监管机构证明涉及用户的交易是合规的,而不披露用户隐私。

由于零知识证明了其独特的性质,它被广泛应用于区块链系统,以增强区块链的隐私保护,增加区块链的交易吞吐量:

  • 增强隐私:由于区块链上的交易数据是公开的,各种交易数据很容易提取和分析,导致隐私泄露,这就是为什么业界认为区块链缺乏隐私保护机制的原因。在零知识证明的支持下,区块链中的用户可以隐藏相关的链接关系和交易金额,并允许区块链矿工验证交易的正确性,到隐私保护的目的。目前,零知识证书已广泛应用于各种隐私保护区块链,如 Monero、Zcash 等(了解更多相关细节,请参考文章《区块链上的隐私与监管问题》)。
  • 提高吞吐量:除隐私问题外,区块链的低吞吐量也受到业界的批评。例如,以太坊 DeFi 应用程序的兴起兴起,以太坊交易量急剧增加,造成拥堵,导致交易成本高。使用零知识证明技术,用户可以先将相关交易发送到交易聚合节点,然后聚合节点再生成大量交易的有效零知识证明,并将相应的证明发送给矿工验证合同,节省矿工重新计算大量交易的费用,大大降低聚合交易的交易成本。该技术被称为 zk-rollup,目前,许多项目正在进行相关开发,如 zkSync,zkSwap。

回到零知识证书本身,证书生成过程往往涉及大量复杂的密码计算,使生成证书的时间特别长,大大超出了应用程序可接受的延迟范围,大大限制了零知识证书的使用场景。例如,由于 Zcash 以前生成证书的费用太大,普通用户使用大量无隐私保护的交易方式,导致隐私泄露;另一个例子是 zk-rollup 技术处理交易所涉及的程序复杂性相对较低。一旦复杂性增加,聚合节点生成证书的时间过长,影响交易的实时性。

针对这一问题,来自微软亚洲研究所、北京大学、清华大学和上海树图区块链研究所的研究人员联合提出了名为PipeZK高效硬件加速系统可以证明零知识程加速超过10倍,证明过程延迟下降了一个数量级。PipeZK 系统可广泛应用于隐私保护和区块链 Layer-2 技术场景中,并可显着增强区块链的交易隐私保护,提高交易吞吐率。相关论文“PipeZK: Accelerating Zero-Knowledge Proof with a Pipelined Architecture全球顶级学术会议 已被计算机系统结构领域使用ISCA’21 接收。

论文地址:https://www.microsoft.com/en-us/research/publication/pipezk-accelerating-zero-knowledge-proof-with-a-pipelined-architecture/

zk-SNARK 协议是近年来最流行、最有效的零知识证明协议之一,其证明过程主要由两部分计算(如图4所示):一种是高次多项乘法(以下简称 POLY),一是大规模椭圆曲线向量积(以下简称 MSM)。通过深入研究,研究人员发现这两部分都可以使用高效的装配线(Pipeline)并行加速,让 ASIC(application-specific integrated circuit,专用集成电路)计算资源高效,可与 协调CPU 计算这两部分。

从数据分析和密码学的角度,结合微软亚洲研究院可信系统研究小组

图4:zksnark 的主要计算部分:多项乘法(POLY)椭圆曲线向量乘(MSM)

针对 POLY研究人员主要使用 number theoretic transforms(NTT)处理算法(如图5所示)zk-SNARK 中 POLY 计算规模过大,导致 ASIC研究人员设计了一个高效的过程来解决电影上计算资源和电影下内存访问速度过慢的问题NTT 迭代分解为小规模 NTT,并使用 FIFO 等数据结构可以提高内存访问效率。此外,研究人员还使用 data tiling 以及片上矩阵转移来提高片下内存的效率。PipeZK 系统,POLY 部分可加速20倍以上。

从数据分析和密码学的角度,结合微软亚洲研究院可信系统研究小组

图5:POLY 部分优化设计

针对 MSM研究人员使用了高效的 Pippenger 算法处理椭圆曲线的向量乘,分析相应标量部分的数据分布,采用适当的调度机制,优化电影资源利用,提高平行度(图6)。研究人员还进一步使用了一种粗粒度的处理方法ASIC 上的计算单元解耦,使其能够独立处理计算任务,避免计算单元闲置。实验结果表明 PipeZK 系统可以使 MSM 部分延迟减少了77倍以上。

从数据分析和密码学的角度,结合微软亚洲研究院可信系统研究小组

图6:MSM 部分优化设计

研究人员对各种测试集和零知识证书的应用进行了测试PipeZK,所有这些都可以实现可观的性能加速。例如,在一系列密码电路(如 AES、SHA256 等)零知识证明,PipeZK 甚至比目前最受欢迎的 还要好GPU 算法快(近)20倍。Zcash 生成交易证明,PipeZK 系统还可以加速证明过程的延迟超过5倍。经分析,从终端到终端的性能瓶颈集中在 witness 生成和 G2 曲线计算,相信通过后续优化,加速比将进一步提高。

区块链的研究正在蓬勃发展,数据分析和密码学研究只提供了两个角度。区块链系统/共识性能优化、合同安全等其他方向Layer-2 技术和应用创新近年来也产生了大量的工作。微软亚洲研究所也在从区块链的其他方向进行创新和探索,未来将为您带来更多的前沿工作介绍。

可信系统研究小组正在招收对区块链、密码学、分布式系统、信息安全、数据分析等领域感兴趣和基础的实习生。感兴趣的学生可以向 发送简历iblockchain-hiring@microsoft.com。

暂无评论

暂无评论...