Vitalik:区块链技术的价值
Vitalik 旧文。此译文有做小部分删减,仅供参考。
在我对区块链技术的研究过程中,其中一个问题(可能是核心的)是:最终,它有什么用处?为什么我们需要将区块链用于任何,什么样的服务应该在类区块链架构上运行,为什么这些服务要特别地在区块链上运行,而不是只在普通的老服务器上运行?区块链到底提供了多少价值:它们是绝对必要的,还是,仅仅是最好运用这项技术?也许最重要的是,区块链的“杀手级应用”将会是什么?
过去几个月,我花了很多时间思考这个问题,与加密货币开发者,风险投资公司,尤其是区块链领域以外的人讨论这个问题,无论是公民自由活动人士,金融和支付行业的人,还是其他任何领域的人。在这个过程中,我得出了一些重要而有意义的结论。
首先,区块链技术将没有 “杀手级应用” ( there will be no “ killer app ” for blockchain technology )。原因很简单:低挂水果学说( the doctrine of low-hanging fruit )。如果存在一些应用,相比使用现代社会的大部分基础设施,使用区块链技术表现出极大优越,人们就会大声谈论它。这可能看起来像是旧经济学玩笑——经济学家发现 120 美元钞票放在地上,得出结论,这钞票一定是假的,否则其他人早就已经把它拿走。但在区块链语境中,情况略有不同:不同于美元,其搜寻成本很低,所以拿起这美元是有意义的,即使这美元是真美元的可能性只有 0.01 % ;而在区块链领域,搜寻成本非常高,拥有数十亿美元激励的许多人,已经正在搜寻当中。目前为止,还没有任何一个人提出这样一单个应用——非常突出,耸立于同一水平线上的其他任何东西。
事实上,一些人可以相当合理地认为,最接近我们所将拥有的“杀手级应用”的东西,正是那些已经完成并被大肆渲染的应用:抗审查,如用于维基解密和丝绸之路的比特币。在这两种情况下,需求是明确的,潜在经济剩余(potential economic surplus)非常高。然而,现在的情况不那么简单了,区块链技术的边际机会(marginal opportunities in blockchain technology)也不是那么容易抓获。
总和及平均效用( Total and Average Utility )
但是,这是否意味着,区块链已经达到其峰值效用( peak utility )?绝对不是。就单用户峰值效用( peak utility per user)而言,它们已经达到最高必要性(peak necessity),但这与峰值效用并不相同。虽然对于许多使用丝绸之路的人来说,丝绸之路不可或缺,但总体而言,甚至在 drug-using 社区中,它也不是不可或缺。维基解密也一样,向维基解密捐赠比特币的人,相比全世界人口,微不足道。那么剩下了什么?总之,长尾。
那么,长尾是什么?这很难解释。我可以提供一份应用清单,其所列包含于这个应用“长尾”中;但是,区块链并非必不可少,而且对每一个应用,都甚至无法提供非常强大的基本优势。每单个案例中,不是在倡导“区块链应用被高估了,比特币货币才是关键”,就是在倡导“区块链技术作为一个整体,是无用的”,很合理地,随这些观点之后的是,其实施方案,正如在一个中心化服务器上一样容易,用法律合约替代区块链治理,应用其他替代产品,将其变成更类似于传统系统的东西。在这一点上,他们完全正确:对于特定用例,区块链并非必不可少。这就是关键所在:那些应用并不在分布顶端( those applications are not at the top of the distribution ),顶端应用是如维基解密和丝绸之路;如果是顶端应用,它们早就已经实现。在长尾,区块链不是必需;区块链是提供方便(they are convenient ) 。区块链只是略好于该项工作的下一个可用工具。然而,由于这些应用更主流得多,且可使数以亿计的用户受益,社会的总收益 (从以上图表可看出 ) 要大得多。
也许这种推理的最佳类比是,提出以下修辞问题:“开源”的杀手级应用是什么?对于社会来说,开源显然是一件非常好的事情,它被全世界数以百万计的软件包使用,但是仍然很难回答这个问题。原因是一样的:没有杀手级应用,应用列表有一个非常非常长的长尾——基本上,只是关于可想象的每一种软件,其特别强调更低层级库,这些低层级库最终被数百万的项目多次重复使用,被关键加密安全库重复使用。
区块链,又重新定义了…
现在,区块链的具体好处是什么,可让长尾值得使用?首先,让我提供我所使用的关于“区块链是什么”的当前描述:
一个区块链是一台神奇电脑,任何人都可上传程序,并使程序自行执行,其中每个程序的当前和所有之前状态,永远公开可见;且具有非常强大的加密经济学保证运行于链上的程序,将按照区块链协议所指定方式确切持续执行。
A blockchain is a magic computer that anyone can upload programs to and leave the programs to self-execute, where the current and all previous states of every program are always publicly visible, and which carries a very strong cryptoeconomically secured guarantee that programs running on the chain will continue to execute in exactly the way that the blockchain protocol specifies.
请注意,此定义没有:
- 使用如 “ 分类账 ( ledger ) ”,“ 货币( money ) ” 或 “ 交易 ( transactions )” 等金融术语,或实际朝向特定用例的任何术语
- 提到任何特定共识算法,或提到任何关于“区块链如何工作”的技术属性内容(除了它是“加密经济”的事实。技术术语大体意为 “ 它是去中心化的,使用公钥加密进行验证,使用经济激励确保其持续进行,不会发生过一段时间后撤回的现象或引起其他小故障 ”)
- 对任何特定类型的状态转换函数进行限制
此定义做得好的一件事是,解释区块链做的是什么,并以这样一种方式解释它——任何软件开发者都将能够相当清楚地对其价值主张至少有直观理解。现在,在实践中,有时程序所运行的编程语言非常具限制性;另一方面,其他编程语言可更具表现力。这取决于软件开发者分析,对于他们的任务而言,何种编程语言是合适的,正如今天,在 python, C++, NodeJS 和 Malbolge 之间进行选择,是软件开发者的任务。
此定义极为强调之处在于,区块链不是关于,带给世界任何一个特定规则集——不管是一个拥有既定供应货币政策的货币,一个拥有 200 天续费时间的名称登记处,一个特定的去中心化交易所设计,还是其他;相反,区块链正在创造一种自由——可极快速地创建一个拥有一套新规则集的新机制,并将其推出。区块链是“建设经济和社会机构”领域的乐高头脑风暴。
“ 激动人心的是区块链,而不是货币 ” :要让加密经济区块链可行,货币是必要,这确实是事实,但货币只是作为经济管道(economic plumbing),用于激励共识参与,持有存款(hold deposits )和支付交易费用,而不是投机狂热,消费者兴趣和令人激动事物的中心舞台。
现在,为什么区块链有用?总结如下:
- 你可以在其上存储数据,并保证数据具有非常高的可获得性(availability)
- 你可以在其上运行应用,并保证其极高的正常运行时间(uptime)
- 你可以在其上运行应用,并保证其在未来很长一段时间,具有非常高的正常运行时间
- 你可以在其上运行应用,并使你的用户相信,此应用的逻辑是诚实的,其所做的,正是你所宣扬的
- 你可以在其上运行应用,并使你的用户相信,即使你对维护失去兴趣,你被贿赂或威胁或出于利润动机,以某种方式操纵应用状态,此应用将仍然可行
- 你可以在其上运行应用,如果绝对必要,你可以给自己后门密钥,但对你密钥的使用,进行“宪法”限制 —— 例如要求软件更新需要通过一个月的公开等待期,才可以被引入;或至少立即通知用户应用更新
- 你可以在其上运行应用,并将后门密钥赋予特定治理算法(如 投票 ,futarchy ,一些复杂的多议会架构),并说服你的用户,这个被讨论着的特定治理算法,实际上管理着应用
- 你可以在其上运行应用,这些应用可以交互,拥有 100% 可靠性 (those applications can talk to each other with 100% reliability ) - 即使底层平台只有 99.999% 可靠性(reliability)
- 多用户或公司可在其上运行应用,这些应用可以非常高的速度进行交互,而无需任何网络通信,同时,确保每家公司对自己的应用有完全控制
- 你可以构建应用,这些应用非常轻松有效地利用其他应用生成的数据(例如,组合支付[combining payments ]和声誉系统,可能是此处的最大可获益领域)
所有这些事情,对世界各地数十亿人有间接价值,特别是在世界各地,高度发达的经济,金融和社会基础设施根本不起作用的地区(尽管技术往往需要结合政治改革来解决许多问题),区块链在提供这些特性方面,表现很好。尤其是在金融方面,区块链有明显价值,因为金融可能是世界上最为同步计算和信任密集型行业(the most simultaneously computationally and trust-intensive industry ),但在互联网基础设施的许多其他领域,区块链也是有价值的。确实存在其他架构,也可以提供这些特性,但它们不如区块链那么好。Gavin Wood 已经开始将这种理想的计算平台描述为“世界计算机”——这个计算机的状态在每个人之间共享,非常大的群体,其中任何人都可以自由加入,参与维护。
基层基础设施(Base Layer Infrastructure)
正如开源,目前为止,区块链技术中可获得的最大机会,都可称之为“基层基础设施”服务。其可通过以下属性进行分类:
- 附属关系(Dependency) - 存在密切依赖于基层服务功能的许多其他服务
- 高网络效应 - 可从使用相同服务的大群体(或者甚至所有人)中获得实质性益处
- 高切换成本 - 对于个人而言,从一个服务切换到另一个服务,有难度
可能有相当不重要的基层( 如 RSS feeds )和重要的非基层(如 食物)。甚至在文明曙光之前,基层服务也存在,在“穴居人时代”,最重要的一个基层服务是语言。较近时期,主要例子是道路,法律体系和邮政运输系统,在 20 世纪,增加电话网络和金融系统,在千禧年末端,出现了互联网。然而,现在互联网的新基层服务几乎完全是信息:互联网支付系统,身份,域名系统,认证机构,声誉系统,云计算,各种各样的数据 feeds ,甚至可能在不远的未来,预测市场。
在十年时间里,这些服务的高度网络化和相互依存的本质,可能会让个人,相比转换所生活的政府治下而言,更难以从一个系统切换到另一个——这意味着确保这些服务正确建立,其治理过程不会将少数私人实体置于极端权力的位置,至关重要。现在,许多系统都以高度中心化的方式构建,部分原因在于,万维网的原始设计未能意识这些服务的重要性,并且包含了默认值——因此甚至是今天,大多数网站要求你 “使用 Google 登录” 或 “ 使用 Facebook 登录 ” ,证书授权遇到一些证书盗取问题。
为什么证书授权不应去中心化,至少达到 M-of-N 系统的程度?( 区块链是运行 M-of-N 的好平台)。
身份
让我们看一个特定用例,“ 区块链上的身份 ”,并通过它运行。一般来说,为了有一个身份,你需要什么?最简单的答案是我们已经知道的:你需要有一个公钥和私钥。你发布公钥,这将成为你的 ID,你用私钥对你发送的每条消息进行数字签名,允许任何人验证这些消息是由你产生的(从他们的角度来看,“你”是指“持有特定公钥的实体”)。然而,有一些挑战:
- 如果你的私钥被偷了,会发生什么,你需要切换到一个新的私钥?
- 如果你的私钥丢了,会怎么样?
- 如果你想引用其他用户的名字,而不仅是一个 20字节 的随机加密数据,该怎么办?
- 如果你想要使用一种更高级的安全方式,如 multisig,而不仅是一单个密钥( not just a single key),该怎么办呢?
让我们逐一尝试解决这些挑战。我们可以从第四个开始。一个简单的解决方案是:不再需要一个特定的加密签名类型,你的公钥成为一个程序( your public key becomes a program),而一个有效签名成为一个字符串,当它与消息一起输入程序时,返回 1 。理论上,任何单一密钥,多重密钥( any single-key, multi-key),或任何其他类型的规则集,都可以被编码成这样的范例。
然而有一个问题:公钥将太长。将真正“公钥”放入一些数据存储(如果我们想要去中心化,可以放入分布式哈希表 distributed hash table),使用“公钥”哈希作为用户ID,以此可解决这个问题。这还不需要区块链——尽管在最新设计中,在有限的可扩展区块链中,与 DHTs 的设计并不有什么真正不同,所以,完全有可能的是,在十年时间里,用于任何东西的每一种去中心化系统,将意外或有意的汇入某种可扩展区块链。
现在,考虑第一个问题。我们可以将这个问题视为证书废止问题(certificate revocation problem ):如果你想“废止”一个特定私钥,你如何确保它能接近每个需要看到它的人 (how do you ensure that it gets around to everyone who needs to see it?) ,这本身又可以通过一个分布式哈希表来解决。然而,这就引出了下一个问题:如果你想废止一个私钥,你换成什么?如果你的私钥被偷,你和攻击者都拥有它,你们之中的任何一个都无法拥有更令人信服的权威性。一个解决方案是有三个私钥,如果其中一个废止,需要两个或所有人(all of them )签名来批准下一个私钥。但这将导致一个 “ nothing at stake ” 问题:如果攻击者最终设法窃取你的三个私钥,然后他们可以模拟历史,分配一个新的私钥,进一步分配新私钥,然后,你自己的历史不再是权威。这是一个时间戳问题,所以,在此处,区块链可以真正提供帮助。
对于第二个问题,持有多私钥和重新分配( holding multiple keys and reassigning ),也相当有效——在这里,不需要区块链。事实上,你不需要重新分配;巧妙使用私密分享(secret sharing ),你可以通过将你的私钥保存在 “shards” 中,真正从私钥丢失中恢复过来,这样,如果你失去任何单个 shard ,你总是可以使用私密分享数学( secret sharing math )来简单地从其他处恢复它。
对于第三个问题,基于区块链的名称注册,是最简单的解决方案。
然而,在实践中,大多数人都没有足够能力安全地存储多私钥(multiple keys),而且总是会发生小事故,通常,中心化服务扮演了一个重要角色:帮助人们在出错情况下,恢复他们的帐户。在这种情况下,基于区块链的解决方案很简单:社会化 M-of-N 备份( social M-of-N backup )。
你选择八个实体; 他们可能是你的朋友,你的雇主,一些公司,非营利组织,甚至在将来,一个政府,如果出了问题,其中五个,可以恢复你的私钥。这种社会多重签名备份的概念,可能是任何一种去中心化系统设计中,所使用最强大的机制之一,以非常低的成本提供非常高的安全性,而不依赖于中心化信任。注意,基于区块链的身份,尤其是以太坊的合约模式,使所有这一切都非常易于编程:在注册表中,注册你的名称,将其在一个合约中指出,让该合约维护当前与身份及其随时间更新的逻辑相绑定的主私钥和备份私钥。一个身份系统,安全,且足以让你的祖母易于使用,没有任何单独实体(除了你!)在控制。
身份并不是区块链能够缓解的唯一问题。另一个与身份密切相关的要素是声誉( reputation )。目前,现代世界的 “ 声誉系统 ” 无一例外不安全, 因为无法确保对另一个实体进行评级的实体,他们之间有过互动;或中心化,将声誉数据绑定到特定平台上,使声誉数据处于该平台的控制之下。当你从 Uber 转到 Lyft ,你的 Uber 评级不会继续存在。
一个去中心化声誉系统最好由两个单独层组成:数据和评估。数据包括个人对他人所做的独立评级,与交易相关的评级(例如,通过基于区块链的支付,可以创建一个开放系统,在这个系统中,如果你真的付钱给了一个商家,你只能给此商家一个评级),以及其他来源集合,任何人都可以运行自己的算法来评估他们的数据;可从一个特定数据集评估一个声誉证明的 “ 友好型轻客户端 ” 算法,很快就可能成为一个重要研究领域( 许多天真的声誉算法涉及矩阵数学 ,其在底层数据上几乎拥有立方计算复杂度,所以,很难去中心化 [many naive reputation algorithms involve matrix math, which has nearly cubic computational complexity in the underlying data and so is hard to decentralize]) 。“ 零知识 ” 声誉系统,允许用户提供某种加密证书,根据某种特定公制,证明他们至少有 x 个声誉点,而不透露任何其他信息,这也很有希望。
声誉的案例很有趣,因为它把区块链的多种好处综合起来作为一个平台:
- 它用作身份的数据存储
- 它用作声誉记录的数据存储
- 跨应用互操作性( 与支付证明相关的评级,让任何算法都可基于相同的底层数据集进行处理的能力 )
- 保证基础数据可以移植到未来(公司可能会自愿提供一个易于传播格式的声誉证书,但是他们没有办法预先承诺在将来继续使用这种功能)
- 去中心化平台的更广泛使用,保证在计算的时候,声誉不会被操纵
现在,以上所有这些好处,有替代品:我们可以信任 Visa 和 Mastercard 提供加密签名收条,表示一个特定交易发生过;我们可以将声誉记录存储在 archive.org 上 等。所有这些选项都相当有效,但它们并不像简单地把所有东西都放到开放状态,运行在 “ 世界计算机 ” 上,让加密验证和证明去进行工作,那样好。对于其他用例,也可以进行类似讨论。
降低成本
如果区块链技术的最大价值在于长尾,正如本文所指出的那样,那么这将导致一个重要结论:每笔交易,从使用区块链中,所获收益很小( the per-transaction gain from using a blockchain is very small )。因此,降低共识成本和提升区块链可扩展性的问题,变得至关重要。使用中心化解决方案,用户和企业习惯每笔交易支付 0 美元费用;尽管向维基解密捐赠的人,可能会愿意支付 5 美元交易费用,尝试上传一个声誉记录的某些人,可能只愿意支付 0.0005 美元费用。
因此,使共识成本更低( making consensus cheaper ),这个问题,在绝对意义上(即权益证明)( in the absolute sense (ie. proof of stake) ),以及在“每笔交易”的意义上(即通过可扩展区块链算法——在这个算法中,最多几百个节点处理每笔交易),都绝对至关重要。此外,区块链开发者应该记住,软件开发近 40 年历史,是逐渐转向越来越低效( less and less efficient )的编程语言和范式的历史,只因为这些编程语言允许开发者的经验不足和懒惰,以及,同样地,致力设计的区块链算法,围绕这样的原则——开发者不会真的那么聪明和审慎的对待,他们将什么放在区块链,什么不放——但设计良好的交易费系统将可能使开发者可通过个人经验,自然学习大多数重要点。
因此,对于未来而言,更大程度的去中心化有显著希望。然而,容易获益的日子已经结束。现在是一个更加困难和更长时间的研究现实世界的时候,看看我们所建立的技术如何可使世界真正受益。在这个阶段,我们可能会发现,在某些时候,我们将会碰到一个拐点,在这个拐点处,大多数情况下,“blockchain for X” 的大多数例子,都将不会由那些区块链热衷者来做——区块链热衷者是先寻找区块链可发挥用处的事物,然后接近 X,然后尝试做这件事;而是,“blockchain for X” 用例会由 X 热衷者来做,他们看到区块链,意识到区块链在 X 的一些部分事情上,是相当有用的工具。X 可以是物联网,发展中国家的金融基础设施,自下而上的社会/文化和经济制度,医疗领域的更好的数据汇总和保护,或只是有争议的慈善机构和不可审查的市场。在后两种情况下,拐点可能已经到来;许多最初的区块链热衷者,成为区块链热衷者,是因为政治。然而,一旦其他领域的拐点到来,我们将会真正知道它已经成为主流,最大的人道主义收获即将到来。
此外,我们可能会发现,“区块链社区”的概念将不再有意义( the concept of “the blockchain community” will cease to be meaningful as any kind of quasi-political movement in its own right );如果有任何标签可适用于全部,“ crypto 2.0” 可能是最具正当理由的一个。原因类似于为什么我们没有一个“分布式哈希表社区 the distributed hash table community ”的概念,“数据库社区” 尽管存在,但只是一组计算机科学家们的集合,他们碰巧专门从事数据库。区块链只是一种技术,所以,最终,最大进展只能通过与其他去中心化技术(以及去中心化友好型)集合的全套结合来达成:声誉系统,分布式哈希表,“点对点超媒体平台”,分布式通信协议,预测市场,零知识证明,以及可能更多还未发现的。
原文:https://blog.ethereum.org/2015/04/13/visions-part-1-the-value-of-blockchain-technology/
作者:Vitalik Buterin
编译 & 校对:椰子加农炮,热爱 & 东林 @ 币未来 biweilai.com
参与讨论(0)