Arweave的技术生态系统介绍(Part 2)
0xE43a
January 12th, 2022

原文链接:

译者:Evelyn|W3.Hitchhiker

这篇文章是基于提出SCP(基于存储的共识范式)理论的everFinance的创始人outprog在BeWater Live上的演讲。它旨在通过深入研究Arweave、SmartWeave和SCP,以及整合PoW和PoS的两层模型,让你了解Arweave技术生态系统的全貌。

这个帖子分为三个部分,每个部分都围绕着以下内容展开:

1. Arweave如何工作

  • 为什么永久存储在经济上是可行的
  • Arweave如何确保矿工存储所有的数据
  • Blockweave(区块纺)技术
  • 隐性的激励机制

2. SmartWeave和SCP

  • SmartWeave
  • 基于存储的共识范式
  • 无限扩展的Web3时代
  • EverPay架构

3. 整合了永久存储和PoS的两层模型

  • KYVE的设计
  • 整合了永久存储(Permanent Storage)和Pos的Koii的设计
  • 结论

SmartWeave和SCP

这是 "介绍Arweave的技术生态系统 "的第二部分。这篇文章将讨论永久存储和共识计算。

1. SmartWeave

当我第一次了解Arweave时,是在2020年的7月,那时我就意识到了,它将会是一个改变游戏规则的底层区块链。这使我想到,为永久存储而设计的区块链或云存储可以被认为是图灵(Turing)机的磁带。

我们都知道,图灵机是由一个状态机和一个无限长的磁带组成,而Arweave是一个充当磁带的理想选择。我们可以编写一个能够进行任何计算,并可以将其与所有数据一起存储在Arweave中的程序。

例如,当你在个人电脑上用Excel创建财务报表并将其发送给他人时,但是他们却无法确认你的财务报表是否真实。

然而,如果计算机的硬盘被存储区块链所取代,那么财务报表就可以通过链上存储的所有数据,以及通过独立客户以分布式方式进行的计算而得取得信任。

因此,我们认为,只要链上存储的数据是可信任的,那么计算就可以在任何计算单元中进行,只要通过一个确定性的程序在不可变的数据上计算得来结果,就是唯一和可信任的。

在比特币中,账本是使用PoW机制创建的,这有助于建立共识。然而,由于将Arweave使用了硬盘代替,在你的个人电脑上进行的每一个操作及其步骤都将被记录在链上。

因此,当前的状态就总是可追踪和可验证的。虽然它看起来是一个全新的模型,但它实际上是一个回归计算机本质的经典模型。它确保每一个文件都是可追溯的,不可更改的,不需要再像以太坊那样在链上进行计算。

只要一个确定的程序被上传到Arweave上,任何人都可以下载,并且可以自动加载链上的数据来进行计算,在这种情况下,任何计算结果都可以被认为是一个客观事实或共识。那么,SmartWeave是如何实现这一切的呢?

SmartWeave是一个在链外运行的虚拟机。它可以读取应用程序的运行代码,从Arweave加载所有的输入参数,然后在本地执行每个所需的交易。之后,Smartweave与最新的Arweave区块同步,这样它就可以生成最新的最终状态。

智能合约的代码根本就没有在链上执行。

Arweave可以保证存储在Arweave交易中代码的真实性。例如,它可以是一个代币合约,合同的状态和所有相关操作都是用户发送Arweave交易的结果。

虽然听起来很完美,但SmartWeave也有一个弱点,那就是它无法避免DDoS攻击。DDoS攻击意味着黑客发送大量的,且不会被成功执行的无效交易数据。

由于SmartWeave在执行交易之前无法判断哪些数据是有效的,因此SmartWeave客户端必须不断加载数据来不停地计算结果。如果有多个千兆字节的无效交易,SmartWeave将会遭受低可用性的影响,但它的安全性和共识却仍然不会受到影响。

2. 基于存储的共识范式

(Evolution of Consensus)
(Evolution of Consensus)

图1显示了比特币的模型。在你使用比特币进行转账之前,你需要在你的个人电脑上运行一个完整的节点或SPV节点来重新计算比特币的账本。

