信任范围(trust spheres)和扩容(scalability)



  • (原文 - http://forum.sia.tech/topic/93/trust-spheres-and-scalability)
    (原文作者 - Taek)
    (tobo译)

    最近我看到许多关于Sia扩容(scalability)空间的问题,我想在此解释一下在Sia网络中扩容是怎么回事。

    去中心化系统所面临的困难是你不相信任何人。如果我们相信这个世界,我们可以依赖中心化的模式。去中心化的优势是你不需要相信任何人,但这又带来了高昂的代价。无需信任的去中心化云储存系统实际上是不可能的。事实是你把你的数据交给别人托管而不是自己保存,只要你把数据交给别人那么就存在数据拿不回来的风险。因此,Sia并不试图建立一个无需信任的去中心化云储存系统,而是想建立一个需要最少信任的去中心化云储存系统。我们通过如下方法达到最小信任数据储存:把数据交给许多托管主机,但只要求它们中的一部分在线和工作,给托管主机托管数据而支付报酬给它们 – 但要等到它们托管了足够长的时间,而且要对失去文件的主机实行罚款。我们要确保奖励制度能达到目标,而且在我们协调了奖励制度以后我们还要确保我们能够承受文件损失状况。

    我想向大家介绍一个叫着“信任范围”的概念。一个信任范围是相互信任的一组(最少时可以是一个人 – 译者注)人或主机。在目前的网络中,每一个Sia守护程序(siad)运行一个不同的信任范围(比如一个人运行一个siad可以被看着是一个单一的信任范围 – 译者注),这就意味着它只相信它自己内部的成员。为了对在云中存放数据有信心,守护程序与大量的主机建立合约,每个合约都负责支付托管主机,并在托管主机没有执行和约束对其进行罚款。每个合约均存放在区块链上,因为如果不用区块链,我们无法协调奖励机制,特别是如果我们考虑到或有离线的情况,或者如果我们预计价格总是有波动。托管主机需要有动力来保存文件即使在没有监督的情况下,和在有其他人冒来出更高的价钱的情况下。(同样,托管主机也需要区块链来确信如果它按合约保存了文件它就能得到报酬)。因此,在我们的信任模式中,每个托管主机在区块链上至少需要一个合约。在Sia中,根据设计,在N个托管主机中只需M个主机遵守合约。你可以任选这两个数据,但最好是N很大而M很小。

    把这些合约放到区块链上并不便宜。Sia区块大小是2MB,而且每一个合约关系大概占2kb。这就意味着,在每个区块里,我们可以建立1,000个合约关系。每年,Sia大概可以建立52,000,000个合约关系。每个信任范围都将占用这些合约关系的一部分。每个合约关系都有时间期限,有些合约关系是60个月的期限(我们所建议的最长期限),有些可能只有3天单位期限(可达到最大的可靠性)。而且有的信任范围想和20个托管主机产生合约关系 (我们所建议的最低限度),而有的可以却想与300个托管主机产生信任关系(我们所建议的最大限度)。

    所以Sia每年也只能产生这么多合约关系,而且每个信任范围都将使用其中的一部分。好的一面是当你建立了一个合约关系后,你可以想放多少数据就放多少数据,你可以给内阁托管主机上载大量的数据而不会影响在区块链中的使用量。如果你计划上载大量的数据,你需要小心选择那些可以支持大量数据的与托管主机,除此以外实质上没有限制。

    每年52,000,000个合约关系对于50,000个 到1,000,000个之间的信任范围来说大概足够了。较大的使用者可能希望能得到更多的合约关系。所以问题是,Sia如何才能在这个基础上扩容?我们有这样几个选择:

    1. 增加区块链的大小。这个办法会带来一系列的问题和折衷,而且正在比特币的世界里被广发的探讨。对我们来说这是个选项,但由于它的线性扩容特点它并不是好的选择。
    1. 降低合约的大小。在这里也许我们有些空间来做些优化处理。目前,一个完整的合约(交易前体,文件合约,文件和月修订,储存证明)大概占2kb。在理论上,我们大概可以把它降低到1kb。需要大量的工作,但效果却很小。可以扩容到两倍。

    2. 降低每个信任范围中的合约关系数量。这个解决办法较为吸引人。在目前的设置中,每个信任范围直接和托管主机相连。但是,也许信任范围可以和一个中心站相连,然后利用这些中心站的合约关系。事实是,中心站将控制合约关系,因此你需要一种方式来确保中心站只能在征得了你的同意后才能做任何修改和变动。但这又会带来一些困难,比如当一个中心站有上百个或者上千个主机时,因为基本需要所有主机同意才做一个修改和变动,一个单一的主机就可否决这个修改和变动。另外一个变通的办法是建立一种新称为‘仅为待定’的文件合约类型,这样你可以和一个中心站相连,而这个中心站对丢失文件会重罚(假设他们会把数据外包),而且然后你可以提交一种欺骗证明如果中心站做的改动不是‘仅为待定’类型。这种扩容的潜力是100-10,000倍,但这种方式有可能明显地降低安全性,这时你基本已经脱离了加密技术的领域并且陷于博弈理论和拒绝服务的弱点的领域里。

    3. 增加每个信任范围使用者的数量(类似于增加每个信任范围的数据量)。这种办法是Sia目前倾向于做的方向。在企业化应用的例子中,我们正在为每个信任范围中的数据量而做优化处理。如果有10,000人在Sia网络里而每个人储存100,000 TB的数据,Sia将会是个非常健康的生态系统。但这意味着储存量小于100BT的人将可能完全无法被进入这个系统,只是因为交易的价格费用将领他们无法承担。但是假如你信任,比如本地的图书馆,那么每个在本地的人可以通过本地的图书馆进入Sia。你依旧最终需要信任某些人,而且你可以起诉他们如果他们破坏了这个信任关系。这种办法所到来的扩容量是5倍到1000倍。

    4. 使合约关系变成半永恒的和可以更新的关系。这种技术正是闪电网络(lightning network)所运用的技术。关系将基于双向的付款渠道,这意味着你可以双向转账。如果托管主机用完了租用者所付的款以后,他们可以更新合约中的款额,这样可以增加储存量尽管在区块链上显示的款额非常小(区块链上看不到所有这些款项来往)。这意味着合约关系不再只是持续几个礼拜,而是可以持续永远。这种办法可以扩容3到100倍。

    5. 区块安全性的提高。这方面的方向还不太明确,比如像IBLT, 弱区块,和一些其他的技术成果可能会让我们能把区块从2MB 提高到4MB 或 8MB,但同时不会产生诸如增加节点成本或矿工集权化,要求CPU或网络有更高的速度等问题。这种方式带来的扩容的可能性是2到20倍。

    我们依然在积极地探索这些选项。如果我们真的成了一个主要是针对企业的服务平台,我们还可以在扩容上得到一些好处。期望一个家庭用户每月花20美元来运行一个能支持8MB区块的节点是不现实的,但是期望一个企业每月花100美元来运行一个能支持16MB区块的节点却是现实的,这意味着我们能把合约关系从每年5千万增加到每年4百万。因此,在为企业服务的世界里,Sia似乎并不存在扩容的问题。10,000个企业是个很大的数字,而且如果当我们能做到那么大时,我们有可能用一些暴力解破的方法来达到100,000 甚至 1,000,000 个企业, 这又是个巨大的数字。

    而且有可能在将来(目前尚不可能)我们能使用一些SPV 类型的数据储存。这同时也意味着终点用户的安全性会降低,但或许安全性依然会足够高而且能把交易费降低到足够低以便有理由建立一个单独的信任范围。

    长话短说版:
    Sia目前的技术设计可以支持世界上大部分的企业用户。Sia目前的技术设计绝对无法支持世界上大多数的消费者用户,但在近期它并没有这个必要。在Sia达到像比特币那么大的市场价值之前,企业和终端用户可以完全地使用Sia。从那以后,Sia很可能只能被企业使用,但任何储存高于100TB数据的用户将会发现总的交易成本将低于10%。如果这个数字继续增长的话,实际上增加区块大小将更合算。

    有几个在Sia技术设计上有潜力的理论发展合在一起有可能给扩容带来100倍到10,000倍的增长潜力,而且这种潜力能使上10亿的用户使用Sia,尽管它依然无法支持整个物联网。所有以上这些选择中最多只有几个能最后实现,即使在将来的3到5年中新出现的技术也许能很好地帮助我们并给我们带来惊喜。为了实现这些改进,我们需要做硬分叉,而且在未来的18个月里任何这些改进都不太可能发生。


Log in to reply