Cointime

扫码下载App
iOS & Android

一文解读 APK 证明的强大功能与轻客户端实践

项目方

共识机制(Consensus Mechanism)是区块链事务达成分布式共识的算法。区块链节点共识过程中,所有节点都需要对整个区块进行签名,并将区块数据、节点公钥、签名数据等数据存储在区块中。区块链主要使用数字签名来实现权限控制、识别交易发起者的合法身份,以防止恶意节点冒充。

而随着区块链技术的发展与广泛应用,签名相关存储数据也会不停增长。区别于传统的应用,理论上区块链上的数据只会不断地增加,海量签名带来了海量数据,给签名验证带来了巨大负担。验签时所需要使用的公钥究竟有多大?不同的签名算法数据也有所不同,一般而言 ECDSA/Schnorr/EdDSA 算法 256 bits、BLS 算法 384 bits,如果有上万公钥在验证时候被需要,那么所需的存储的数据量十分庞大。

由上可知,在算法层面大量验证信息需要被存储、被处理,那该如何解决区块链网络繁重的验证问题?近期,Web3 基金会的研究员 Syed Hosseini 介绍了完全简洁的 BLS 聚合签名 APK 证明的强大功能和验证示例。下面将为大家翻译整理 Syed Hosseini 报告中的关键内容,感兴趣的开发者可至文末查看所有参考文献的来源链接。

APK 证明技术所解决的问题

在传统的数字签名算法中,如果一个委员会有很多成员,验证者需要知道每个成员的公钥,并收集每个成员在签署过程中的签名信息,但是这样操作的验证成本非常高。

APK 验证是由 Web3 基金会研究人员设计和实现的一种协议。它允许验证者在不知道每个成员的个别公钥的情况下,验证由签署委员会的部分成员(如一组验证者集合)签署的事实。这项协议的关键之处在于,它利用了 SNARKs 技术,将验证所需的成本大大降低。下面将介绍其如何利用 SNARKs 技术和 BLS 聚合签名实现上述功能。

SNARKs 技术

首先让我们认识一下 SNARKs 技术,其是一种零知识证明的形式,具有以下关键特点:

  • 零知识:意味着除了特定陈述为真之外,不会透露有关证明者秘密输入的信息。
  • 简洁:意味着证明体积小,可以快速检查。这是一个至关重要的属性,因为它使系统高效且可扩展。
  • 非交互式:这意味着证明由从证明者发送到验证者的单个消息组成,不需要来回交互。这是通过称为 Fiat-Shamir 启发式的过程实现的,该过程将交互式证明转换为非交互式证明。
  • 知识论证:这是一个技术术语,本质上意味着计算上合理的证明,其中计算有界的验证者不能被计算无界的证明者说服错误陈述。

尽管 SNARKs 非常有潜力,但不可忽视的事,其在“可信设置”初始阶段会生成一些必须保密的参数。如果这些参数受到损害,整个系统的安全性就会受到损害。这导致了其他零知识证明系统的发展,如 zk-STARKs,它们不需要可信的设置,但该技术目前尚不成熟,未得到广泛应用。

而 APK 证明的 SNARKs 基于多项式协议和多项式承诺。其将在委员会成员的公共关键点坐标之间定义一组多项式关系。如果证明者能够说服验证者这些关系成立,那么验证者可以确定小组委员会的聚合公钥是正确的。即 APK 证明可以有效地验证多个成员的签名,而无需知道每个成员的具体公钥。

BLS 聚合签名

BLS 聚合签名是 Boneh–Lynn–Shacham 的简称,其最初由斯坦福大学教授 Dan Boneh 等人提出的一种签名方案。BLS 特点在于采用了基于双线性映射的椭圆曲线配对技术,以实现签名的验证与聚合,即 BLS 签名使用配对函数进行验证来节省区块空间。在运行 APK 证明时,并不需要验证 BLS 签名本身,只验证聚合公钥是否确实正确聚合,这只需要在 Einnₑr (BLS 公钥在曲线 Einnₑr 上定义)上添加功能,并且验证者在验证聚合公钥正确之前,永远不需要使用配对功能。

总之,APK 证明利用了一种承诺机制,只需要验证者拥有一个固定大小的已验证的公钥集合,就可以通过协议提供的简单的证明,来验证聚合签名的正确性。由此,其极大地简化了验证过程,并且减少了所需的信息交换量。这为构建安全可靠的去中心化应用和系统,提供了更加高效和可扩展的解决方案。