然而,自2017年以来,MetaMask和imtoken采用的代理模式得到了普及。在这种模式下,应用运营商在以太坊和比特币上部署了完整的节点,供用户请求数据和发送交易。

与图1的比特币模型类似,SmartWeave模型要求用户自己进行计算和发送交易。然而,在图2所示的代理模式中,像MetaMask这样的代理可以为用户显示一个虚假的余额,但他们不能改变共识。

无论谁通过特定的程序对共识数据进行计算,都一定会获得一个相同的、唯一的结果。任何运行节点的人都不可能通过计算获得一个错误的状态,SmartWeave也是如此——所有的计算结果都是最终确定的。

再往前走一步,我们可以发现,用户不再需要自己与区块链互动。相反,他们只需要访问与区块链互动的应用客户端即可。

以SmartWeave为例,它依赖于一个应用客户端,可以在供应商的服务器上运行,以进行链外计算。永久的存储区块链允许服务器成为一个确定的、可追踪的程序,具有与区块链相同的特征。

1)相对共识和绝对共识(Relative Consensus and Absolute Consensus)

(Absolute Consensus)
(Absolute Consensus)

为什么用户不再需要直接访问区块链?为找出这个答案,你需要了解相对共识和绝对共识的概念。

例如,左边显示的eth节点是由imtoken部署的。当你使用imToken来发送一个交易时,该交易会通过imToken网关转发到eth节点上。

在这种情况下,你完全信任一个可以伪造数据的第三方,这就被称为相对共识。相反,如果你自己部署一个节点来执行所有的交易,而不依靠任何第三方,这就被称为绝对共识。

代理模式允许用户使用多种DeFi产品,这些产品通常为收益率的挖掘提供一个APR。为了获得实际而可靠的APR,用户必须自己进行计算。

当用户依靠中心化的节点来提供像APR这样略微抽象的数据时,第三方服务器可以向他们提供一个虚假的APR,但他们不能改变转账的共识。为了能更进一步,可以通过信任第三方节点来计算像余额这样的转账的基本信息。而他们只需要提供一个用户友好的API。

所以我们建立了可信任的APP模型,在这个模型中,可信任的APP代替了区块链而与用户互动。将用户与区块链脱钩是降低用户门槛和提高TPS的关键。

2)可信任的APP( Trusted APP)

(Empower)
(Empower)

这种模式有以下几种优点:

  • 组合性(Composability)

可信任的APP在数据分区的基础上提供了可组合性。在相互组合时,应用A可以从存储区块链中下载应用B的数据,并根据应用B的业务规则来进行验证,从而实现多账本验证。

它允许我们只整合我们关心的应用程序的数据进来行验证。这种模式大大提高了传统企业来使用区块链的可组合性。这让我想起了我在银行工作的日子。

在此期间,我负责多方账目核对,并且发现以传统方式来进行核对是十分痛苦的。每天银行都会给我发一个文本文件,让我的账本与第三方账本核对。这样的半手工方法很容易出错。如果出现任何错误,就需要进行回滚(reversal)。

然而,由于Arweave存储了所有的数据,多方账户的检查可以通过一个自动程序来完成。这可以帮助创建一个与比特币非常接近比账本。所有DeFi和传统的应用程序都可以以这种方式进行组成,因此,这样就可以按区块而不是按天进行账户检查。

  • 低开发障碍(Low development barriers)

基于存储的共识范式大大降低了开发的障碍。正如我曾经演示过的,用JavaScript编写一个带有自定义状态的SmartWeave合约是非常简单的。

想象一下,一个应用程序的平衡状态是state.balance,一个电子邮件地址的注册状态是state.registered,而一个永久存储文件的状态是state.file_id。这种范式使开发变得相当简单和灵活,且不再受任何编程语言的限制。

Arweave上的PST代币符合ERC20代币这样的特定标准,并有一些通用的状态API。但是,对Web2和Web3应用的开发没有任何限制,因此,开发人员可以灵活地利用SmartWeave的优势。

更重要的是,你不需要用JavaScript编写智能合约,也不需要使用SmartWeave。就我而言,SmartWeave只是基于存储的共识范式的例子之一。

