**Arweave**是个「非典型」的区块链,大部分人一无牵挂,了解稍有人的常也。它把一起**去**海**淘**的**项目**的英文陪跑**Filecoin**的**中心化项目**。耐心找来该项目的白皮书和黄皮书研究的朋友,链水也难免是一头雾水因为通篇是围绕冷门概念——“**信息**不易坚守”的辨析,看容容,密码学创新,DEFI支持、价值等能令币圈和圈眼前一亮的概念。
谁会需要 **永久数据存储** 并 **为之付费** ?人生不过百年,凭什么我们要关心永久保存人类的知识和历史?
Arweave 创始人及核心团队自有其特立独行的理由。作为 Arweave 黄皮书 的中文译者,我打算从典型的币圈和链圈的视角解读一下 Arweave,以免国内区块链创业者和投资者与这一重大创新失之交臂。首先,请允许我将 Arweave 音译为「 阿维 」 (尽管这个中文名字尚在中文社区讨论中,并未最终确定) ,以便于在中文加密社区传播。
IPFS 是去中心化存储领域的 开创者 ,从 2014 年上线开始,如同 BT 一般自由生长,已经存储了大量数据。但是要让 IPFS 成为商业可用的存储系统,而不是随意的数据分享平台,必须提供 服务质量保障 。这就是 Filecoin 要解决的问题,即 IPFS 的经济激励层。从提出 Filecoin 概念,到今年主网「即将」面世,可谓是迁延日久。作为开发了 IPFS、libp2p 等硬核技术的 协议实验室 (Protocol Labs) ,为何会迟迟搞不定 Filecoin?
Filecoin 协议构建了两个市场:数据 存储 市场和数据 提取 市场。有存储需求的用户到数据存储市场申明自己的需求:我要存 ** 大小的数据,要求 ** 个副本,存储 ** 天。市场中的存储服务商 (存储矿工) 对这项存储需求报价,用户接受报价就跟矿工签订合同,支付费用。当用户需要使用数据时,就到数据提取市场提出需求;再由提取矿工给出报价,满足数据访问需求。
上述过程看上去不算复杂,实现起来却有几个困难:
矿工需要提供存储了用户数据的不可伪造的 密码学证明 ;
在合同有效期内,协议要持续检查矿工如约保存了数据。如果违约,矿工要遭受罚款;
为了 鼓励矿工 存储数据,要让已存储数据的容量比空闲的容量赚取的更多 增发奖励 。同时需要防止矿工注水垃圾数据骗取增发奖励。
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 一样,上行贡献越多,下行速度越快。自私节点会被其他节点降权,逐渐被网络排斥在外。
要全面理解阿维协议的设计,最好的方法是 阅读黄皮书 。虽然黄皮书篇幅较长,也有不少公式,但是不必担心,有中学数学基础就能看懂。
与 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 架构解析》。
阿维的Smartweave智能合约[19]则完全另辟蹊径。Smartweave的智能合约是Javascript开发的程序,在阿维网络上,因此具有不变性。与合约代码同时提交给网络保存的,还有合约的创世状态。与以太坊(以及其他公链)的智能合约不同,Smartweave 不是由矿工节点执行,放大到合约调用者的计算机的执行。执行的过程是从合约的世界状态状态开始,按确定的创建顺序执行合约历史上的全部,最后执行合约调用者的交易。完成后,合约调用者将自己交易的和执行后的合约状态提交到阿维网络,进入永恒的存储。职业的合约重复调用以上过程。
吸引,对于一次智能合约交易,阿维网络很流行一个节点——调用者自己的节点来(注意阿维网络不是全节点和轻点)。由于调用者节点执行(同时验证) )了过合约历史上的全部,因此他不需要信任或依赖任何节点,即能得到聪明的计算结果的新状态。二层链,执行智能合约对二层链的全量同步和验证。这一设计注册DApp 业务逻辑层的可扩展刃性/计算复杂难题迎刃而解。极少的边际成本,因为通常情况下调用者的计算设备已经被购买或长期使用了。
有可能会问:随着交易数量增长,智能合约不会逐渐缓慢?确实,但有办法可想。例如,由调用者对合约的结果状态进行了引入,从而形成了概念状态快照。如果该调用者值得信任(调用者是智能合约开发者的情况),时间的调用者可以指定状态时间作为最终状态,就可以快速时间快照之后的交易。智能可信的假设已经包含了对最终状态的信任。
,Smartweave 尚待开发,当前版本是V0.3。 以上内容应该考虑对 Smartweave 潜在的探讨。要达到商业,Smartweave 还需要解决很多问题,例如可组合性。
从我Smartweave运行机制的理解,实现可组合性没有特定的技术障碍。但是,我一直认为以太坊智能合约的可组合性「特定的」对,可能限制契约系统复杂度的指数式期待Smartweave团队有更多令人惊喜的创新,用好可性柄这双刃剑。
综上所述,阿维协议 DApp 真正实现全面的,并且计算解决公链化领域多年的和存储的可扩展性/成本问题。从这个支持说,阿维协议 DApp 更应该归为 Blockstack [20] 所见的「Web3.0 全栈协议」,去中心化存储。

