{"content":{"body":"撰文：0x76@BlockBeats\n\n越来越多的内容创作者开始意识到中心化存储的潜在风险，为了使自己创作的作品不会因某个中心化节点的失败而彻底消失，人们开始尝试将自己的文章保存到使用Arweave作为永久存储媒介的Mirror平台上。\n\n那么，Mirror上的文章是如何被保存到Arweave上的？在Mirror上存储的成本由谁来承担？用户又该如何验证其文章是否真的被永久存储呢？\n\n带着这些问题，我们对Mirror的整个产品使用过程进行了体验。在下文中，我们将对这些问题进行详细的解答。\n\n# Mirror如何保存创作者的文章？\n\n在回答这个问题前，我们首先需要分清Mirror在保存用户文章时使用的两类Web3组件。一个是用于对文章进行永久存储的Arweave，另一个是用于对文章进行确权与交易的NFT铸造平台以太坊主网。\n\n## （1）Mirror的存储组件：Arweave\n\nArweave是一条针对存储进行了底层性能优化的公链，因此用户在Arweave链上存储数据的成本相较其他智能合约公链平台有极大的降低。同时，链上存储的特征保证了在Arweave之上存储数据的永久性，因此，基于Arweave的存储模式也常被归类为永久存储。\n\n那么，在Mirror上写作的文章，是如何被永久存储到Arweave上的？\n\n我们打开mirror.xyz的首页，链接Metamask钱包进行签名后来到首页\n\n![](https://images.mirror-media.xyz/publication-images/_6aKtNxbmsfB67swdzcOm.png?height=1548&width=2826)\n\n直接点击Entries后进入文章的编辑页面。输入标题和正文内容，然后点击右上方的Publish按钮。\n\n![](https://images.mirror-media.xyz/publication-images/1kFz7GkQvVhdypgOIU8M6.png?height=932&width=2834)\n\n稍等片刻，我们的测试文章便在Arweave链上进行了存储。重新打开刚才的文章界面，可以看到，在输入的文章内容之下，已经出现了Arweave上的交易哈希，点击后可以直接使用viewblock浏览器对交易进行验证。\n\n![](https://images.mirror-media.xyz/publication-images/scsFu8QgSDUH1ot0shA-g.png?height=1052&width=1604)\n\n文章的上链一般需要几分钟的时间，所以如果你打开后显示的是这个界面也不用担心，稍等片刻就好。\n\n![](https://images.mirror-media.xyz/publication-images/AMpxcyTW-RHJp2ekn9Dil.png?height=834&width=2194)\n\n我们重新刷新一下界面，可以看到交易已经成功确认。\n\n![](https://images.mirror-media.xyz/publication-images/BKu7gvCl9ULlLeZ2T5cI8.png?height=1548&width=2176)\n\n在这笔交易的浏览器界面中，我们可以看到交易哈希，交易金额等信息。但是与以太坊交易逻辑不同的是，在Arweave中，添加存储内容的交易并不需要有明确的交易接收地址，因此右侧的转入地址为空值。同时对于存储型的交易，还会在界面中间位置显示存储内容链接。\n\n我们可以点击中间这个链接，看看文章的具体保存形式。\n\n![](https://images.mirror-media.xyz/publication-images/fkSGExDJ6I6Y2zJj2CHqt.png?height=214&width=2856)\n\n在新打开的链接中，可以看到刚刚输入的正文内容以及文章标题。除文章内容外，其余主要为文章格式与签名等信息。可见，刚刚创建的文章已经被永久的保存到了Arweave的链上。\n\n那么，如果用户后续继续对文章进行修改，那么修改的内容是否也会被永久保存呢？我们继续进行测试。\n\n![](https://images.mirror-media.xyz/publication-images/haqGLFYQTBwTp2VjNRgJ3.png?height=822&width=1866)\n\n点击上方的编辑按钮，重新回到文章的编辑界面。\n\n![](https://images.mirror-media.xyz/publication-images/NY_0GWE_78plokB2pukrf.png?height=910&width=2850)\n\n在文章下方随意添加一段文字，然后点击右上方的保存按钮。\n\n![](https://images.mirror-media.xyz/publication-images/JA2tHiDEsey5_0dXEh-aB.png?height=1016&width=1540)\n\n稍等片刻，我们看到文章已经经过了更新。而且，在文章底部的Arweave交易哈希也已经发生了变更，我们点击链接进入浏览器界面。\n\n![](https://images.mirror-media.xyz/publication-images/W7pXeeQ853PA6Rqf_Vh8M.png?height=1550&width=2170)\n\n可以看出，新的交易哈希与区块高度等等信息都已经发生了变更。说明我们在保存文章修改的时候，Mirror会在后台自动对新的文章进行二次上链存储。我们点击存储链接检索存储的具体内容，可以看到，更新的文字已经重新提交到了Arweave的链上。\n\n![](https://images.mirror-media.xyz/publication-images/x6fxW7jEJVQDzLeq5LczJ.png?height=244&width=2858)\n\n可以说，Mirror的存储逻辑是十分可靠的。只要用户点击发布或保存按钮，Mirror系统都会自动发起一笔交易，对整个文本重新进行链上保存。除了交易的确认时间受限于Arweave的性能需要用户等待几分钟以外，其余整个Mirror的使用体验，可以说与Medium等中心化写作平台无异。同时免费支持链上存储的特点，使得Mirror成为了目前最好的Web3写作平台了。\n\n但我们知道，任何一笔链上交易都是有成本的。刚刚我们在保存的过程中并没有弹出钱包交易确认页面，那么这些存储成本是由谁来支付的呢？\n\n我们重新检查刚刚两笔交易的信息，发现两笔不同的交易都是由同一个地址“Ky1c1Kkt-jZ9sY1hvLF5nCf6WWdBhIU5Un_BMYh-t3c”发起的。点击地址链接，进入到该地址的浏览界面。\n\n![](https://images.mirror-media.xyz/publication-images/lfHkexi42fGo9K_sTGMXy.png?height=1204&width=1250)\n\n通过该地址的交易记录，可以推测出该地址大概率属于Mirror.xyz官方所有，专门为用户向Arweave网络提交存储交易信息。以刚刚我们进行的一笔交易为例，交易总共花费了0.00004203AR，占用了1.07K的链上存储空间。如果按照单个AR价值50美元计算，这一笔交易Mirror对用户的补贴成本大概是0.002美元。\n\n当然，如果用户的文章更长，修改保存的次数更多，Mirror支付的相应补贴成本也会越高。\n\n## （2）Mirror的确权组件\n\n将用户的创作内容进行链上永久存储，仅仅只能保证这些作品不会消失，但是依然不能帮助创作者进行确权并产生经济收益。因此，在存储的同时，我们需要另一组Web3组件，以便对存储的内容进行确权，也就是人们常说的将内容铸造为NFT格式的资产。\n\n这一步，Mirror选择了相对成熟的以太坊主网进行处理。只要我们在保存文章前勾选右上方的NFT按钮，便会直接跳出钱包的确认界面。整个体验与大家熟悉的铸造NFT流程基本一致，因此本文便不再进行过多介绍。\n\n![](https://images.mirror-media.xyz/publication-images/V9B2LYlB2kMjYwyXczcM0.png?height=1022&width=2812)\n\n经过刚才的体验可以看出，用户发布一篇Mirror文章，一共会涉及到两次上链的过程。一次是内容本身在Arweave链上进行永久存储，成本由Mirror官方进行补贴，另一次是在以太坊以NFT的形式进行确权，成本由用户自己支付。\n\n# 基于Mirror的两个存储试验\n\n上文中我们提到，用户通过Mirror在Arweave上永久存储文章的成本，目前依然由Mirror官方进行补贴。那么，有没有可能利用目前Mirror免费存储的特点，在自己不需要支付AR作为存储成本的前提下，将Mirror作为一个免费的永久存储网盘，保存个人的照片等图文资料呢？\n\n下面我们将对Mirror进行两次极限测试，看看其存储机制背后的底层逻辑到底是什么样的。\n\n## （1）使用Mirror永久存储《清明上河图》\n\n我们从维基百科下载了《清明上河图》的高清扫描版，总大小104M。链接：https://zh.wikipedia.org/wiki/%E6%B8%85%E6%98%8E%E4%B8%8A%E6%B2%B3%E5%9C%96#/media/File:Alongtheriver_QingMing.jpg\n\n![](https://images.mirror-media.xyz/publication-images/QoFiB4yuqVAH8JSRUpiIW.png?height=1044&width=2830)\n\n在上传之后点击保存按钮，稍等片刻，进入交易浏览界面。\n\n![](https://images.mirror-media.xyz/publication-images/dZ2wyfnb-w4ncz-cdqSC_.png?height=1540&width=2148)\n\n似乎不太对，怎么总存储空间只占用了1.25KB？\n\n![](https://images.mirror-media.xyz/publication-images/1pLztj3CvER2PzDjHY7W1.png?height=248&width=2860)\n\n点开具体的存储内容链接，可以看到图片的存储部分被替换成了一个中心化的网址链接：https://images.mirror-media.xyz/publication-images/jHh43U86fDtX6qEQUJO5q.jpeg\n\n可见，Mirror中所谓的永久存储，其实只是针对文章中的文字部分。而诸如视频、图片等占用存储空间较大的多媒体内容，Mirror依然选择了中心化的存储方案。如果未来Mirror提供的托管服务停止运行，用户在文章中添加的图片等多媒体内容依然有可能会从互联网中彻底消失。\n\n## （2）使用Mirror永久存储《资治通鉴》全文\n\n既然永久存储大型图片的尝试没有成功，那么我们再来试试Mirror对存储大型文字信息有没有大小限制。\n\n我们找来了记载着我国自战国到五代后周，总共一千三百余年中国历史的《资治通鉴》全文。下载后的txt版本文件大小为9.4M，共计约三百万字。我们将全文进行复制并插入到Mirror的编辑页面上，点击Save按钮提交。\n\n![](https://images.mirror-media.xyz/publication-images/2kIKydELVmujLtioBLI_b.png?height=1540&width=2848)\n\n然后......没有成功。\n\n又进行了几次尝试，依然没有成功（见右下角错误提示）。\n\n看来Mirror对字数还是有总量限制的。我们不断对文章进行删节，一直删减到约23万字后（周威烈王二十三年——汉成帝河平四年），提交成功了。\n\n![](https://images.mirror-media.xyz/publication-images/44--LLVMF9MciDrwEjuPm.png?height=1542&width=2166)\n\n从浏览器中可以看到，这笔交易一共占用了Arweave链上共849.73KB的存储空间。同时支付了0.00016407AR的手续费，以50美元单价计算，约为0.008美元，成本仅是上一笔的4倍，并没有如预期出现显著的增加。\n\n![](https://images.mirror-media.xyz/publication-images/-Fv4D4EgIdK-0zPX6_fr3.png?height=1246&width=2180)\n\n可见，Mirror使用Arweave保存文字信息的效率与成本还是可以接受的。虽然目前Mirror对文章的总字数有一些限制，但对于普通用户来说，拿Mirror平时记个日记之类的还是足够用了。\n\n经过刚才的两次试验，利用Mirror的存储补贴活动免费使用Arweave存储空间的计划基本失败了。但由此我们也可以看出，Mirror通过主动补贴用户存储成本的方式，将用户使用Arweave进行永久存储的操作进行了最大程度的简化。用户不需要购买AR直接支付存储费用，也不需要安装Arweave特定钱包并学习与一条全新的公链进行交互。\n\n虽然存在一些限制，但可以说Mirror在整合了Web3永久存储组件的同时，最大程度的保证了产品的使用体验。从产品设计的角度来说，Mirror可以说是找到了目前结合Web2与Web3各种组件的一个较好的平衡点。\n\n# Mirror的创新与局限\n\n经过刚才的试验后，让我们重新回到对Mirror产品的讨论。可以看出，结合了免费永久存储功能的Mirror已经不再是Medium简单的复制品。且其在保证用户产品使用体验的同时，兼顾并尽量融合了一些成熟的Web3组件。但不得不承认，如果以真正可以承载上千万用户使用的Web3产品的标准来评价，目前的Mirror依然存在着以下一些明显缺陷：\n\n1\\.Mirror依然不是完全的去中心化永久存储，而是结合了部分中心化托管机制的混合型存储平台，保存在Mirror平台之上的媒体文件依然承受着丢失的风险。当然这个问题需要等待行业的存储基础设施的进一步发展才能逐步解决。\n\n2\\.由于Mirror对用户的存储成本进行了补贴，在失去了通过经济机制对用户存储进行调节的手段后，必然需要采取一些行政上的限制措施，防止恶意用户利用免费漏洞对Mirror平台进行攻击。因此Mirror不太可能做到完全的开放，会在机制上有一些限制措施（如字数上限等）。\n\n3\\.使用以太坊主网铸造NFT进行确权的成本过高，无法做到大规模普及。这使得大量文章内容的存储与真正的用户所有权相脱节，难以进行后续的流转及商业化运作。正如Arweave的创始人Sam Williams所说：“Not your key, not your voice.”这些没有被NFT确权的内容，全部由Mirror控制的钱包公开存储在Arweave之上，虽然在存储的过程中注明了用户的以太坊地址，但离真正由用户完全掌握的资产形式，还有一定的距离。\n\n4\\.目前由Mirror官方设计的激励机制，依然将用户铸造的NFT视为收藏品进行处理。作者的最终激励大小与文章的NFT收藏次数直接相关。不同于目前经过验证的以流量变现进行激励，或依据文章内容质量进行激励（如论文引用量）等方式，Mirror采用了收藏品的逻辑激励创作者。然而这种模式尚未经过较长时间的检验。其能否支持平台未来的大规模使用，可能还需要不断地试错与调整。\n\n5\\.缺少内容索引与流量入口。许多人使用Mirror的第一个问题是，如何找到发布在Mirror上的优质文章？当前的Mirror更像一个原始的数据库，作者依然需要依赖其他平台如Twitter对文章进行分发与导流。Mirror目前还缺少一个聚合内容的优质前端，当然，这个工作或许可以依靠web3的方式，由社区逐渐完成。\n\nMirror无疑是当下可以找到的使用体验最好，最为去中心化的写作平台。Mirror的出现，在某种程度上使我们看到了未来基于Web3技术构建的新互联网的雏形。虽然受制于当前基础设施的成本等瓶颈，Mirror在产品上还无可避免的存在一些缺陷。但相信随着Web3底层技术的发展，这些问题都会逐步得到解决。","timestamp":1638509448,"title":"Mirror上的内容真的会永存吗？我们存了一张《清明上河图》"},"digest":"jBkHZ85foAF2Mzkh-ShKVn3i9BHftyjwXWKFimoZRxw","authorship":{"contributor":"0x336CcE99dEcd392bAC66a6C4dd88480E2442696E","signingKey":"{\"crv\":\"P-256\",\"ext\":true,\"key_ops\":[\"verify\"],\"kty\":\"EC\",\"x\":\"s38Xfe3zl9nrFT-lRvIf7fcZEXe0ULAzLmKwSpPWNZY\",\"y\":\"svXTwLzsWxv06GC6SqFrIRYsh_SOHJSHBN7gDNSYgQ8\"}","signature":"J5lETW22zfE0qAkfoECSw4dPY1wp8XwoLsRe8De75t1W6s6ta8WaK-ip5HbWsY2F8dcNj8utjDSLPIznoCKl7A","signingKeySignature":"0x1a9201a2b873e108f0e9dfb345c8f6d580c935fa4a16c7d34d4f212cbd9484e4368eea9e735c6ce1a93bac731689fa166f1f841908954ef780bed8ce9d60dde71b","signingKeyMessage":"I authorize publishing on mirror.xyz from this device using:\n{\"crv\":\"P-256\",\"ext\":true,\"key_ops\":[\"verify\"],\"kty\":\"EC\",\"x\":\"s38Xfe3zl9nrFT-lRvIf7fcZEXe0ULAzLmKwSpPWNZY\",\"y\":\"svXTwLzsWxv06GC6SqFrIRYsh_SOHJSHBN7gDNSYgQ8\"}","algorithm":{"name":"ECDSA","hash":"SHA-256"}},"nft":{},"version":"12-21-2020","originalDigest":"2Oz81CEH9CQfQ6snlgnuv2sMUSqdgEjV1YpLyOIy-Ik"}