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

    共识机制(ConsensusMechanism)是区块链事务达成分布式共识的算法。区块链节点共识过程中,所有节点都需要对整个区块进行签名,并将区块数据、节点公钥、签名数据等数据存储在区块中。区块链主要使用数字签名来实现权限控制、识别交易发起者的合法身份,以防止恶意节点冒充。而随着区块链技术的发展与广泛应用,签名相关存储数据也会不停增长。区别于传统的应用,理论上区块链上的数据只会不断地增加,海量签名带来了海量数据,给签名验证带来了巨大负担。验签时所需要使用的公钥究竟有多大?不同的签名算法数据也有所不同,一般而言ECDSA/Schnorr/EdDSA算法256bits、BLS算法384bits,如果有上万公钥在验证时候被需要,那么所需的存储的数据量十分庞大。APK证明技术所解决的问题在传统的数字签名算法中,如果一个委员会有很多成员,验证者需要知道每个成员的公钥,并收集每个成员在签署过程中的签名信息,但是这样操作的验证成本非常高。APK验证是由Web3基金会研究人员设计和实现的一种协议。它允许验证者在不知道每个成员的个别公钥的情况下,验证由签署委员会的部分成员(如一组验证者集合)签署的事实。

    这项协议的关键之处在于,它利用了SNARKs技术,将验证所需的成本大大降低。下面将介绍其如何利用SNARKs技术和BLS聚合签名实现上述功能。SNARKs技术首先让我们认识一下SNARKs技术,其是一种零知识证明的形式,具有以下关键特点:零知识:意味着除了特定陈述为真之外,不会透露有关证明者秘密输入的信息。简洁:意味着证明体积小,可以快速检查。这是一个至关重要的属性,因为它使系统高效且可扩展。非交互式:这意味着证明由从证明者发送到验证者的单个消息组成,不需要来回交互。这是通过称为Fiat-Shamir启发式的过程实现的,该过程将交互式证明转换为非交互式证明。知识论证:这是一个技术术语,本质上意味着计算上合理的证明,其中计算有界的验证者不能被计算无界的证明者说服错误陈述。尽管SNARKs非常有潜力,但不可忽视的事,其在“可信设置”初始阶段会生成一些必须保密的参数。如果这些参数受到损害,整个系统的安全性就会受到损害。

    这导致了其他零知识证明系统的发展,如zk-STARKs,它们不需要可信的设置,但该技术目前尚不成熟,未得到广泛应用。而APK证明的SNARKs基于多项式协议和多项式承诺。其将在委员会成员的公共关键点坐标之间定义一组多项式关系。如果证明者能够说服验证者这些关系成立,那么验证者可以确定小组委员会的聚合公钥是正确的。即APK证明可以有效地验证多个成员的签名,而无需知道每个成员的具体公钥。BLS聚合签名BLS聚合签名是Boneh–Lynn–Shacham的简称,其最初由斯坦福大学教授DanBoneh等人提出的一种签名方案。BLS特点在于采用了基于双线性映射的椭圆曲线配对技术,以实现签名的验证与聚合,即BLS签名使用配对函数进行验证来节省区块空间。在运行APK证明时,并不需要验证BLS签名本身,只验证聚合公钥是否确实正确聚合,这只需要在Einnₑr(BLS公钥在曲线Einnₑr上定义)上添加功能,并且验证者在验证聚合公钥正确之前,永远不需要使用配对功能。总之,APK证明利用了一种承诺机制,只需要验证者拥有一个固定大小的已验证的公钥集合,就可以通过协议提供的简单的证明,来验证聚合签名的正确性。由此,其极大地简化了验证过程,并且减少了所需的信息交换量。

    这为构建安全可靠的去中心化应用和系统,提供了更加高效和可扩展的解决方案。APK证明的区块链轻客户端实践目前,现有区块链上的计算和存储成本远高于现代手机浏览器中的成本。因此,受到手机等设备在计算能力方面存在的限制,很多区块链应用无法得到普及。目前轻客户端又依赖于全节点去执行大量操作,轻客户端需要发送多个请求来执行简单的操作,因此所需的总体网络带宽高于全节点的带宽。此外,对于波卡生态而言,区块链互操作性的一个关键挑战是实现一个拥有高效且安全的链上轻客户端协议。现有的协议在验证方面要么缺乏责任制,要么效率低下。如Cosmos的采用跨链通信IBC协议,该协议的效率问题成为网桥中使用链上轻客户端验证器的障碍。而APK证明凭借高效的验证,为构建安全可靠的去中心化应用和系统,提供了更加高效和可扩展的解决方案。责任制的轻客户端系统Web3基金会研究员定义设计并实现了第一个责任制的轻客户端系统(accountablelightclientsystem),其具有高效验证、安全等优势,且可作为核心模块集成到SNARKs友好的PoS区块链安全桥中。具体而言,该轻客户端系统将具有以下特点:-责任制:该轻客户端系统是负责任的。

    即如果轻客户端验证器被误导,并且其通信的记录被提供给网络,那么可以识别到大量行为不端的共识参与者。一方面,当向轻客户端验证器发送最少的数据时,在轻客户端系统上识别行为不端的共识参与者是具有挑战性的。另一方面,识别不当行为对于任何利益证明协议都是必要的,其安全依赖于识别和惩罚不当行为的共识参与者。-异步安全:即在共识的诚实假设下,该轻客户验证器不会被误导。即使它对网络的视野有限,如其只连接到一个节点,这可能是恶意的。这是其继承了区块链拜占庭协议的异步(asynchronous)安全特性,在异步的网路环境中,确定性质的协议无法容忍任何错误。-递增性:即它的简洁状态(SuccinctState)是渐进更新的。有效的更新与桥接应用程序关系密切,而不是试图优化验证区块链起源的共识决策。总之,责任制的轻客户端系统在使用BLS聚合签名和SNARKs技术的区块链之上轻松实现高效验证。作为Polkadot生态系统的一部分,目前开发人员正在将该轻客户端整合到Polkadot和Kusama中的liveSubstratebridge。以下是利用此类证明设计的区块链轻客户端部分代码示例:示例全文请参阅:https://github.com/w3f/apk-proofs/blob/main/bw6/examples/recursive.rs轻客户端将为去中心应用程序的发展、促进加密网络的大范围采用提供关键推动力。如上文所述,APK以技术创新实现强大的功能,进一步提高轻客户端协议的效率和可靠性,也期待该技术后续更多地应用到去中心化应用之中。OneBlock将持续关注波卡与Substrate生态相关技术更新,希望能够为各位开发者提供一些启发。

Pixel Artist Pixel Artist
Happy Kittens Puzzle Happy Kittens Puzzle
Penguin Cafe Penguin Cafe
Animal Connection Animal Connection
Snakes N Ladders Snakes N Ladders
Pixel Skate Pixel Skate
BeeLine BeeLine
Draw Parking Draw Parking
Draw Racing Draw Racing
Soccer Balls Soccer Balls
Happy Fishing Happy Fishing
Crashy Cat Crashy Cat

FREE GAMES FOR KIDS ONLINE