siacoin 为何靠谱 (How Sia Works)

in #sia7 years ago (edited)

关于sia为何靠谱,这篇文章讲的很透,很长,大家耐心看,应该会有收获。

The Sia whitepaper has been out of date for quite a while now, having been written over a year ago. It may be a while yet before an updated whitepaper is released, but this post forms the foundation of what a new whitepaper may look like. This post is still a work-in-progress, but provides updated information which I do not believe is available anywhere else (except the code itself).

(原文original link - https://forum.sia.tech/topic/108/how-sia-works )
(原文作者Author – Taek)
(tobo 译 translate)

Sia(云储币)的白皮书已经过时了很久,它是一年前的作品。下一个更新版还需要一段时间才能出来,然而本贴文可以被看着是下一个更新版的基础。本贴文的内容依然在改进之中,但它提供了许多已近更新的材料,而这些材料只能在程序里才能看到。

Sia是提供数据远程存储的网络。通常这种网络被称为‘云储存’,其核心功能是你可以先把数据放在网络中,然后你可以在世界任何地方取这些数据。把数据放到一个网络中意味着其他的人 – 托管主机 – 将保存你的数据,而且负责在你需要时归还这些数据给你。Sia对这种网络做了一些关键的假设:

托管主机不可信任 – 如果可能的话,他们会偷看,偷窃,和舞弊。必须使用强有力的机制来阻止和防止这些恶意行为。

托管主机不是慈善机构 – 托管主机需要报酬,特别有私人数据或大量的数据的时候。而且一定要保证能拿到报酬。

托管主机是不稳定的 – 一个单一的托管主机,甚至一群托管主机,可能会离线和下线,即使过去它们有100%的在线率。

网络是不友好的 – 如果网络有漏洞,一定会有人发现并利用这些漏洞谋私利。

Sia能够在有如上这些特点的网络中安全地存储数据。Sia应用了三个核心策略来确保数据的安全。首先是加密,其目的是在托管主机试图窥探数据时能保护数据的隐私权。甚至在数据被传到网络上之前,所有在Sia里的数据都经过了加密处理,而且解密只是在下载后才进行。托管主机无论如何也看不到解密的数据。第二个策略是文件备份。文件不是只传给一个或者两个或者三个托管主机,而是传给很多托管主机。使用删除算法技术如Reed-Solomon码,即使没有高度的备份系统也能达到高度的可靠性。最后的策略是奖励机制,托管主机不仅在储存了数据后能得到报酬,而且即使租用者到时不在线也能保证能得到。这可以通过使用文件合约来完成,而文件合约可以通过使用区块链来实现。

文件合约是租用方和托管主机间的合约。租用方同意给代存文件的托管方付费,而且托管方在一定的时间段里为租用方代存文件。在一开始租用和托管双方均在合约里放钱。租用方的钱用来在托管方完成合约任务后支付托管方。托管方的钱是押金,一旦托管方不能执行合约中的义务,押金将被没收。文件合约记录在区块链中,这个区块链相当于文件合约的第三方代管者。当文件合约结束后,托管主机必须向区块链提供存储证明以证明它依然存储着这些文件。在托管主机提交了存储证明后,托管主机才能收回押金和收到租用方的支付款。如果托管方没有及时提供存储证明,那么它就收不到钱。

文件合约为托管主机保存好文件提供了强有力的奖励机制和动机。保存好文件可以得到报酬,保存不好文件会被罚款。对储存文件来说,加密和文件合约的双管齐下解决了上面提到的三点的前两点(托管主机不可信任和不是慈善机构)。但这些尚不能保证托管主机不会劫持所保管的数据,我们将在下面的段落中谈谈如何防止这种情况的发生。

租用方不想只依赖单一的的托管主机,即时有所有这些奖励和激励机制。不可回避的现实是(即使托管主机是可信任的)单一的托管主机总有不可预料的下线或出故障的时候。这种风险可以用多个主机的方式来分散。如何整个数据分别存在三个主机上,那么只有当三个主机都同时下线时才能丢失数据。实际情况是我们可以做的比1对3更好。Reed Solomon码提供了一种方法来储存数据,比如只需要m对n就可以恢复数据,而备份只需n/m(这是理论上的最佳方案)。不用1对3,我们可以用10对30来做相同的3个备份。改成10对30的搭配可以增加很多可靠性 – 30个硬盘中的21个同时损坏的几率小于3个中的3个同时损坏的几率。其结果是,如果你有95%的在线率,这个10对30搭配所提供的文件在线率将达到99.999999999%。在这个计算里,我们的确考虑到了托管主机会各自出现故障,但是小心的按地区挑选托管主机应该会给你合理的独立性。如果托管主机有98%的在线率(每天允许有30分钟的下线时间,或每月15个小时的下线时间)只需18对30的搭配文件就能达到99.999999999%的在线率,即1.66倍的备份,这将可以节省非常可观的成本,能更好地抗拒攻击和破坏,而且能提供更大的托管主机群以利于高度的平行下载。。

这种文件备份也为防止托管主机劫持文件提供一个保护层。在10对30的搭配里,你只需要10个托管主机就可恢复数据。在Sia里下载需要付费,这意味着每当一个文件被下载时,它的托管主机都会得到收入。如果有1到15个托管主机怀有恶意并想劫持文件,这些主机可以被完全地忽略,而其他不怀恶意的主机将取而代之。这将给那些怀有恶意的主机带来直接的机会成本 – 它们将失去下载所带来的收入。而且,如果他们的下载费用持续高昂的话,租用者会把这些托管主机放进黑名单中。这种双重的压力,失去眼前的收入和失去将来的收入(将来上载和下载的机会),意味托管主机将不太会这么做(而且即使他们这样做了也影响不大,只需忽略她们而选用那些诚实的托管主机即可)。高度担忧的租用者为了更保险可以用3对30的搭配,甚至2对100的搭配(其有很高的备份成本)来保障他们最重要的文件。在实际运作中,我们已经看到文件保存是100%的可靠即使在程序任然有漏洞和托管主机的平均在线率只有50%的条件下。

租用者可以不断地在区块链和网络中监测和验证托管主机的在线率和可靠性。租用者更喜欢用那些可靠,高速,和便宜的托管主机。另外,一个租用者通常只会用所有托管主机中一小部分。这会给托管主机带来把业务做的更好的压力。这方面具体的逻辑规则还没有最终确定。

到此我们已经涉及了所有的3个早先的论点(不可信的托管主机,主机不是慈善机构,以及不稳定的主机),即包括上载数据也包括下载取数据。Sia系统的绝大部分能很好地抵抗恶意的攻击。Sia的区块链很像比特币的区块链,用工作证明(PoW)的共识机制,保留了10分钟区块时间,并且在总体上尽可能模仿比特币区块链。几个已知的漏洞(如transaction malleability)已经被修好,除此以外Sia的区块链和比特币的区块链基本一样。Sia使用了一种强力的加密机制(twofish with 256 bit keys),而且Sia中所有的程序协议均假设使用者随时都有可能进行恶意的攻击。

这样一来只剩下一个重要的遗留问题,那就是托管主机的选择。租用者应该有权选择他们自己的托管主机,而且一个攻击者会试图通过一些办法如低价格和Sybil攻击等来操作租用者的选择。Sybil攻击是指一个人伪装成多个人。在网络中,一个人很容易伪装成10个甚至100个人。在Sia系统里这意味着一个攻击者可能注册了一万个貌似诚实的个机器。然后再进行欺骗 的行为。

Sia阻止Sybil攻击的主要办法之一是销毁证明(proof-of-burn)。托管主机把币发给一个公认的不可再消费的地址来消毁一些币。托管主机得销毁他们分收入的一部分(大概4%)以证明他们是真正的托管主机。租用者将选择有过销毁证明的托管主机,而且销毁证明越多的主机将会按线性比例得到越多的租用者。因此,一个有2倍销毁证明的托管主机也会有2倍的机会被租用者选择如果其他条件不变的话。这为防止Sybil攻击提供了一个重要的保护层。一个试图操作租用者的攻击者需要拥有一个足够大量备份才能实施攻击。对于一个有3倍备份的文件,攻击者至少需要2.1倍的备份,这意味着攻击者必须要销毁足够多得到币以到达看起来像67%的网络。那样需要销毁币是其他主机加在一起的1.5倍。特别当系统成长起来和成熟以后,收集这么多币几乎是不可能的。不像资产证明(PoS)系统,攻击者不仅要收集这些币,而且需要销毁他们,这就意味着他们没法收回那些投资。虽然说不是完全地不可能,但对Sia实施Sybil攻击将比对比特币实施51%攻击代价更高。而且,过度担心的租用者可以用增加备份的办法来完全地保护自己。当租用者用10倍备份时,攻击者需要占有91%的网络,而且需要销毁的币是系统中其他主机合起来的9倍才能成功。

现在虽然具体的选择逻辑法则还没有最终敲定,但大多数标准已经被确定:

托管主机将被打分,然后根据他们的分数再随机抽选。

分数随销毁币的增加而成线性增长 – 需要这种线性的同比关系来防止Sybil攻击。

如果托管主机的在线率低于95%,它们将被罚款,而且在线率在99%以上并没有什么特别的好处。那是因为系统的信任模型假设所有托管主机的可靠率都不高于于99% - 然而过去的可靠性并不代表将来一定不会做恶意的事。在20对30搭配中,99%的可靠率对于保证文件的安全来说是绰绰有余。

如果一个托管主机把价格定的高于市场期望值,它的分数将成倍地递减,但如果它把价格定的低于市场期望值时却得不到同等成倍地加分。“市场期望值”还没有定义,但很有可能取决于硬盘的真实市场价格。低价格者将得不到同等成倍地加分以防Sybil供给者利用降价来得到高分。具体来说,如果一个托管主机的价格是合理价格的两倍,它的分数会降低1/32,但如果一个托管主机的价格是合理价格的1/2,它的分数只会提高2倍。

托管主机的分数和它提交的押金成线性正比,而且需要提交一个最低押金(以帮助防止价格波动)。

有恶意行为的主机将进入黑名单。

选择的逻辑法则不在任何的程序协议之中,而是由各个租用者决定。这意味着随着我们对选择策略理解的提高,我们可以为租用者提供选择逻辑法则的更新版,而且这些更新版可以和系统其他部分匹配。这也意味着有特殊需求的租用者(如因为法规的限制而只能用欧盟的托管主机)或高度担心的用户能毫无困难地使用不同的选择法则。

我欢迎大家提出疑问。

SIA资料