凭借其永久可信赖的存储支持共识计算,Arweave成为图灵机的磁带,这样你就可以建立任何图灵完整的应用程序。而且你可以更进一步,用你自己的后端程序取代SmartWeave,而这也将具有区块链的杰出特性。

(Off-chain Dapp)
(Off-chain Dapp)

鉴于SmartWeave不能防止DDoS攻击,我们对其模型进行了改造,通过改用高性能的后端服务器来接收用户的交易。尽管能抵御DDoS攻击,但改进后的模型有一个缺点,因为独立的后端服务器可以过滤和审查用户的交易。

然而,后端服务器无法改变目标状态,因为所有纳入链中的交易都是由用户自己签署的。改进后的模型可以抵御SmartWeave也容易受到的DDoS攻击,同时提供与Web2.0有相同的开发模式。

  • 无限的TPS(Infinite TPS)

此外,应用程序的TPS是无限的,因为服务器可以在一个单一区块中 roll up 一批10,000或100,000的交易,然后将其纳入Arweave。在这个过程中,会有一个临时状态在排队等待。

每隔5到10分钟就有一批交易数据被roll up 到 Arweave,这样相应的状态就会被最终确定。无论你的程序在哪个服务器上运行,你都可以通过使用Arweave作为永久存储,轻松建立一个可信赖的Web3应用程序。

(Trusted Computing)
(Trusted Computing)

为了使这个模型更加抽象,你可以通过将存储区块链与AWS或谷歌云(Googel Cloud)结合起来建立一个Web3应用程序。通过Arweave保证输入数据的不可更改性和可追溯性,一个确定性的商业程序可以保证输出数据的唯一性和最终性。

我们如何将这种模式应用于DeFi上去呢?可信任APP的API提供实时数据验证并将其纳入链中。在DeFi领域需要多方账本验证。当整合一个代币或像Compound这样的借贷协议时,DEX就需要从Arweave下载他们的业务程序和历史数据。

举个例子,它可以整合SmartWeave的JavaScript代码进行计算和数据验证。你可以用任何编程语言,例如Golang或Rust来编写你自己的程序,并将其他应用程序的确定性规则转换成你使用的语言,而且你可以通过使用他们的SDKs轻松地将这些应用程序整合到你自己的应用程序中。

3)无限扩展的Web3时代(The Web3 Era of Infinite Scaling)

(Scaling)
(Scaling)

**基于存储的共识范式被期望来创造一个无限扩展的Web3时代。**如上图所示,左边是代币支付和结算协议everPay,右边是AMM程序,下面是SNX。

所有这些应用程序将其业务数据存储在一个存储区块链上,其共识数据由检测器计算。它们通过HTTP进行实时交流,交流结果可以在事后得到验证和逆转。自从everPay可以获得AMM的所有数据,并通过专门的程序检查AMM的共识后,它就可以计算出AMM的最终状态。只要AMM的最新数据被卷进存储区块链中,当计算AMM的状态时,三个应用程序就会得到相同的结果。

everPay可以告知我们,其他应用程序是否是确定的和欺诈性的。这些应用程序通过传统的Web2 AP进行实时地相互作用。一旦数据被纳入链中,整个状态就会被最终确定。

因此,互动过程中产生的临时状态也将被最终确定。此外,基于存储的共识范式并不需要每个应用程序都要使用相同的存储区块链。

具体来说,一个使用Arweave的应用程序仍然可以与另一个使用不同存储模式的应用程序进行组合。例如,一个AMM使用了一个不同于everPay的存储区块链。如果everPay想要验证AMM,它可以直接从AMM用于计算和验证的存储区块链上读取其数据。这就是可组合性的实现方式。

3. everpay

everPay同时也是Ethereum和Arweave的一个DApp。在使用everPay时,我们可以通过Ethereum钱包MetaMask,或Arweave钱包ArConnect来直接连接到它。在未来,everPay将增加对更多区块链的支持,如Solana和Near。链外计算的灵活性使我们可以用Golang来构建各种加密实现(cryptographic implementations)。目前,everPay更多的像是一个Layer 2的应用程序,提供实时代币转移和Arweave和Ethereum之间的桥梁。

