EOS存储白皮书学习笔记

in #eos7 years ago

本文由币乎社区(bihu.com)内容支持计划赞助

EOS的定义:为商用分布式应用设计的一款类操作系统 的 区块链基础设施。

在学习EOS存储系统前,我们先了解下平常我们访问的中心化网站应用的图片、视频等数据是存在哪里的?
一般网站的图片、视频等文件是放在服务器的硬盘上。在存储的时候,程序会将图片存储的目录地址保存在数据库中,在需要的时候,根据数据库中的目录地址去读取图片。在中心化网站应用中,存图片的服务器、硬盘都是需要开发者自己去购买,如果你做的网站不赚钱,那么这个钱就是亏掉了。在这方面EOS有不一样的做法,它不需要开发者花钱,具体是怎么做的呢,我们学习了《EOS存储白皮书》后就知道了。

摘要

EOS.IO存储是一个被设计为去中心化的文件系统,旨在为每个人提供永久的存储能力,并且要做到任何网页浏览器都可以访问存在上面的文件。

与其他建议的替代方案不同,除了完全可退还的存款之外,EOS存储上的存储或带宽将不会产生预付费用或固定费用。用户可以在需要存储和带宽的时候持有代币,并且在不需要存储和带宽的时候出售代币。

它是基于星际间文件系统(IPFS)和EOS软件,,并且为那些持有基于EOS软件的区块链的Token的人提供服务。区块生产者被激励去复制和托管那些允许任何人通过Internet浏览器的访问的文件。

简单总结下:

  1. 基于星际间文件系统(IPFS)设计的
  2. 任意浏览器都可以访问
  3. EOS存储服务由区块生产者提供。只要你有Token,就可以用。

背景

IPFS是什么?

星际文件系统(IPFS)是永久的、去中心化保存和共享文件的方法,这是一种内容可寻址、版本化、点对点超媒体的分布式协议。它有3个特点:

  1. 内容可寻址:通过文件内容生成唯一哈希值来标识文件,而不是通过文件保存位置来标识。相同内容的文件在系统中只会存在一份,节约存储空间
  2. 版本化:可追溯文件修改历史
  3. 点对点超媒体:P2P 保存各种各样类型的数据

FileCoin区块链

由于IPFS不提供和保证文件的存储、托管和带宽。也就是说即使能有文件名,但是有可能找不到对应的文件内容。IPFS团队为了解决这个问题,发布了FileCoin区块链,使用区块链的支付系统来激励拥有剩余存储空间的人帮助提供稳定可靠文件的存储、托管和带宽。Filecoin采用的模式与其他分散式存储解决方案Maidsafe,Storj和Siacoin类似。简单点说,你提供了存储空间,别人在用你的资源的时候,你就可以收到钱,那么你就会保证文件完整。反之,用资源的人就要花钱。

EOS存储设计

EOS对存储的需求

作为一个可以任意运行智能合约的平台,EOS设计性能需要达到百万级。这个这样的设计如果每秒进行100w次交易,每次交易产生100字节的数据,那么每秒钟就有100M的数据记录。如果每个区块生产节点都要存储一份这样的数据,那时间稍久数据量就是一个天文数字。另外,对于一些智能合约他们天然就有存储数据的需要,比如需要存储文字、图片、声音、视频等等数据。这些数据更不可能存储在区块链上了。

EOS存储设计

上面说的filecoin的激励模式,EOS其实也可以用的,只不过如果EOS采用那种方案,那么以后开发者多了,就需要消耗大量的钱去购买存储服务,无疑是增加了开发者的成本。这样门槛变高了,也不利于推广。而且这是不符合EOS的设计哲学的,还记得《EOS技术白皮书》中说的Token的作用吗?你有1%的Token,就有1%的使用权,资源提供者通过EOS每年增发的5%的token获得收入。所以,EOS还是用这种设计机制,具体是怎么个机制呢?

首先,设计了一套文件系统智能合约,发行了一种 token 叫TOK。它允许每个用户定义一个目录结构,这个目录结构下面的所有文件都链接了一个IPFS文件。也就是说TOK只存储IPFS的文件链接和一个人类可读的文件名。

其次,当用户要上传文件的时候,先将文件传给指定的区块生产者。区块生产者会验证文件和文件名匹配,然后将交易广播发送到整个区块链系统,其他的区块生产会通过IPFS网络复制那个文件。这样用户就成功的上传了一个文件,同时在的home目录下保存了该文件的链接。

最后,EOS是怎么保证文件的可用性,以及每个人可以存储多大体积的文件?

和使用EOS资源类似,当用户需要存东西的时候,系统就会锁定一部分的TOK,当然如果用户不需要存东西了,系统就会解锁TOK。那么锁定多少呢?EOS给出了一个公式:价格=余额/(供给*CRR)。CRR:恒定储备比率。
公式

