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

评论

所有评论

推荐阅读

  • 分析:比特币跌破6.6万美元或引发10%-20%深度下跌

    3 月 21 日,持牌市场技术分析师(CMT)Aksel Kibar 表示,比特币潜在上升楔形形态的下边界支撑位位于 66,000 美元,若跌破可能引发熊市反转。上升楔形作为经典技术形态,通常在上涨趋势末期出现,预示价格动能衰竭,历史数据显示类似下跌突破确认后平均回调 10-20%。

  • 白宫称特朗普没有向伊朗派兵的计划

    3 月 20 日,一位白宫官员表示,尽管有新的部队调动以及可能封锁哈尔克岛的报道,特朗普「没有」向伊朗部署军队的计划。这位官员补充说,美军「随时可以夺取哈尔克岛」,但目前仍保留多种选择,不会透露具体战略。

  • 美国向伊朗增兵引发市场恐慌,金银、美股快速下跌,比特币跌破7万美元大关

    3 月 20 日,据 Bitget 行情信息,报道称美国将向中东增派兵力后,现货黄金向下触及 4550 美元/盎司,日内跌 2.19%。现货白银日内重挫 6.00%,现报 68.45 美元/盎司。美元指数 DXY 日内涨超 0.5%,报 99.76。此外,标普 500 指数跌幅扩大至 1%、纳斯达克指数现跌 1.36%。而短期利率期货价格显示,市场预计美联储很可能在 12 月加息。另据 HTX 行情信息,比特币跌破 7 万美元,现报 69761.56 美元。此前消息,美国正在向中东派遣三艘军舰,并向中东增派数千名海军陆战队员。

  • 伊朗最高领袖就伊朗新年发表书面贺词

    3 月 20 日,伊朗最高领袖穆杰塔巴·哈梅内伊刚刚就即将到来的伊朗传统节日诺鲁孜节(3 月 21 日),也就是伊朗传统新年发表书面贺词。穆杰塔巴表示,过去一年伊朗经历多轮「军事与安全冲突」,造成包括军方指挥官和民众在内的人员伤亡。他指责以色列在美国支持下对伊朗实施袭击,并称相关行动未能达到其预期目标。在谈及国内局势时,穆杰塔巴表示,外部势力试图通过经济压力和舆论手段影响伊朗社会稳定,但伊朗民众的动员能力和社会凝聚力有效挫败了相关企图。经济方面,穆杰塔巴强调,应通过发展「抵抗经济」、改善民生和基础设施建设来增强国家韧性。在外交层面,他表示伊朗将继续重视与邻国关系,呼吁包括巴基斯坦、阿富汗等在内的地区国家加强合作与团结。(CCTV 国际时讯)

  • 美CFTC发布加密资产与区块链业务FAQ,强化监管规则一致性

    3 月 20 日,美国商品期货交易委员会(CFTC)主席 Mike Selig 在 X 平台发文表示,该监管机构已发布关于加密资产及区块链相关业务的常见问题解答(FAQ),进一步明确注册机构及交易实体的合规指引。据悉,其中内容涉及围绕代币化抵押品及数字资产作为保证金等问题,补充解释了此前发布的两份员工函(代币化托管指引与数字资产保证金无行动豁免指引),为市场参与者提供更清晰的操作框架。Mike Selig 补充称,随着「Project Crypto」成为联合推进项目,与美国证券交易委员会(SEC)保持一致,也是推动加密监管规则清晰化与统一化的重要一步。

  • 特朗普:伊朗已经没有领导人可以对话

    3 月 20 日,特朗普表示,伊朗已经没有领导人可以对话了,也没人想再当伊朗领导人了。

  • Tom Lee支持的WLD财库公司Eightco增持价值4000万美元OpenAI股份

    3 月 20 日,据 The Block 报道,Eightco 宣布增持价值 4000 万美元 OpenAI 股份。由此,公司已向 OpenAI 投资了总计 9000 万美元。Eightco 最近任命 Bitmine 董事长 Tom Lee 为董事会成员,同时也是 WLD(由 Sam Altman 支持的加密项目 World 的原生代币)的最大公众持有者。3 月 12 日,Eightco Holdings 宣布获 1.25 亿美元融资承诺,BitMine 领投。

  • 标普500指数跌幅扩大至1%

    Cointime 报道,行情显示,标普500指数跌幅扩大至1%、纳斯达克指数现跌1.36%。

  • 市场预计美联储很可能在12月加息

    3 月 20 日,短期利率期货价格显示,市场预计美联储很可能在 12 月加息。(金十)

  • Web3数据和AI公司Validation Cloud完成1000万美元新一轮融资

    Web3数据和AI公司Validation Cloud宣布从True Global Ventures获得1000万美元融资,该公司计划利用这笔资金扩展其AI产品,实现对Web3数据的无缝访问。 据介绍,该公司的产品平台由三个部分组成:质押、节点API以及数据和AI。在质押方面,Validation Cloud的质押资产已超过10亿美元。Validation Cloud的一些客户包括 Chainlink、Aptos、Consensys、Stellar和Hedera。