豚林Vitalik:除了金融应用,区块链技术还有哪些用例?
最近,人们对将区块链技术扩散到金融应用之外的兴趣越来越大,这是我一直强烈赞成的趋势。在上个月,Puja Ohlhaver、Glen Weyl和我合作写了一篇论文,描述了一个更详细的愿景,即可以用一个灵魂代币的生态系统来做什么,提出描述各种关系的主张。这导致了一些讨论,特别是在一个去中心化的身份生态系统中使用区块链是否有意义。
一般来说,在非金融应用中使用区块链是否有意义?我们是否应该走向这样一个世界,即使是去中心化的聊天应用程序,也是通过每条信息都是包含加密信息的链上交易来工作的?或者说,区块链只适合于金融业(比如说,因为网络效应意味着货币对 "全球视野 "有独特的需求),所有其他应用使用中心化或更本地的系统?
我自己的观点倾向于,就我看到了区块链在许多情况下的价值,有时是为了真正重要的目标,如信任和审查制度的抵抗,但有时纯粹是为了方便。这篇文章将试图描述区块链可能有用的一些类型的情况,特别是在身份的背景下,以及它们没有用的情况。这篇文章并不是一个完整的清单,而且遗漏了很多东西,我们的目标是阐明一些常见的类别:用户账户密钥变更和恢复,加密账户系统中最大的挑战之一是密钥变化的问题,这可能发生在几种情况下:
你担心你当前的密钥可能会丢失或被盗,你想切换到一个不同的密钥
你想切换到一个不同的加密算法(例如,因为你担心量子计算机很快就会到来,你想升级到后量子算法)
你的私钥丢失了,你想重新获得对你的账户的访问权
你的私钥被偷了,你想重新获得对你账户的独家访问权
[1]和[2]相对简单,因为它们可以以完全自我主权的方式完成:你控制着私钥X,你想换成私钥Y,所以你发布一条用X签名的信息,说 "从现在开始用Y认证我",而所有人都接受了。但是请注意,即使是这些比较简单的私钥更换场景,你也不能只使用密码学。考虑下面一连串的事件:
你担心私钥A会被盗,所以你用A签署了一条信息,说 "我现在使用B"
一年后,一个黑客真的偷了私钥A,他们用A签了一个信息说 "我现在用C",其中C是他们自己的私钥。从后来的人的角度来看,他刚刚收到这两条信息,他们看到A不再被使用,但他们不知道 "用B替换A "或 "用C替换A "的优先级更高。
这相当于设计去中心化货币时著名的双重消费问题,只是目标不再是防止一个代币的前主人能够再次发送代币,这里的目标是防止控制账户的前一个密钥能够改变密钥。就像创建一个去中心化的货币一样,以去中心化的方式进行账户管理需要类似区块链的东西。区块链可以对密钥变更信息进行时间标记,提供关于B或C先出现的共同知识。
[3]和[4]则更难。一般来说,我自己的首选解决方案是多签和社会恢复钱包,如果你的账户丢失或被盗,一群朋友、家人和其他联系人可以将你的账户控制权转移到一个新的密钥上。对于关键操作(如转移大量资金,或签署重要合同)也可以要求这个群体的参与。但这也需要一个区块链。使用秘密共享的社会恢复是可能的,但在实践中比较困难:如果你不再信任你的一些联系人,或者他们想改变他们自己的私钥,你没有办法在不改变自己私钥的情况下撤销访问。因此,我们又回到了需要某种形式的链上记录。
DeSoc论文中的一个微妙但重要的想法是,为了保持不可转让性,档案的社会恢复(或 "社区恢复")实际上可能需要强制。也就是说,即使你卖掉了你的账户,你也可以使用社区恢复来取回账户。这将解决一些问题,比如不是真正有信誉的司机在骑行共享平台上购买经过验证的账户。也就是说,这只是一个推测性的想法,不一定要完全实现,才能获得基于区块链的身份和信誉系统的其他好处。请注意,到目前为止,这是区块链的一个有限的使用案例:在链上有账户,但在链下做其他事情是完全可以的。这类混合愿景是有用武之地的;Sign-in With Ethereum是一个很好的简单例子,说明这在实践中可以做到。
修改和撤销证明
Alice去了实例学院并获得了实例研究的学位,她得到了一个数字记录证明,她可以用实例学院的密钥签名。不幸的是,6个月后,实例学院发现Alice有大量的抄袭行为,于是撤销了她的学位。但Alice继续使用她的旧数字记录,到处向不同的人和机构宣称她有一个学位。潜在的挑战是,证明甚至可能带有权限--例如,登录学院的在线论坛的权利--而Alice可能也会试图不适当地访问这个论坛,我们如何防止这种情况?
"区块链极简主义 "的方法是使学位成为链上的NFT,所以实例学院可以随后发布一个链上交易来撤销NFT。但是,发行是常见的,撤销是罕见的,如果没有必要,我们不想要求实例学院发行交易并为每次发行支付费用。因此,我们可以采用一种混合的解决方案:让初始学位成为链外签名信息,在链上进行撤销,这就是OpenCerts使用的方法。
完全脱离链的解决方案,也是许多脱离链的可验证证书支持者所倡导的,就是实例学院运行一个服务器,在那里发布他们撤销证书的完整列表(为了提高隐私性,每个证明可以附带一个nonce,撤销列表可以只是一个nonce的列表)。对于一所大学来说,运行一个服务器并不是一个很大的负担。但对于任何较小的组织或个人来说,管理 "一个服务器脚本 "并确保其保持在线是IT人员的一个重要负担。如果我们出于区块链恐惧症而告诉人们只需使用服务器,那么可能的结果是,每个人都将任务外包给一个集中式供应商。最好是保持系统的去中心化,只使用区块链--尤其是现在, Rollups, sharding和其他技术开始上线,使区块链的成本越来越低。
负面的声誉
链外签名的另一个重要领域是负面声誉--也就是说,你所做证明的人或组织可能不想让你看到这些证明。我在这里把 "负面声誉 "作为一个技术术语:最明显的动机用例是证明说某人的坏话,比如一个差评或报告某人在某种情况下有虐待行为,但也有一些用例,"负面 "证明并不意味着有坏行为--例如,贷款机构想证明你没有同时背负其他贷款。
对于链外证明,你可以做正面的信誉,因为显示一个证明的接受者显得更有信誉(或对其进行ZK证明),这符合接受者的利益,但你不能做负面的信誉,因为有人总是可以选择只显示让他们看起来不错的证明,而不显示其他所有的证明。在这里,在链上做证明实际上是解决了问题,为了保护隐私,我们可以增加加密算法和零知识证明:证明可以只是一个链上记录,数据加密到接收者的公钥,用户可以通过运行零知识证明来证明没有负面的声誉,该证明在链上记录的整个历史上走一遍。证明是在链上的,而验证过程是区块链感知的,这就很容易验证证明确实走过了整个历史,没有跳过任何记录。为了使这一点在计算上可行,用户可以使用增量可验证的计算(例如Halo)来维护和证明对他们来说是加密的记录树,然后在需要时揭示该树的一部分。
负面声誉和撤销证明在某种意义上是等同的问题:你可以通过添加另一个负面声誉的证明来撤销一个证明,说 "这个其他的证明已经不算数了",你可以通过使用正面声誉来实现负面声誉的撤销。
负面声誉是个好主意吗?
我们有时听到的对负面声誉的一个批评是:但负面声誉不是一个 "猩红信条 "的二元计划吗,我们不是应该尽力用正面声誉来做事吗?在这里,虽然我支持避免无限负面声誉的目标,但我不同意完全避免它的想法。负面声誉对许多用例都很重要。无抵押贷款,对于提高区块链空间内和外部的资本效率非常有价值。Unirep Social展示了一个概念验证的社交媒体平台,它结合了高度的匿名性和保护隐私的负面声誉系统,以限制滥用。有时,负面声誉可以增强力量,而正面声誉则会产生排他性。一个在线论坛,每个人都得到了发帖的权利,直到他们因行为不端而被 "罢工 ",这比一个首先需要某种 "良好品行证明 "才能被接纳并被允许发言的论坛更加平等。那些生活大多在 "体制外 "的边缘人,即使他们实际上品行良好,也很难得到这种证明。具有强烈公民自由主义倾向的读者可能还想考虑性工作者的客户的匿名声誉系统的情况:你想保护隐私,但你也可能想要一个系统,如果客户虐待性工作者,他们会得到一个 "黑标记",鼓励其他工作者更加小心或远离。这样一来,难以掩盖的负面声誉实际上可以增强弱势群体的能力,保护安全。这里的重点不是为某些特定的负面声誉计划辩护;而是要表明,负面声誉有非常真实的价值,一个成功的系统需要以某种方式支持它。
负面声誉不一定是无限的负面声誉。在付出一定代价的情况下(也许要牺牲你现有的大量或全部正面声誉),有可能创建一个新的档案。在太少的责任和太多的责任之间有一个平衡。但是,拥有一些使负面声誉成为可能的技术,是解锁这一设计空间的前提条件。
对稀缺性的承诺
区块链有价值的另一个例子是发布证明,这些证明有可证明的有限数量。如果我想为某人做一个证明(例如,人们可以想象一个寻找工作的公司或政府签证项目在看这样的证明),看证明的第三方会想知道我是否对证明很谨慎,或者我是否把证明给了几乎所有和我是朋友并且要求很好的人。解决这个问题的理想办法是将代言公开,这样代言就会变得有激励性:如果我代言的人原来做错了事,那么每个人都可以在未来对我的代言打折扣。但很多时候,我们也想保护隐私。因此,我可以做的是在链上公布每个代言人的哈希值,这样任何人都可以看到我给了多少人代言。
一个更有效的用例是一次发行很多:如果一个艺术家想发行N份 "限量版 "的NFT,他们可以在链上发布一个包含他们正在发行的NFT的Merkle root的单一哈希值。单次发行可以防止他们在事后发行更多,你可以在Merkle root的同时发布表示数量限制的数字(例如100),表示只有最左边的100个Merkle分支是有效的。
共识
区块链的强大属性之一是它们创造了共识:共识对于协调来说往往很重要。例如,一群人可能想就某一问题发表意见,但只有在有足够多的人同时发表意见,使他们在人数上有安全感时,他们才会觉得这样做很舒服。一个可能的方法是,一个人围绕一个特定的声明启动一个 "承诺池",并邀请其他人发布哈希值(一开始是私人的)来表示他们的同意。只有在一段时间内有足够多的人参与,所有参与者才会被要求在链上的下一条信息中公开透露他们的立场。
像这样的设计可以通过零知识证明和区块链的组合来完成(也可以不使用区块链,但这需要证人加密,或者需要可信的硬件,这有很大的安全假设问题)。围绕这类想法有一个很大的设计空间,今天还没有被充分开发,但一旦围绕区块链和密码学工具的生态系统进一步发展,就会很容易开始增长。
与其他区块链应用的互操作性
这是一个简单的问题:有些东西应该是链上的,以更好地与其他链上应用互操作。人性证明是链上的NFT,使项目更容易自动空投或给有人性证明档案的账户提供治理权。Oracle数据是链上的,使得defi项目更容易读取。在所有这些情况下,区块链并没有消除对信任的需求,尽管它可以容纳像DAO这样的结构来管理信任。但是,在链上提供的主要价值仅仅是与你正在交互的东西在同一个地方,这需要区块链的其他原因。当然,你可以在链外运行一个预言机,并要求在需要读取数据时才导入,但在许多情况下,这实际上是更昂贵的,并且不必要地将复杂性和成本强加给开发者。
开源度量衡
去中心化社会论文的一个关键目标是,应该可以对证明的图表进行计算。一个真正重要的是衡量去中心化和多样性。例如,许多人似乎同意,一个理想的投票机制会在某种程度上保持多样性,给那些不仅由最大数量的代币甚至人类支持的项目以更大的权重,而且由最大数量的真正独特的观点支持。
在Gitcoin Grants中实现的二次方融资也包括一些明确的有利于多样性的逻辑,以减轻攻击。测量和分数也是有价值的,那就是声誉系统。这已经以中心化的形式存在了评级,但它可以以更分散的方式进行,算法是透明的,同时保留更多的用户隐私。除了像这样紧密的用例,即试图测量一些人的联系程度并将其直接反馈给一个机制,还有更广泛的用例,即帮助社区了解自己。在测量权力下放的情况下,这可能是一个识别集中度过高的地区的问题,这可能需要一个回应。在所有这些情况下,在大量的证明和承诺上运行计算机算法,并利用输出结果做实际的重要事情将是不可避免的。
我们不应该试图废除量化的指标,我们应该试图制造更好的指标。评价一个主张的过程是非常主观的,而且是取决于背景。人们自然会对其他人的可信度产生分歧,而信任取决于环境......。[正因为如此,我们应该对任何 "计算 "索赔以获得客观结果的建议持极大怀疑态度。
在这种情况下,我同意主观性和背景的重要性,但我不同意更广泛的说法,即完全避免围绕声誉进行计算是正确的目标。纯粹的个体化分析并没有远远超过邓巴的数字,任何试图支持大规模合作的复杂社会都必须在某种程度上依赖聚合和简化。
也就是说,我认为一个开放参与的证明生态系统(相对于我们今天的中心化生态系统)可以通过为更好的衡量标准开辟空间而让我们获得两个世界的最佳结果,以下是这种设计可以遵循的一些原则:
主体间性:例如,声誉不应该是一个单一的全球分数;相反,它应该是一个更主观的计算,涉及被评估的人或实体,也涉及检查分数的观众,甚至可能涉及当地环境的其他方面。
可信的中立性:该计划不应该给有权势的精英留下空间,使其不断地操纵对自己有利,实现这一点的方法是最大限度的透明和不经常改变算法。
开放性:进行有意义的输入,以及通过自己运行检查来审核其他人的输出的能力,应该对任何人开放,而不仅仅是限制在少数有权势的团体中。
如果我们不创造良好的大规模社会数据聚合,那么我们就有可能把市场份额让给不透明、集中的社会信用评分。并非所有的数据都应该在链上,但以一种公知的方式公开一些数据,可以帮助提高社区的可读性,而不会造成数据访问的差异,从而可能被滥用来中心化控制。
作为一个数据存储
这是真正有争议的用例,在区块链领域有一个共同的观点,即区块链只应在那些真正需要和不可避免的情况下使用,其他地方我们应该使用其他工具。这种态度在一个交易费用非常昂贵的世界里是有意义的,而区块链是独一无二的,效率低得惊人。但是,在一个区块链有滚动和分片,交易费用下降到几美分,区块链和非区块链去中心化存储之间的冗余度可能只有100倍的世界里,它就没有争论的必要了。
即使在这样的世界里,在链上存储所有数据也是没有意义的。但小的文本记录呢?当然可以,为什么呢?因为区块链只是一个非常方便的存储东西的地方。我在IPFS上维护这个博客的一个副本。但是,上传到IPFS往往需要一个小时,它需要集中网关让用户以接近网站水平的延迟来访问它。另一方面,将整个博客存储在链上可以完全解决这个问题。当然,博客太大了,即使是后分片,也无法真正在链上转储,但同样的原则适用于较小的记录。
把数据放在链上只是为了存储它可能是正确决定的一些小案例包括:
增强的秘密共享:将你的密码分成N个部分,其中任何M=N-R的部分都可以恢复密码,但你可以选择所有N个部分的内容。例如,这些碎片可以是密码的哈希值、通过其他工具生成的秘密或安全问题的答案,这是通过在链上发布额外的R个碎片(看起来是随机的),并在整个集合上进行N-of-(N+R)秘密共享来实现:
ENS优化:ENS可以通过将所有记录合并成一个哈希值,只在链上发布哈希值,并要求任何访问数据的人从IPFS上获取完整的数据,从而使ENS更有效率。但这将大大增加复杂性,并增加另一个软件的依赖性。因此,ENS将数据保留在链上,即使它长于32字节。
社会元数据--与你的账户相连的数据(例如,用于与以太坊签到的目的),你希望它是公开的,而且长度非常短。
证明和访问权限:特别是当被存储的数据长度小于几百字节时,将数据存储在链上可能比将哈希值放在链上和数据放在链外更方便。
在这样的情况下,权衡的不仅仅是成本,还有在私钥或密码学失效的边缘情况下的隐私。有时,隐私只是有点重要,偶尔因泄漏的私钥或30年后量子计算揭示一切而造成的隐私损失,不如有一个非常高的确定性,数据将保持可访问性。毕竟,存储在你的 "数据钱包 "中的链外数据也会被黑客攻击。但有时,数据是特别敏感的,这可能是反对将其放在链上的另一个理由。但请注意,在这些情况下,这种隐私需求不仅是反对区块链的理由,而且是反对所有去中心化存储的理由。
结论
在上述列表中,我个人最有信心的是与其他区块链应用的互操作性和账户管理。第一个已经在链上了,第二个相对便宜,它的案例很清楚,而且确实没有一个非区块链的解决方案。负面声誉和撤销也很重要,尽管它们仍然是相对早期的用例。仅仅依靠链外的正面声誉就可以做很多事情,但我预计随着时间的推移,撤销和负面声誉的案例将变得更加清晰。我预计会有用中心化的服务器来尝试,但随着时间的推移,应该会很清楚,区块链是避免在不便和中心化之间做出艰难选择的唯一途径。
区块链作为短文记录的数据存储,可能是边缘化的,也可能是重要的,但我确实希望这种用例会不断发生,区块链对于廉价和可靠的数据检索来说真的是非常方便,无论应用程序有两个用户还是两百万用户,数据都可以继续被检索到。开源度量衡仍然是一个非常早期的想法,它仍然要看能做多少,并使其开放而不被利用(例如,在线评论、社交媒体因果关系和类似的东西一直被利用)。而常识性游戏需要说服人们接受全新的工作流程来处理社会上重要的事情,所以这当然也是一个早期阶段的想法。
我对区块链在这些类别中的具体使用程度有很大不确定性,但区块链作为这些领域的有利工具,不应该被否定。
微信扫描关注公众号,及时掌握新动向
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场