# Arweave是web3的基石

By [墨迹](https://paragraph.com/@0xad0cae6dc36e76c016f3c2fb7ecd43968eb84d8b) · 2021-11-13

---

       **Arweave**是个「非典型」的区块链，大部分人一无牵挂，了解稍有人的常也。它把一起**去**海**淘**的**项目**的英文陪跑**Filecoin**的**中心化项目**。耐心找来该项目的白皮书和黄皮书研究的朋友，链水也难免是一头雾水因为通篇是围绕冷门概念——“**信息**不易坚守”的辨析，看容容，密码学创新，DEFI支持、价值等能令币圈和圈眼前一亮的概念。
    
      谁会需要 **永久数据存储** 并 **为之付费** ？人生不过百年，凭什么我们要关心永久保存人类的知识和历史？
    

Arweave 创始人及核心团队自有其特立独行的理由。作为 Arweave **黄皮书** 的中文译者，我打算从典型的币圈和链圈的视角解读一下 Arweave，以免国内区块链创业者和投资者与这一重大创新失之交臂。首先，请允许我将 Arweave 音译为「 **阿维** 」 （尽管这个中文名字尚在中文社区讨论中，并未最终确定） ，以便于在中文加密社区传播。

### 阿维与 Filecoin/IPFS 之比较

IPFS 是去中心化存储领域的 **开创者** ，从 2014 年上线开始，如同 BT 一般自由生长，已经存储了大量数据。但是要让 IPFS 成为商业可用的存储系统，而不是随意的数据分享平台，必须提供 **服务质量保障** 。这就是 Filecoin 要解决的问题，即 IPFS 的经济激励层。从提出 Filecoin 概念，到今年主网「即将」面世，可谓是迁延日久。作为开发了 IPFS、libp2p 等硬核技术的 **协议实验室** （Protocol Labs） ，为何会迟迟搞不定 Filecoin？

Filecoin 协议构建了两个市场：数据 **存储** 市场和数据 **提取** 市场。有存储需求的用户到数据存储市场申明自己的需求：我要存 \*\* 大小的数据，要求 \*\* 个副本，存储 \*\* 天。市场中的存储服务商 （存储矿工） 对这项存储需求报价，用户接受报价就跟矿工签订合同，支付费用。当用户需要使用数据时，就到数据提取市场提出需求；再由提取矿工给出报价，满足数据访问需求。

上述过程看上去不算复杂，实现起来却有几个困难：

1.  矿工需要提供存储了用户数据的不可伪造的 **密码学证明** ；
    
2.  在合同有效期内，协议要持续检查矿工如约保存了数据。如果违约，矿工要遭受罚款；
    
3.  为了 **鼓励矿工** 存储数据，要让已存储数据的容量比空闲的容量赚取的更多 **增发奖励** 。同时需要防止矿工注水垃圾数据骗取增发奖励。
    

Filecoin 设计了 **复制证明** （PoRe） 解决第 1 个问题，采用 **时空证明** （PoTS） 和质押机制解决问题 2。通过精密地调校 **经济模型** \[1\] ，并引入对真实用户的认证，来解决第 3 个问题。

虽然 Filecoin 在一定程度上解决以上难题，但又不可避免地产生了一些不良后果。首先是 **系统复杂性高** ，矿工除了支付必要的存储成本，还要承担高昂的证明成本和质押 Filecoin 损失的期权成本。要知道，相对而言，计算比存储更昂贵。根据 Filecoin 提供的适合小规模挖矿 \[2\] 的推荐配置 \[3\] ，8TB SSD 硬盘只需 300 美元，但 AMD 3.5Ghz 16 核高端 CPU 则 **需要 700 美元** ，还有成本超过 500 美元的至少 128GB 的内存 （作为对照，阿维挖矿的推荐最低内存是 8GB） 。

**挖矿成本高** 势必导致 Filecoin 系统的 **存储服务价格高** 。此外，验证真实用户是个微妙的问题，验证太严会影响用户使用体验，太宽则不能阻止矿工伪装成用户，验证就失去了意义，其间的平衡很难掌握。

同时，Filecoin 作为一种加密资产，价格会与加密市场总体行情高度关联，即 **波动性很高** 。如果 Filecoin 价格暴跌，矿工可能认赔离场，造成用户数据丢失。此外大幅度的价格波动还增加矿工质押 Filecoin 的 **隐含期权成本** 。隐含期权成本被大多数 PoS 经济模型研究忽视了，我认为至少解锁期损失的期权成本应该被考虑在内 （甚至也有人认为应该计算整个锁定期的期权成本） 。

解锁期是从提出解锁请求到获得可流通通证的期限，在此期间质押人不能转移通证，相当于放弃了一份 **现价欧式期权** （不同于美式期权，欧式期权只能到期行权）\[4\] 。以 Tezos 为例，设现价和行权价都为 2.53 美元，年化波动率为 185% \[5\] ，解锁期为 14 天 （更长的解锁期意味着更高的期权成本） ，无风险利率 4% （不影响计算结果） ，使用 B-S 期权计算器 \[6\] ，得出每份欧式期权价值 0.363 美元 （由于行权价等于现价，因此看涨和看跌期权价值相等） ，相当于本金价值的 14.3%。可见由于加密通证价格波动率很高，质押引发的隐含期权成本不应被忽略。

Filecoin 协议将存储和提取分为两个市场，就需要建立 **两套激励机制和定价机制** ，而且用户的数据访问权得不到保障。假设你通过 Filecoin 存储了重要数据，支付了一定量的存储费用。后续你或者其他用户 （例如你的客户） 访问该数据，还要根据提取市场的行情支付费用，如果提取市场价格很高，相当于数据被矿工「 **挟持** 」，用户面临要么 **支付高价** 、要么 **迁移数据** 的困境。

我在 2017 年阅读了 Filecoin 白皮书，随即放弃了对该项目的研究。程序员的直觉告诉我，复杂的外推式方案通常不会成功。什么是外推式方案？就是对问题无需深入思考就自然得出的办法，也可以称之为「 **想当然的办法** 」。Filecoin 的外推法就是：既然矿工需要 （持续地） 证明已经妥善保存了用户的数据，协议就应该包含一套 **密码学算法** 实现这些证明。至于高度复杂的证明不可避免地带来系统复杂度高和成本高的问题，只能留待以后慢慢解决。但是 Filecoin 的竞争对手——中心化云存储不需要证明和验证，云服务厂商和客户之间签订的是 **法律合同** ，法律保证了客户的访问权和追索权。可见只要证明成本居高不下，去中心化存储就难以提供有竞争力的价格。

**Sia** 、 **Storj** 等协议虽然在技术上与 Filecoin/IPFS 不同，但是它们都属于 **基于合同** 的去中心化存储协议。即用户和矿工通过协议签订合同，用户支付合同规定的费用，矿工承担合同规定的义务，协议 （或者用户） 对矿工履约情况进行检查 （挑战） ，并对违约行为进行惩罚。基于合同的去中心化存储协议都面临前面分析过的基本难题。

科技发展的常态是，当大部分人试图用「想当然的办法」解决复杂问题时，总有人能 **另辟蹊径** ，用其他人未曾预料到的、通常是简单得多的办法解决难题。果不其然，在对去中心化存储领域旁观三年之后，偶然的机缘让我了解到「 **阿维 Arweave** 」——去中心化存储破局者。

只有明白 Filecoin 的艰难，才能理解阿维的 **巧妙** 。阿维是一套完整的去中心化存储协议，不基于 IPFS，或者说它相当于 Filecoin + IPFS。阿维如何解决矿工证明的问题呢？答案是无需证明。阿维协议通过机制设计鼓励矿工尽量多存数据，而且优先存储副本少的 **稀缺数据** 。至于每个矿工存了多少，存了哪些，那是矿工自己的事情，既不需要证明，也不需要检查。就好比学校希望同学们认真学习，可以采用两种方法。一种是老师天天盯着每个人，是否专心听讲、认真完成作业，发现不认真的就批评罚站。另一种方法是 **通过考试** ，不管平时怎么学习，最后凭考试成绩说话，考得好有奖。两种办法都能提升学习效果，但是显然后一种要简单得多。

基于合同的去中心化存储类似于「盯人」，阿维协议则像「 **考试** 」，这种方式被称为基于激励的去中心化存储。可以这样来直观地理解其优势：Filecoin 要管理成千上万个不同的存储合同，检查每个合同的执行情况，分别提供奖励或执行惩罚。阿维协议只处理一个合同—— **所有数据永久保存** 。因此协议非常简洁，运行成本低，服务的价格和可靠性都优于基于合同的系统。

阿维的「 **访问证明** 」 （PoA） 是 PoW 的简单扩展。每一轮 PoW 谜题都跟某个过去的区块 （回忆块） 有关，只有存储了 **回忆块** 的矿工才有资格参与 PoW 竞猜。由于回忆块是随机确定的，事先无法预测，因此矿工存储的区块越多，参与 PoW 竞猜的机会越大，获得出块奖励的可能性越高。如果矿工的存储空间有限，不能保存全部区块历史，他会优先保存在网络中副本数量较少的区块。因为每个块被选为回忆块的概率相等，当一个稀缺区块被选为回忆块，就只有少数矿工有资格参与 PoW 竞赛，因此 **存储稀缺区块** 对矿工更有利。

有朋友可能会问，如果恰好所有节点都没有存储某个区块，那这个区块不就 **永久丢失** 了吗？是这样的，这个可能性存在。不过，我们可以量化计算单一区块永久丢失的风险 \[7\] 。

首先需要引入 **复制率** 的概念，复制率是矿工平均存储的区块历史的比例。例如网络一共出了 100 个块，平均每个矿工存储了 60 个块，那么复制率就是 60%。复制率也是任选一个矿工，他拥有 **随机挑选** 的某个区块的概率。反过来，随机挑选某个区块和某个矿工，矿工没有这个区块的概率是 1-复制率。当网络中有 N 个矿工节点时，所有矿工都没有某个区块的概率是（1-复制率）^N。存在一个丢失区块的概率是 (1-复制率）^N \* 区块总数。

假设阿维网络有 200 个矿工节点，复制率为 50%，区块总量为 200000，那么存在一个丢失区块的概率是 6.223\*10^-61，是一个可以忽略不计的极小概率事件。当前阿维网络的矿工节点约为 330 个，复制率是 97%，已出区块 51 万多个 \[8\] ，存在 **区块丢失的概率** 比前面的计算结果还要低得多，在数量级上与 **发生私钥碰撞** 的概率相当。而且上述计算的假设是矿工随机存储区块历史，考虑到矿工会优先存储稀缺区块，丢失区块的可能性更低。

阿维协议只有一个市场，用户也 **只需要支 付存储费** ，后续访问数据是免费的。能够做到这一点是因为阿维协议采用类似于 BT 的机制设计 \[9\] ，网络中所有节点都是平等的 （不区分矿工节点和用户节点） ，所有节点都尽量快速地响应其他节点的请求。跟 BT 一样，上行贡献越多，下行速度越快。自私节点会被其他节点降权，逐渐被网络排斥在外。

要全面理解阿维协议的设计，最好的方法是 [**阅读黄皮书**](https://github.com/toliuyi/arweave_notes/blob/master/arweave-yellow-paper-cn.pdf) 。虽然黄皮书篇幅较长，也有不少公式，但是不必担心，有中学数学基础就能看懂。

与 Filecoin 相比，阿维网络有两大优势。一是 **成本低** 。虽然 Filecoin 主网还没有上线，我提前做个预测：在 Filecoin 主网上线一年后 （经济模型进入稳定状态） ，1MB 文件在阿维网络做几百个副本永久存储的价格，会低于在 Filecoin/IPFS 网络上 5 个副本存储 5 年的价格，而且阿维网络的数据访问是永久免费的。第二，阿维协议的激励机制使数据存储和访问都 **更加可靠** 。通过简洁巧妙地解决了去中心存储的最大难题，不需要 2 亿美元的募资和长达三年的开发，阿维主网已经上线两年多。

阿维不是 Filecoin/IPFS 的陪跑者，而是最有希望 **让大规模去中心化数据存储成为现实** 的加密协议。

### 以太坊

阿维很少被拿来跟 **以太坊** 比较，毕竟在 **Web3.0** 协议栈中，它们处在不同的层级，看上去是互补关系。但是深入研究阿维协议，就会发现更多的可能性。

以太坊 （以及其他智能合约公链） 为支撑 **去中心化应用 DApp** 而生。DApp 是公平透明地执行，不能被个别或者少数人控制的互联网应用。从软件架构角度，网络应用 （包括互联网应用和 DApp） 可以分为表现、业务逻辑和持久化 （数据） 三层。我们不妨分别从这三层分析 DApp 的发展瓶颈，以及阿维协议的应用潜力。

迄今为止，DApp 的表现层仍然停留在和中心化 Web 应用相同的状态，即由开发者部署在 **云服务器** ，再下载到用户客户端执行。因此开发者和云服务提供商仍然具有停止和审查 DApp 的权利，网络中断、服务器宕机、DNS 劫持等故障和攻击也仍然威胁着 DApp 的 **可用性和安全** 。此外，DApp 的 IT 基础设施成本会随用户数量的增长而提高，令开发者必须采用某种货币化手段，以维持 DApp 的运行。货币化手段要么是 Web2.0 式的，即 **贩卖流量** ；要么带有加密协议的特色，即 **发行通证** 。一旦货币化失败，开发者可能放弃运行 DApp，用户只能转而寻找替代品。而即便侥幸存在替代品，还是面临同样的问题。可以维持运行的 DApp 也常会遇到「 **强制升级** 」的问题，即新版本不一定不比老版本更受用户欢迎，但用户不能阻止其升级，也不能继续使用老版本。

综上所述，去中心化应用的 **表现层** 仍然是中心化的，仍然能够被个别或者少数人控制。

阿维协议的应用层被其他**永在网**（permaweb），其主要（不是唯一）的应用程序架构是**无服务器**（Serverless）式的。使用 HTML、Javascript 和 CSS 开发 DApp 的表现层不同。用户层的部署不是上传到云服务器，压缩打包**存储在阿维网络**，节省的费用很低，而且是一次付费的永久服务。 DApp 原有的使用方式访问 DApp DNS 和 TLS 与普通浏览器，无需新用户使用客户端。不管 DApp 用户如何增长，都不会再给开发者带来开销。

由于阿维是**去中心化网络**，无论是开发者还是阿维矿工，都无法阻止或审查用户使用 DApp。开发者可以开发 DApp 的新版本，但新版本不能覆盖旧版本，使用哪个版本的选择权在用户那里。可见阿维实现了DApp表现层的去中心化，因此有越来越多的DApp**表现层**移植到阿维，包括：**Synthetix Exchange、Tokenlon、KyberSwap、UniSwap、Oasis App、Curve.fi**等等 \[10\] 。

需要说明的是，使用去中心化存储实现 DApp 表现层的去中心化，这个概念不是阿维协议的创造。早在 2014 年，**Gavin Wood**博士在描述 Web3.0 网络形态的论文 \[11\] 中带着「**静态内容出版**」寄手Web3.0的四个基础组件一个。这个实践的思考结果是**Swarm**项目\[12\]。Swarm和IPFS都予厚望，以解决DApp表现层的去中心化问题。由于种种原因，这个愿望尚未实现。直到阿维层的协议，DApp 的去中心化才能实现。

以太坊等智能合约公链实现了**DAPP状语从句：业务逻辑层数据层**的去中心化，众所周知但是存在**扩展性瓶颈**。扩展性和价格是一体两面的问题，扩展性限制源自计算和存储资源稀缺，在中心网络，稀稀资源的原因是价格容易去化，因此选择从**价格角度**分析。

先看**数据层**。以太坊存储256位整型数据要消耗20,000gas \[13\]，1MB数据需要6.25亿gas。按gas价格20gwei（本文写时恰逢DeFi热潮，gas价格常高达100gwei以上），ETH单价40美元计算，在坊坊链上存储 100 MB 数据的**高达 5000 美元**消耗，存储在钱包的高价。例如希链上，数据、多媒体数据等存储在下。如果采用数据化的下链数据**关系型或者 NoSQL 数据库**，DApp 仍可存在部分存储**数据库**，会被存储详细的链或人（云服务厂商和开发者）控制。因此，很多 DApp 数据更倾向于选择去中心化，比如 IPFS 等。

在这个环节上，阿维提供完全去中心化的，低成本，高可靠性的永久数据存储，从而成为以太坊的得力助手。不必牺牲去中心化，目前阿维存储1MB数据**仅需0.1美分**你没有看，是以太坊的五百万分之一。按价格计算，在阿里云存储 1MB 数据 100 年的数据是 2.6 美分。而且只支持同城同步复制，数据同步和数据访问的网络已经开始启用。而阿维网络是全球五大洲的**一个节点集群复制**，数据和访问全免费。你还是没有看错，去中心化的阿维网络比中心化云存储的**价格玩家**。无怪乎有 Solana \[14\] 、SKALE \[15\]、Prometeus \[16\] 等 Layer 1、Layer 2、DApp 协议选择阿维作为**存储层**。还有 InfiNFT、Mintbase.io 和 Machi X 等 NFT项目使用阿维存储 NFT 媒体资源、元数据和代码 \[17\] 。

智能合约是 DApp 的**业务逻辑层**。与数据层类似，智能合约的接口是扩展性/计算成本问题。根据**Vitalik Buter**的估计，以太坊的计算和存储成本是亚马逊云服务的大约 100 万倍 \[18\] \] ，前文对 DApp 数据层成本的细节也能印证此估计。公链计算和成本高昂的根本原因是其**全数据结构**，即所有的链上都是每一个全节点存储，所有的计算都在每一个节点执行。实现公链扩容的思路有**代议制、各种和分片**，深入的讨论请参见拙作《[Polkadot 架构解析](https://www.chainnews.com/articles/346896273320.htm)》。

阿维的**Smartweave智能**合约\[19\]则完全另辟蹊径。Smartweave的智能合约是Javascript开发的程序，在阿维网络上，因此具有不变性。与合约代码同时提交给网络保存的，还有合约的创世状态。与以太坊（以及其他公链）的智能合约不同，Smartweave 不是由矿工节点执行，**放大**到**合约调用者**的计算机的执行。执行的过程是从合约的世界状态状态开始，按确定的创建顺序执行合约历史上的全部，最后执行合约调用者的交易。完成后，合约调用者将自己交易的和执行后的合约状态提交到阿维网络，进入永恒的存储。职业的合约重复调用以上过程。

吸引，对于一次智能合约交易，阿维网络很**流行一个节点**——调用者自己的节点来（注意阿维网络不是全节点和轻点）。由于调用者节点执行（同时验证） ）了过合约历史上的全部，因此他不需要信任或依赖任何节点，即能得到聪明**的计算结果**的新状态。**二层链**，执行智能合约对二层链的全量同步和验证。这一设计注册DApp 业务逻辑层的**可扩展**刃**性**/计算复杂难题迎刃而解。极少的边际成本，因为通常情况下调用者的计算设备已经被购买或长期使用了。

有可能会问：随着交易数量增长，智能合约不会逐渐缓慢？确实，但有办法可想。例如，由调用者对合约的结果状态进行了引入，从而形成了概念**状态快照**。如果该调用者值得信任（调用者是智能合约开发者的情况），时间的调用者可以指定状态时间作为最终状态，就可以快速时间快照之后的交易。智能可信的假设已经包含了对最终状态的信任。

，Smartweave 尚待开发，当前版本是**V0.3**。 以上内容应该考虑对 Smartweave 潜在的探讨。要达到商业，Smartweave 还需要解决很多问题，例如**可组合性**。

从我Smartweave运行机制的理解，实现可组合性没有特定的技术障碍。但是，我一直认为以太坊智能合约的可组合性「**特定的**」对，可能限制**契约**系统复杂度的指数式期待Smartweave团队有更多令人惊喜的创新，用好可性柄这双刃剑。

综上所述，阿维协议 DApp 真正实现全面的，并且计算解决公链化领域多年的和存储的**可扩展性/成本**问题。从这个支持说，阿维协议 DApp 更应该归为 Blockstack \[20\] 所见的「**Web3.0 全栈协议**」，去中心化存储。

---

*Originally published on [墨迹](https://paragraph.com/@0xad0cae6dc36e76c016f3c2fb7ecd43968eb84d8b/arweave-web3)*