区块生产者可以通过调整CRR(向上或向下)或调整总存储量供应(向上或向下),使存储供应不低于已经声明的存储空间。

这种设计机制,就使用户无需为其存储和带宽使用支付任何TOK。

不良数据

在存储系统上难免会有许多黄色、暴力等不符合当地法律法规的不良数据,这时候EOS就需要制定规则来防范。EOS存储协议将允许块生产者删除任何法律或仲裁要求删除的文件。也为了防止区块生产者乱删,TOK持有者可以投票把区块生产者票出局。

隐私

EOS存储是一个存储公共信息的平台,如果你想存储私有信息,那需要你在上传之前就自行加密。当然只是文件加密,你的区块链账户的身份还是会被别人看到的。

去中心化和复制(副本)

去中心化:EOS.IO存储的核心将是IPFS,它提供了一个去中心化的网络,在这个网络上任何人都可以托管通过其地址识别的文件。

复制(副本):区块生产者代表20或更独特和独立的个人或组织,每个人或组织都可以在全球不同的司法管辖区复制和托管数据,只要20个块生产者中至少有一个在线并提供文档,该文件对所有人都是可用的。

根据提出的存储智能合同和相应的法律义务,不在总票数前25名的生产者将无法提供EOS存储服务;但是,在被选入前25名后,它们应该表明他们能够快速启用服务的能力。

EOS.IO存储的经济学

天下没有一个免费的午餐,所以是谁实际在支付由区块生产商提供的存储空间和带宽?

现有的去中心化解决方案都依赖于每月小额支付,但这是不可持续的,因为它创造了不断增长的基本转账负载,并且很难在不信任具有付款能力的第三方的情况下进行自动化。小额支付创造了不利于大规模采纳的交易阻力。我们通常看到消费者对支付小额贷款的抵制并且偏爱固定费用或一次性付款。

储存经济学

使用EOS存储的所有TOK持有人将通过EOS每年5%的通货膨胀的部分来支付该费用。更具体来说,在已存储文档的用户删除文档之前,由于无法出售TOK,他们面临这种供应通货膨胀。那些需要存储的人通过金钱的时间价值来支付费用。从而取消小额支付,没有交易摩擦,也不会有意外的费用。(懂经济学的程序员真是牛逼了!)

带宽经济学

相对存储,带宽的分配相对复杂一些,因为上传和存储文件的人可能与下载该文件的个人有很大的不同。请假设YouTube的去中心化版本,有人上传了一部家庭电影,然后被数百万人观看。发布视频的人不想或无法支付百万观众带来的带宽消耗(没那么多TOK可以锁定)。

在这种情况下,每个人为自己的带宽付费是理想的。这又是一个小额支付不是可行的情况,因为它的成本交易(心理和网络)成为有效妨碍大规模采用的收费墙。也就是说,所有用户永远锁定足够的TOK来合理的满足每个人的平均带宽需求,而不用感觉每次观看他们都被收取费用。(这个程序员不仅懂经济学,还懂心理学)

除了给所有用户提供TOK带宽外,区块生产者可以提供免费增值服务给所有由TOK持有人通过通货膨胀补贴的互联网用户。每个区块制造商自主决定将向匿名互联网浏览器提供多少免费服务。由TOK持有者决定向哪个区块生产商投票和支付金额。

此外,上传文件的个人可以选择提供那些下载它的带宽费用,例如分发电影预告片的电影制片厂。(TOK感觉不够用啊)

总结

EOS存储的设计理念处处体现着EOS的设计哲学,特别是其经济激励系统,无处不在。在去中心化的世界里提供类似中心化的服务,也许这才是区块链的正确发展方向。

《EOS存储白皮书》的最后还有一则免责声明,说的是EOS由block.one公司开发的免费开源的软件,开发完成后他们就不负责了,不负责了...

免责声明

block.one是一家注册在开曼群岛的区块链开发公司,这家公司发起了ICO,募集的钱由block.one公司保管,不公开,不审计,声称主要用于开发和运营eos.io 软件项目,一年以后软件开发成功(失败也是有可能的哦),发布开源代码。

但是,

block.one公司不负责,没有承诺,没有责任和义务,不保证,你手上的eos token会变成eos coin;

block.one公司,不会启动,EOS 公链。EOS 公链会由有缘人启动(即第三方,与我block.one公司没有半毛钱关系)

block.one公司,不知道,有缘人什么时候启动,如何启动,会不会启动,我block.one公司没法控制,也不得而知。

想要更好的理解,可以查看这位同学的文章点击前往》》

参考资料:
原文:EOS.IO Storage White Paper
王巨:EOS存储系统介绍

Sort:  

Congratulations @lintan! You received a personal award!

1 Year on Steemit

Click here to view your Board

Support SteemitBoard's project! Vote for its witness and get one more award!

Congratulations @lintan! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!