APK 证明的区块链轻客户端实践

目前,现有区块链上的计算和存储成本远高于现代手机浏览器中的成本。因此,受到手机等设备在计算能力方面存在的限制,很多区块链应用无法得到普及。目前轻客户端又依赖于全节点去执行大量操作,轻客户端需要发送多个请求来执行简单的操作,因此所需的总体网络带宽高于全节点的带宽。

此外,对于波卡生态而言,区块链互操作性的一个关键挑战是实现一个拥有高效且安全的链上轻客户端协议。现有的协议在验证方面要么缺乏责任制,要么效率低下。如 Cosmos 的采用跨链通信 IBC 协议,该协议的效率问题成为网桥中使用链上轻客户端验证器的障碍。而 APK 证明凭借高效的验证,为构建安全可靠的去中心化应用和系统,提供了更加高效和可扩展的解决方案。

责任制的轻客户端系统

Web3 基金会研究员定义设计并实现了第一个责任制的轻客户端系统(accountable light client system),其具有高效验证、安全等优势,且可作为核心模块集成到 SNARKs 友好的 PoS 区块链安全桥中。具体而言,该轻客户端系统将具有以下特点:

- 责任制:该轻客户端系统是负责任的。即如果轻客户端验证器被误导,并且其通信的记录被提供给网络,那么可以识别到大量行为不端的共识参与者。一方面,当向轻客户端验证器发送最少的数据时,在轻客户端系统上识别行为不端的共识参与者是具有挑战性的。另一方面,识别不当行为对于任何利益证明协议都是必要的,其安全依赖于识别和惩罚不当行为的共识参与者。

- 异步安全:即在共识的诚实假设下,该轻客户验证器不会被误导。即使它对网络的视野有限,如其只连接到一个节点,这可能是恶意的。这是其继承了区块链拜占庭协议的异步 (asynchronous) 安全特性,在异步的网路环境中,确定性质的协议无法容忍任何错误。

- 递增性:即它的简洁状态(Succinct State)是渐进更新的。有效的更新与桥接应用程序关系密切,而不是试图优化验证区块链起源的共识决策。

总之,责任制的轻客户端系统在使用 BLS 聚合签名和 SNARKs 技术的区块链之上轻松实现高效验证。作为 Polkadot 生态系统的一部分,目前开发人员正在将该轻客户端整合到 Polkadot 和 Kusama 中的 live Substrate bridge。

以下是利用此类证明设计的区块链轻客户端部分代码示例:

use std::cell::RefCell;use std::collections::HashSet;use ark_bls12_377::{G1Projective, G2Projective}use ark_bw6_761::BW6_761;use ark_ec::AffineRepr;use ark_serialize::CanonicalSerialize;use ark_std::{end_timer, start_timer};use ark_std::test_rng;use fflonk::pcs::kzg::params::{KzgCommitterKey, RawKzgVerifierKey};

示例全文请参阅:

https://github.com/w3f/apk-proofs/blob/main/bw6/examples/recursive.rs

轻客户端将为去中心应用程序的发展、促进加密网络的大范围采用提供关键推动力。如上文所述,APK 以技术创新实现强大的功能,进一步提高轻客户端协议的效率和可靠性,也期待该技术后续更多地应用到去中心化应用之中。OneBlock 将持续关注波卡与 Substrate 生态相关技术更新,希望能够为各位开发者提供一些启发。

参考文献

Fully Succinct BLS Signature Aggregation

https://github.com/w3f/apk-proofs

Accountable Light Client Systems for PoS Blockchains

https://eprint.iacr.org/2022/1205.pdf

Zero Knowledge Proofs, SNARKs, STARKs and Bulletproofs

https://medium.com/@alfonsocamblor/zero-knowledge-proofs-snarks-starks-and-bulletproofs-871bdbbafa99

Research Update: APK Proofs By Hand and Sage

https://medium.com/web3foundation/apk-proofs-by-hand-and-sage-3f5feb3fcca4

Accountable light clients From SNARKS

https://docs.google.com/presentation/d/16LlsXWY2Q6_6QGZxkg84evaJqWNk6szX/edit#slide=id.g19944a07c60_0_137

评论

所有评论