在第一次使用everPay之前,你需要先进行存款。在everPay中,所有的资产都是由一个DAO来进行管理的,其成员在以太坊和Arweave上都有一个多重签名合约(multisig contract)。

(everPay UI)
(everPay UI)

当你进行转移时,例如,1 USDC代币,接收地址可以是一个ETH或AR地址。任何ETH或AR地址都被认为是一个有效的everPay账户。当进行转账时,你需要通过MetaMask来签署交易。

在上图中,你可以看到转账金额和交易费用,它将被直接发送到服务器。如果你切换到Arweave上的接收钱包,并将其连接到everPay时,你会发现其地址与ETH地址是完全不同。而且你会在你的everPay账户的交易历史中看到转账交易。

通过在链外进行计算,everPay提供了极高的性能。与PayPal和Stripe类似,everPay可以利用各种后端程序来构建高性能的应用程序。然而,所有everPay的交易数据将被卷进Arweave,因此everPay的账本具有与区块链相同的特征。

everPay架构(everPay Architecture)

everPay的整个架构如下图所示。它包含三个角色:

(How we work)
(How we work)

协调器(Coordinator):

协调器类似于zkRollup中的排序器(sequencer)。所有用户的交易都被送到协调器那里,以先到先得的方式进行实时计算,从而得到最终结果。

由于用户的交易一旦被协调器收到就会被确认,所以在everPay中不存在所谓的待定交易。如果一个交易被成功发送,它将被添加到一个交易池中,并等待被纳入链中;如果没有,它将向前端返回一个错误,并不会被添加到池中。交易池中的交易每5到10分钟就会被分批纳入到Arweave中去。

协调器运行的业务程序与看门人(watchmen)和检测器(detector)运行的程序是一致的。每个角色单独从Arweave加载数据,进行独立计算和验证。

检测器(Detector):

与Infra类似,检测器在部署后提供所有的转账和余额信息。用户可以从检测器中获得账本的最终状态。

看门人(Watchman):

看门人负责跨链互动中的多重签名(multisig)治理。它可以被认为是一个控制私钥的检测器。当看门人检测到Arweave上的任何提款数据时,它将创建一个提款提案。如果你想提取以太坊原生的代币,看门人将验证你的交易并签署提款提案。只有当你的交易被超过51%的看门人签署时,才会在以太坊或Arweave上执行。

看门人、检测器和协调器之间的账本同步完全依赖于Arweave而不是P2P交流。所有的角色都将自行验证整个账本。在验证之后,看门人需要签署一份提案。

在SCP之上构建以Arweave为存储基础设施的应用程序将成为Web3时代的真正趋势。 everPay是一个典型的Web3应用程序,它提供了几乎与传统Web2应用程序相同的TPS,并且作为DAO来运行。

以Mirror.xyz为例。我们在Mirror上发表了everPay的lightpaper。虽然Mirror运行在一个中心化的服务器上,但所有的文件数据都存储在Arweave中,而相应的NFT却是在Ethereum上铸造的,这也完全符合SCP模型。

永久存储是SCP的关键。通过使用像以太坊这样的区块链作为后端,你的应用程序不需要完全在链上或以完全去中心化的方式运行。事实上,去中心化的存储允许用户通过一个中心化的服务永久地存储他们的文件,而不是自己发送交易。

此外,资产转移也可能从SCP模式中受益。通过扩大价值流,everPay不要求用户自己发送交易。它允许资产跨链映射,从而使区块链在更长时间内将难以使用。

everPay目前支持Arweave和Ethereum,在未来将有能力整合任何区块链。everPay提供实时转账,并提供与传统转账几乎相同的用户体验。

它将增加对智能合约账户的支持,智能合约账户在链上的成本很高,但在链下却使便宜得多。everPay的智能合约账户将以相对较低的共识建设成本来提供去中心化的安全和最佳的用户体验。

Arweave TX
CF4qRF7xMlheZ9ZA-m-CblYPnTElZxdVNkRdt5c0AVc
Ethereum Address
0xE43a21Ee76b591fe6E479da8a8a388FCfea6F77F
Content Digest
yK3qScUj2_4I1AQX7F4Hand5mhfupSiYeWGEGRLMrVI