Aleo是一个专注于隐私保护的区块链项目,通过零知识证明技术(ZKP)实现更高的隐私和可扩展性。Aleo的核心理念是让用户能够在不泄露个人数据的前提下进行身份验证和数据处理。
本文主要介绍了Aleo的项目概要及最新进展,对市场十分关心的puzzle算法更新做了详细的解读。
最新算法抢先看
Aleo网络每小时随机生成一个 ZK 电路;矿工在这一小时内需要尝试不同的nonce作为电路的输入,计算出witness(即电路中的所有变量,这个计算过程也叫synthesize),对witness求Merkleroot后,判断是否满足挖矿难度要求。由于电路的随机性,这个挖矿算法对GPU并不友好,在计算加速方面存在很大的难度。
融资背景
Aleo于2021年完成了由a16z领投的2800万美元的A轮融资,并在2024年完成了2亿美元的B轮融资,投资方包括KoraManagement、SoftBankVisionFund2、TigerGlobal、SeaCapital、SlowVentures和SamsungNext等。这轮融资使Aleo的估值达到了14.5亿美元。
项目概要
隐私性
Aleo的核心是零知识证明(ZKPs)技术,这使得交易和智能合约的执行可以在保持隐私的前提下进行。用户的交易细节,如发送方和交易金额,默认情况下是隐藏的。这种设计不仅保护了用户隐私,还允许在必要时进行选择性披露,非常适合DeFi应用的发展。其主要组件包括:
snarkVM和snarkOS:snarkVM允许链下执行计算,链上仅验证计算结果,从而提升了效率。snarkOS确保数据和计算的安全,并允许无许可的功能执行。
zkCloud:提供安全、私密的链下计算环境,支持用户、组织和DAO之间的编程交互。
Aleo还提供了集成开发环境(IDE)和软件开发工具包(SDK),支持开发者快速编写和发布应用;此外,开发者可以在Aleo的程序注册表中部署应用,无需依赖第三方,如此便降低了平台风险。
可扩展性
Aleo采用了off-chain的处理方式,交易首先在用户设备上计算证明,然后仅将验证结果上传到区块链。这种方式大大提高了交易的处理速度和系统的可扩展性,避免了类似以太坊的网络拥堵和高昂的费用。
共识机制
Aleo引入了AleoBFT,这是一种混合架构的共识机制,结合了验证者的即时最终性和证明者的计算能力。AleoBFT不仅提高了网络的去中心化程度,还增强了性能和安全性。
区块快速最终性:AleoBFT确保每个区块在生成后立即得到确认,提升了节点稳定性和用户体验。
去中心化保障:通过将区块生产与coinbase生成分离,验证者负责生成区块,证明者进行证明计算,防止少数实体垄断网络。
激励机制:验证者和证明者共享区块奖励;鼓励证明者通过质押代币成为验证者,从而提升网络的去中心化程度和计算能力。
Aleo允许开发者创建不受gas限制的应用程序,因此尤其适用于机器学习等需要长时间运行的应用。
当前进展
Aleo将于7 月 1 日启动激励测试网,以下是一些重要的最新信息:
ARC-100投票通过:ARC-100 (“Aleo开发人员和运营商的合规最佳实践”提案,涉及合规方面、Aleo网络上资金的锁定和延时到帐等安全措施)的投票已经结束,并获得通过。团队正在进行最终的调整。
验证者激励计划:该计划将于7月1日启动,旨在验证新的puzzle机制。计划将运行至7月15日,期间将分配100万Aleo积分作为奖励。节点生成的积分百分比将决定其奖励份额,每个验证者至少需赚取100代币才能获得奖励。具体细则尚未敲定。
初始供应和流通供应:初始供应量为15亿代币,初始流通供应量约为10% (尚未最终确定)。这些代币主要来自Coinbase任务(7500万),将在前六个月内分发,同时包括质押、运行验证者和验证节点的奖励。
TestnetBeta重置:这是最后一次网络重置,完成后将不会添加新功能,网络将与主网类似。重置是为了添加ARC-41和新puzzle功能。
代码冻结:代码冻结已于一周前完成。
验证节点扩展计划:初始验证节点数量为15个,目标是在年内增加到50个,并最终达到500个。成为委托者需要1万代币,成为验证者需要1000万代币,这些数额将随着时间逐渐减少。
算法更新解读
Aleo于近日公布最新测试网消息的同时,更新了最新版本的puzzle算法,新算法不再着重于zkproof结果的生成,移除了MSM和NTT(二者是zk中生成proof大量使用到的计算模块,之前测试网参与者以优化该算法的效率来提升挖矿收益)的计算,着重于产生proof之前的中间数据witness的生成。我们在参考官方的puzzlespec和代码后,对最新算法做一个简单介绍。
共识流程
共识协议层面上,其流程中prover和validator分别负责产生计算结果solution和出块并聚合打包solution。流程如下:
Prover计算puzzle构建出solutions并广播到网络中
Validator聚合交易和solution为下一个新区块,保证solution数量不超出共识限制(MAX_SOLUTIONS)
Solution的合法性需要校验其epoch_hash符合validator维护的latest_epoch_hash,其计算出的 proof_target符合网络中valiator维护的 latest_proof_target,同时该block中包含的solution数量小于共识限制
有效的solution可以获得共识奖励
SynthesisPuzzle
最新版的算法核心称为SynthesisPuzzle,其核心是针对每个epoch固定产生一个共同的EpochProgram,通过为输入和EpochProgram构建R 1 CS证明电路,产生对应R 1 CSassignment(即大家提到的witness)并作为Merkletree的叶子节点,计算出所有叶子节点后生成Merkleroot并转换为solution的proof_target。构建SynthesisPuzzle的详细流程和规范如下:
1.每一次puzzle计算称为nonce,它是由接收挖矿奖励的地址、epoch_hash和一个随机数counter构建,每次需要计算新的solution时可以通过更新counter获得新的nonce
2.每一个epoch中,网络中所有prover需要计算的EpochProgram是同一个,它由当前的epoch_hash产生的随机数从指令集中抽样出来,抽样逻辑是:
指令集是固定的,每一个指令(instruction)包含一个或多个计算操作,每一个指令有一个预设的权重和操作计数
抽样时根据当前epoch_hash生成随机数,根据该随机数从指令集中结合权重获取指令并顺序排列,累积操作计数到97之后停止抽样
将所有指令组成EpochProgram
3.使用nonce作为随机数种子生成EpochProgram的输入
4.聚合EpochProgram对应的R 1 CS和input,进行witness(R 1 CSassignment)计算
5.计算出所有witness后,这些witness将被转换为对应的merkletree的叶子节点序列,merkletree是一个深度为8的8元K-aryMerkletree
6.计算merkleroot并将其转换为solution的proof_target,判断其是否满足当前epoch的latest_proof_target,若满足则计算成功,提交上文中构建输入需要的rewardaddress、epoch_hash和counter作为solution并广播
7.同一个epoch中可通过迭代counter的方式更新EpochProgram的输入进行多次solution计算
挖矿的变化和影响
经过此次更新后,puzzle由生成proof转变为生成witness,每一个epoch内的所有solution计算逻辑一致但是不同epoch计算逻辑有较大区别。
从之前的测试网中我们可以发现很多优化手段着重于使用GPU对生成proof阶段的MSM和NTT计算进行优化从而提高挖矿效率,此次更新完全摒弃了这部分计算;同时由于生成witness的过程产生于执行一个跟随epoch变化的program,其中的指令将存在部分串行执行的依赖关系,所以实现并行化具有不小的挑战。
本文可能来自AI生成或投稿,请分辨其真实性!转载需注明出处:http://www.lanbi.net/news/63535.html