推荐阅读

  • 5月02日午间要闻速递

    1. BTC 突破 58000 美元

  • Securitize获得4700万美元融资,BlackRock领投

    专注于将现实资产数字化的迈阿密公司Securitize获得了4700万美元的融资,由BlackRock领投,Hamilton Lane、ParaFi Capital、Tradeweb Markets、Aptos Labs、Circle和Paxos等公司参与。此轮融资的一部分将用于进一步提升Securitize在数字资产证券生态系统中的地位。同时,BlackRock推出了首个基于以太坊的代币化基金BUIDL,投资者可以通过Securitize订阅该基金。该基金将100%的资产投资于现金、美国国债和回购协议,允许投资者在区块链上持有代币的同时获得收益。投资者可以24/7/365地将其代币转移给其他经过预批准的投资者。

  • Web3游戏Shadow War完成500万美元融资, Momentum 6领投

    游戏工作室Patriots Division已为其Web3游戏Shadow War在种子轮和 A 轮融资中筹集了 500 万美元,A 轮融资由 Momentum 6 领投,iAngels、Cointelligence Fund、Xborg、Andromeda VC、Cogitent Ventures 和 Cluster Capital等参投。

  • 5月02日早间要闻速递

    1. BTC跌破57000美元

  • ETH跌破2900美元

    行情显示,ETH跌破2900美元,现报2898.84美元,日内跌幅达到3.66%,行情波动较大,请做好风险控制。

  • BTC跌破57000美元

    行情显示,BTC跌破57000美元,现报56999.99美元,日内跌幅达到5.48%,行情波动较大,请做好风险控制。

  • 人工智能云服务提供商CoreWeave完成11亿美元C轮融资,Coatue领投

    专注于人工智能的云服务提供商CoreWeave宣布完成11亿美元C轮融资,本轮融资由Coatue领投,Magnetar(上一轮主要投资者)、Altimeter Capital、Fidelity Management&Research Company和Lykos Global Management参投。

  • 西班牙Web3视频游戏初创公司GFAL获得320万美元种子融资

    西班牙巴塞罗那的Web3视频游戏初创公司GFAL获得320万美元的种子轮融资,由Supercell Ltd和Mitch Lasky领投,Heinrich Zetlmayer、Bonduc Bioscience SL、BCNBCNLVC、David Fernandez、Bonsai Partners、Nekko Consulting和Inveready等机构参与。该公司打算利用这笔资金扩大核心团队并加速生产计划。GFAL由首席执行官Manel Sort领导,是一家利用从人工智能到Web3的技术开发和发布游戏的初创公司,旨在通过沉浸式游戏玩法让玩家享受游戏乐趣。该公司的2024年计划将建立在其游戏Elemental Raiders于2023年3月在移动端进行的软启动基础上。Manel Sort在评论中表示:“我们非常感激Supercell、Mitch和Heinrich对GFAL的信任。与Trip和Ilkka一起开展项目,与他们分享了在Digital Chocolate度过的许多激动人心和成功的岁月,这是一个梦想成真,我迫不及待地想向世界展示我们正在构建的高水平游戏。”

  • PolkaWorld:Kusama上的Coretime交易已开始

    4月27日消息,PolkaWorld 发文表示,Kusama 上的 Coretime 交易已开始,平行链时代谢幕。随着 Kusama 373 号公投的通过和执行,该提案将 Kusama 中继链运行时升级至 v1.2.0,并带来了 Coretime 的功能。紧接着,在上周五社区又通过了 Kusmaa 375 号公投,允许 Coretime 链开始 Coretime 的销售。当前,Kusama 正在进行续订期(Renew Period),即正在进行批量核心的售卖。

  • 全国政协委员吴杰庄建议香港参考IPO针对Web3提供创新融资模式

    金色财经报道,全国政协委员、香港立法会议员吴杰庄在香港文汇报刊文《顺应Web3势潮敢当数字经济「领头羊」》,文章指出发展Web3+,既有优势更含新挑战,港府已在方向上迈出了发展 Web3 和数字经济的重要一步,制订短中期的战略发展蓝图,确保政策和资源到位,推进Web3+应用场景建设。对焦 Web3 建立国际创新融资平台,既有利于香港发挥其传统金融优势,又有利于打造自身成为全球数字科技中心。建议参考现有企业赴港IPO的成熟模式,针对Web3提供一种创新性的融资模式,并且打造为推动业界发展的市场趋势与服务竞争优势,吸引海内外产业链的上下游在港聚集。