Aleo是一个超级复杂的平台,有许多功能,它的核心目标是开发注重隐私的云计算网络。Aleo的技术架构使用了很多基本的方法,来确保Aleo网络的完整性、可扩展性、去中心化和隐私性,具体如下:
zkCloud :一个链下的不需要信任的云计算环境(主要是snarkOS和snarkVM两个组件),可以让程序运行私密、安全并且便宜,而且运行时间是不受限制的。
snarkOS :一个以隐私为中心的零知识操作系统(OS),它是Aleo平台的基础。
snarkVM :一个注重隐私、零知识支持的虚拟机和智能合约创建、执行和部署平台。
AleoBFT :Aleo的一种可扩展、安全、对开发人员友好的混合BFT共识机制。
Aleo网络参与者 :Aleo网络参与者包括验证者、证明者和质押者。
Aleo SDK :Aleo有四个主要的软件开发套件(SDK),让开发人员可以用不同的编程语言(比如Python、Leo、WASM等)在Aleo网络上创建协议和dApp。
Leo编程语言 :Leo是一种专为隐私的零知识应用程序开发而设计的内部编程语言。
zkCloud:链下注重隐私的计算环境
zkCloud 代表了一个保护隐私的零知识云计算网络,它与 Aleo 区块链链下分开运行,可显着增强交易吞吐量、去中心化和其他功能
zkCloud的目标就是要解决区块链中的“隐私困境”,这就是以隐私为中心的协议在保证隐私的同时还能保持可编程性的难题。当前的很多区块链迭代虽然都有很强的隐私性,但是可编程性却不足(比如早期的Zcash等),或者反之。Aleo认为它是第一个以公平的方式同时提供这两种服务的区块链系统。
零知识(ZK)是一种加密的密码技术,它可以让一方(证明者)向另一方(验证者)证明一些特定的信息是真实的,但是不需要泄露其他敏感的信息。
我们可以用一个实际的例子来理解:假设有一个人想要在酒吧里点一杯饮料。他们必须达到法定饮酒年龄才能在这个地方合法地喝酒精饮料。如果他们有使用区块链和ZK的政府验证身份,那么这个人就可以证明他们是否达到法定年龄,而不需要透露任何个人信息,比如姓名、地址,甚至是实际年龄。
此外,了解零知识应用程序的两个主要原语,以及它们如何与zkCloud本身交互,这一点也非常重要。这两个应用程序就是屏蔽身份和屏蔽交易。
屏蔽身份
在许多方面,屏蔽身份就像一道防火墙,可以保护特定个人或实体的敏感信息。就像一张驾驶执照可以隐藏所有个人信息一样,屏蔽身份可以让个人、智能合约、DAO和企业在不泄露私人信息的情况下相互交互。请求实体不需要知道的数据。
举个例子,加密货币交易所或暗池通常使用的链上了解您的客户(KYC)流程。在以太坊上,用户需要通过化名透露其完整的帐户数据和完整的资产持有量。而屏蔽身份可以让用户验证这些数据,同时保持完全匿名。
保密交易
Zcash在2016年10月首次推出,可以用来发送和接收私有区块链交易,而Aleo上的屏蔽交易有很多的应用场景,远远超过了资产转移。这些应用场景包括描述和另一个人或程序的私人交互,比如流动性供应、治理投票、去中心化通知、身份认证等等。
这种设计非常重要,因为它只允许交易双方访问敏感数据,这意味着如果恶意方不知道相应的私人详细信息,他们就无法利用这些交互。
屏蔽交易和屏蔽身份之间形成了一种协同关系,适用于与隐私保护和保密相关的各种领域。这些应用场景都是通过统一的零知识zkCloud计算环境来实现的。
保密身份、保密交易和 zkCloud 之间的交互
在Aleo平台上,用户可以选择屏蔽身份描述,这样就可以进行一些交易,而这个交易过程是在一个叫做zkCloud的链下环境中进行的。
zkCloud是一个点对点(P2P)、去中心化、私有计算平台,它是Aleo堆栈的一部分,可以用来开发更安全、私有和个性化的应用程序。
在zkCloud中,用户可以选择用直接方式(如资产转移)或者通过智能合约的方式来进行交互。因为这种交互是在链下进行的,所以它可以保护用户的隐私,同时也可以提高交易的吞吐量。
这些屏蔽交易还可以将zkCloud上的一方或者多方的交互与Aleo区块链连接。这些以隐私为中心的交易包含加密证明,以确保这些交互实际上是有效的。但是,它们默认情况下不会透露执行了什么程序,或者谁参与了转移。这样就保证了Aleo区块链上存储的交易记录的隐私性,同时也可以随时参考这些记录来确定应用程序的全局状态。
所以说,用户的受保护交易会被提交到Aleo区块链,区块链会更新其全局状态,并且将这些状态锚定到zkCloud上的活动,这样就可以提供一个去中心化、抗审查的数据可用性保证,以证明处理的数据实际上是合法的。
用户的zkCloud应用程序可以在自己的计算机上本地运行,也可以委托给专门的证明者来创建加密证明并代表其用户提交交易。这样的模型为Aleo平台上的广泛实际应用创造了潜力,为委托私人计算打开了新市场的大门。
最后,我们要知道,zkCloud是由Aleo的snarkOS操作系统和snarkVM(专注于隐私的虚拟机智能合约创建引擎)组成的。
SnarkOS:Aleo 网络的基础
SnarkOS是Aleo最先进的去中心化操作系统,代码构成了Aleo网络的主干,用于验证和存储加密应用程序的状态。
SnarkOS运用零知识证明技术,能够开发注重保密性,保护用户敏感数据类型和交易的应用程序,确保用户对自己的信息有完全的控制权。
SnarkOS旨在提供极高的可扩展性,可以支持大量交易量,开发高容量的dApp,满足企业级应用程序的巨大需求。
SnarkOS平台在Aleo上对网络上的所有程序和交易强制执行数据可用性保证,同时与AleoBFT交互,以确保验证者可以计算出零知识证明来检查链上的状态。
此外,SnarkOS在Aleo上利用强大的系统化框架,保证平台随着成熟而不断发展,让开发者和社区参与者为平台的持续开发做出贡献。
SnarkOS还利用Aleo SDK,让在平台上构建的协议可以在Aleo网络上创建自己的协议和dApp。
SnarkVM:Aleo 注重隐私的智能合约创建引擎
SnarkVM是Aleo的零知识智能合约创建引擎和虚拟机环境,是专门为在更大的Aleo网络内开发以隐私为中心的应用程序而设计的。
Aleo的虚拟机以snarkVM的形式出现,这个虚拟机是一个非常强大的智能合约创建、执行和部署引擎,它利用了zk-SNARK(零知识简洁非交互式知识论证)的实用性来保护Aleo区块链上的隐私。此外,它还包括了snarkOS、zkCloud和底层的Aleo生态系统。
具体来说,snarkVM包含了三个主要架构组件:
1. snarkVM合成器:将代码转换为与底层zk-SNARK密码证明系统兼容的电路。
2. snarkVM算法:负责证明系统的实现和执行,以及提供支持它的原语。
3. snarkVM分类账:提供支持存储和与Aleo区块链交互的数据结构和方法。
SnarkVM有以下几个主要特征:
1. 隐私保护:SnarkVM是一个采用zk-SNARK技术的隐私保护平台,它可以通过加密的方式保证交易细节和智能合约逻辑的机密性,保护用户隐私。
2. 可扩展性:SnarkVM采用了零知识证明技术来提高网络的可扩展性。通过使用零知识证明,SnarkVM可以简化复杂计算的验证,有效地提高了网络效率,从而实现更高的交易吞吐量和可扩展性。
3. 跨链互操作性:除了在Aleo区块链上的应用,SnarkVM还能帮助建立采用跨链互操作结构的网络。通过零知识证明,SnarkVM可以在不同的区块链之间建立桥梁,从而实现资产和数据的传输。
4. 灵活性和图灵完备性:SnarkVM的智能合约引擎采用图灵完备设计,可以执行各种复杂的计算,非常灵活。这种设计使得软件工程师能够创建复杂的应用程序,从而提高了智能合约的生成和执行。
5. 用户体验优化:SnarkVM的智能合约可以帮助优化用户与dApp的交互,并通过链下计算以最小的延迟执行交易,从而实现更快的交易确认、减少等待时间并提高dApp的响应能力。
AleoBFT:Aleo 共识的混合方法
AleoBFT是Aleo网络的共识机制,用于维护网络平衡、账户数据库、算法完整性和网络结构等。AleoBFT以隐私为核心,是一种基于Aptos和Sui最初提出的BFT框架进行改进的先进模型,为Aleo网络的运营提供了基础支持。
在 Aleo 测试网 3 第三阶段的主网启动之前,Aleo 区块链已经升级到了 AleoBFT。这个升级使得网络运行更高效和可扩展,还为保护用户隐私的应用程序提供了更先进的框架,同时促进了让验证者、证明者和利益相关者更好地参与到网络中的方法。
AleoBFT 共识机制使用了一种特别设计的共识算法,基于 Bullshark / Narwhal(这两个 BFT 框架是由 Sui 和 Aptos 提出的)。AleoBFT 是一种基于有向无环图(DAG)的共识框架,结合了权益证明(PoS)和工作量证明(PoW)的优点。
AleoBFT 是一种混合共识,注重与证明者和验证者的合作。以 Aleo Credits 的形式,AleoBFT 将验证者新区块的即时确定性与证明者的计算能力结合,激励验证者持续生成区块,保持网络的活力,同时也激励证明者不断扩展他们在 Aleo 网络中的证明能力。
AleoBFT 保证了网络内的三个关键特征:
1. 即时确认区块:一旦验证者达成共识并确认每个区块,交易就会被确认。这解决了验证者的浅分叉问题,同时提高了节点的稳定性。这个设计让应用程序的开发变得更流畅,同时还能通过保证钱包和应用程序中的即时交易确认来提升用户体验,同时也支持大规模系统的互操作性。
2. 保证网络去中心化:AleoBFT 设计可以将区块生成和 Coinbase 生成分离(因为Coinbase在Aleo网络中持有大量股份),这意味着验证者负责生成区块,而证明者可以根据需要的规模计算证明。AleoBFT模型还通过在网络上质押至少100万个Aleo信用来激励证明者成为验证者,以保证证明者能够作为所有参与共识的证明者的代表,保持其抗审查性。
3. 扩展激励机制:随着网络的发展,激励证明者的能力也在提升。在这个模型中,证明者需要解决并生成Coinbase SNARK证明(以PoSW的形式),以获得区块奖励的份额。这意味着证明者需要在零知识证明的核心子组件中提供计算能量,同时从每个区块奖励中赚取他们在证明中的百分比份额。
总的来说,AleoBFT 具有很高的性价比和安全性,而且它还具有强大的经济模型:
AleoBFT 的构建很划算,因为它可以让用户把数据包在链外,然后只上传较少计算量的加密证明,这样就可以大幅度降低参与 Aleo 网络所需的网络 Gas 费用。
由于它的权益证明设计和其他功能,Aleo 代表了一个非常安全的网络。它能通过把容易受到攻击向量影响的敏感数据包在零知识证明中,这样就能大幅度减少这些数据的数量。
AleoBFT 通过 Aleo Credits 来激励用户参与,它可以帮助实现 Aleo 网络的稳健且适应性强的经济模型,让用户可以通过质押、验证交易和生成证明来提高网络的安全性。
Aleo 网络参与者
Aleo 网络中有三个主要参与者,它们支持着协议、共识机制、经济和治理系统以及底层架构。这些参与者包括验证者、证明者和质押者,它们在Aleo网络上都有自己的预定义角色。
Aleo 网络的主要参与者包括:
验证者:操作节点、验证交易并参与网络共识,他们的服务会得到奖励。
Stakers:将Aleo积分锁定在验证者中,这样验证者就可以参与共识并保护更大的Aleo网络。
证明者:使用专用硬件生成证明并解决各种加密难题,这些证明会被验证者验证并包含在区块中,然后他们可以得到Aleo积分。
下面我们分别来介绍一下这三个主要参与者:
验证者(Validators)
Aleo的验证者就是基础设施服务提供商,他们通过AleoBFT来保护Aleo网络,AleoBFT是网络特有的权益证明共识,它使用了Bullshark和 Narwhal式内存池。
在网络中的角色方面,验证者验证和确认交易块,他们和同行一起通过网络共识就状态达成一致,包括证明者在创建块时生成的加密证明。同时,他们还会收取费用,这些费用可以换取保护网络的计算工作。
100 万个 Aleo 积分是所有运行网络验证器的最低要求。如果你想运行验证器,就必须使用专门的 snarkOS 软件。
质押者(Stakers)
任何人都可以通过在规定的时间内锁定 Aleo 积分以支持网络安全,然后就可以获得激励性质押奖励。在这个过程中,你需要把 Aleo Credits 委托给网络验证者,这样就能帮助他们获得共识所需的质押权重。另外,质押者还能赚取一部分通货膨胀奖励,这些奖励会先发给他们所质押的验证者。
你最少可以质押 1 个 Aleo Credit;但是,如果你没有质押至少 10 个 Aleo 积分,你就没有资格获得质押奖励。你可以通过多种方式来质押积分,比如通过质押平台、支持的 Aleo 生态系统钱包或者直接质押到 Aleo 验证器仪表板。
至于质押者可能获得的质押奖励金额,主网启动后的年利率 (APR)可能会在 15% 到 20% 之间。随着越来越多的用户在网络上进行质押,以及通货膨胀奖励的减少,年利率也会随着时间的推移而下降。
在 Aleo 上,质押奖励的金额会由全球质押的 Aleo Credits 的不断变化的数量(当用户连续存入和提取质押时)以及分布式网络奖励的通货膨胀率决定。除非通过治理投票进行调整,否则 Aleo Credits 的区块奖励在可预见的未来将保持不变。
证明者(Provers)
Aleo 证明者(也被称为 ZK 证明者或 ZK 矿工)是一种特定的零知识架构类型,通过将 SNARK 证明合并到 Aleo 验证者最终确定的区块中,来解决简洁工作证明 (PoSW) Coinbase 加密难题,从而支持 Aleo 区块链。
从更大的角度来看,Aleo 证明者之间相互竞争,通过生成 SNARK 证明来解决加密 Coinbase 难题,这些证明必须满足 Aleo 协议设定的目标难度阈值。他们解决这些密码差异的效率越高,就越有可能获得 Aleo Coinbase 奖励。
证明者可以根据提交的有效解决方案数量按比例获得 Coinbase 奖励,这意味着他们会给验证者一半的奖励,来激励他们参与并领取奖励。
想成为证明者的网络参与者必须使用像 snarkOS 这样的证明软件和高效的硬件,如专用的 GPU 或普通的 CPU。系统会奖励那些验证了最多数量加密证明的人,并且使用专门的硬件可以最高效地完成这个过程。
证明者获得的 Coinbase 奖励与主网启动后 Aleo 初始通胀分配的总金额(即 Aleo Coinbase 积分的总供应量)成正比。此外,Coinbase 奖励会以线性方式逐渐减少,直到第十年左右停止发行。启动时,预计证明者可以获得年利率在 40% 到 50% 之间,随着网络的发展,这个数字会慢慢下降。
Aleo 软件开发套件
和Cosmos SDK以及其他的区块链软件开发套件差不多,Aleo SDK是一个可以在Aleo网络上开发应用程序和协议的多功能框架。
Aleo SDK里有一套工具可以用来创建零知识应用程序,其中包括好几个JavaScript和TypeScript库,可以实现以下功能:
与 Aleo 网络的通信
程序状态和数据的管理
Aleo 账户管理
基于Web的程序执行和部署
Aleo 学分转账
Aleo SDK 有四种不同的基于 TypeScript 和 JavaScript 的 SDK,它们的功能各不相同。
Aleo SDK - 允许开发零知识网络应用程序
Create-Aleo-App - 在 React 等常用框架中提供零知识 Web 应用程序示例,从而实现简化的 Web 应用程序开发环境
Aleo WASM - 一个 Rust 箱(即 Rust 代码的编译单元),用于将零知识 Aleo 代码编译并执行为 WebAssembly (WASM) 和 JavaScript
Aleo Python SDK - 一个开发套件,允许开发人员利用两个独立的库(即 aleo 库和 zkml 库),允许开发人员通过将 snarkVM 功能引入 Python 来构建零知识应用程序,同时还可以转译scikit-learn(a用于 Python 的免费机器学习库)将机器学习模型转换为 Leo 程序
Leo 编程语言
在过去几年里,Aleo的联合创始人Collin Chin和Aleo团队创建了自己的定制编程语言,以提升Aleo网络堆栈的使用价值。Leo借鉴了Rust的设计,通过在Aleo上开发ZK支持的隐私保护应用程序,使用易于使用且安全的模型来简化复杂的加密原语。
Leo是为Aleo开发的,其主要目的是简化去中心化应用程序的开发,保证其具有高度的机密性和匿名性。由于网络以隐私为中心的零知识设计,这一点非常重要。
最重要的是,Leo被设计成一种语言,它消除了以前构建ZK应用程序所需的高级密码学和数学专业知识,大大简化了应用程序的开发。
Leo的易用性让人想起JavaScript和TypeScript,这使得那些密码学知识匮乏的开发者也能轻松上手,同时也为全球广大的JS和TS开发者提供了简单的学习曲线。
Leo 语言包含很多很棒的特点,让它成为应用程序开发的先进范例。其中包括:
高层抽象——旨在消除密码原语的复杂性和复杂的知识需求,让开发人员专注于应用逻辑
直观的语法 使得该语言可供广大程序员使用,包括那些没有区块链经验的程序员
内置安全机制- 对于防止智能合约中常见漏洞和错误至关重要
高层和低层代码之间的连接- 充当抽象编程和特定 Aleo 指令之间的桥梁,确保无缝集成和交互
编译自动化- 允许自动编译为 Aleo 指令(通过将指令转换为 ZK 电路),以简化应用程序开发和部署过程
多功能性- 用途广泛,适用于从简单交易到复杂的 DeFi、机器学习和神经网络集成的广泛应用
形式化验证- 用于检查与 Leo 和其他附加系统组件集成的逻辑和算法的正确性
严格的测试和审计- 旨在生成极其可靠和安全的代码,通过严格的测试和审计程序实现
开源- 完全开源,允许任何人随着时间的推移参与其分析和改进
此外,Aleo特别注重为Leo开发者提供丰富的开发支持,包括文档、教程、GitHub仓库和众多集成开发环境(IDE)。这为开发者构建了一个以学习为中心的协作生态系统。开源性质鼓励社区协作,让工程师可以为Leo的发展做出贡献,并从Aleo社区的集体智慧中长期受益。同时,Aleo还搭建了一个软件开发游乐场,让开发者在开始在Aleo主网上构建自己的应用程序之前,先学习如何使用Leo编程语言。
Leo 的人工智能和神经网络推理计算
人工智能现在能解决许多以前需要人脑完成的任务,大大增强了软件框架的能力。现在大多数的人工智能系统都是基于神经网络的,这些神经网络能够处理复杂的任务,并且为近期人工智能的许多突破奠定了基础。
一般来说,人工智能的工作流程分为两个阶段:训练和推理。但是在整个过程中,由于数据的密集型特性,人工智能系统常常会面临隐私问题。Aleo 平台上可以通过零知识证明来解决这个问题。
神经网络是由许多相互连接的神经元组成的,它是一种数学函数,能够将输入的值确定性地转换为输出的值。这意味着,使用提供的输入特征,可以计算出 zkSNARK 中的神经网络的输出。Leo 语言是用来保护这些输入和输出数据的。
Leo 可以使用 zkSNARKs 在 Aleo 平台上为神经网络提供推理计算。这可以利用定点算术 Python 脚本来自动生成神经网络 Leo 代码。
总的来说,这种复杂性让 Leo 语言能够在软件开发人员创建的应用程序和协议中创建复杂的人工智能驱动功能,从而大大增加了该平台在现实世界的适用性。
『声明:根据央行等部门发布的《关于进一步防范和处置虚拟货币交易炒作风险的通知》,本文内容仅用于信息分享,不对任何经营与投资行为进行推广与背书,请读者严格遵守所在地区法律法规,不参与任何非法金融行为』