• 在非金融应用中在哪里使用区块链?


    最近,人们对将区块链用于不仅仅是金融应用的兴趣越来越大。由于各种原因,这是我一直强烈支持的趋势。上个月,Puja Ohlhaver、Glen Weyl 和我合作撰写了一篇论文,描述了一个更详细的愿景,即通过更丰富的灵魂绑定令牌生态系统可以做什么,并声称描述了各种关系。这引发了一些讨论,特别关注在去中心化身份生态系统中使用区块链是否有意义:

    • 凯特·西尔斯( Kate Sills )主张脱链签名索赔
    • Puja Ohlhaver回应 Kate Sills
    • Evin McMullen 和我自己有一个播客辩论链上与链下证明
    • Kevin Yu撰写了一篇技术概述,提出了链上与链下的问题
    • 莫莉·怀特(Molly White)提出了一个反对自我主权身份的悲观案例
    • Shrey Jain制作了一个包含上述内容和许多其他 Twitter 讨论的元线程

    缩小范围并提出一个更广泛的问题是值得的:一般来说,在非金融应用程序中使用区块链有什么意义?我们是否应该迈向一个即使是去中心化聊天应用程序也可以通过每条消息都是包含加密消息的链上交易来工作的世界?或者,区块链是否只对金融有好处(例如,因为网络效应意味着货币对“全球视野”有独特的需求),而所有其他应用程序最好使用集中式或更多本地系统来完成?

    我个人的观点,和区块链投票一样,离“无处不在的区块链”观点很远,也离“区块链极简主义”也很远。我在很多情况下都看到了区块链的价值,有时是为了真正重要的目标,例如信任和抗审查,但有时纯粹是为了方便。这篇文章将尝试描述区块链可能有用的某些类型的情况,特别是在身份的上下文中,以及它们没有用的地方。这篇文章不是一个完整的列表,故意遗漏了很多东西。目的是阐明一些常见的类别。

    用户帐户密钥更改和恢复

    加密帐户系统中最大的挑战之一是密钥更改问题。这可能发生在以下几种情况下:

    1. 您担心您当前的密钥可能会丢失或被盗,并且想要切换到其他密钥
    2. 您想切换到不同的加密算法(例如,因为您担心量子计算机很快就会出现并且您想升级到后量子)
    3. 您的密钥丢失了,您想重新获得对您帐户的访问权
    4. 您的密钥被盗了,并且您想重新获得对您帐户的独占访问权限(并且您不希望小偷能够这样做)

    [1] 和 [2] 相对简单,因为它们可以以完全自主的方式完成:你控制密钥 X,你想切换到密钥 Y,所以你发布了一条用 X 签名的消息,上面写着“Authenticate me with Y 从现在开始”,每个人都接受这一点。

    但请注意,即使对于这些更简单的密钥更改场景,您也不能使用 cryptography。考虑以下事件序列:

    • 您担心密钥 A 可能会被盗,因此您与 A 签署了一条消息,上面写着“我现在使用 B”
    • 一年后,黑客确实窃取了密钥 A。他们签署了一条消息,上面写着 A,上面写着“我现在使用 C”,其中 C 是他们自己的密钥

    从后来进来的人刚刚收到这两条消息的角度来看,他们看到不再使用A,但他们不知道“用B替换A”还是“用C替换A”具有更高的优先级。

    这相当于设计去中心化货币时著名的双花问题,除了目标不是防止以前的硬币所有者能够再次发送它,这里的目标是防止以前控制帐户的密钥能够更改密钥。就像创建去中心化的货币一样,以去中心化的方式进行账户管理需要像区块链这样的东西。区块链可以为关键更改消息添加时间戳,提供关于 B 还是 C 先出现的常识。

    [3] 和 [4] 更难。一般来说,我自己首选的解决方案是多重签名和社交恢复钱包,如果丢失或被盗,一群朋友、家人和其他联系人可以将您的帐户控制权转移到新密钥。对于关键操作(例如,转移大量资金,或签署重要合同),也可能需要该组的参与。

    但这也需要区块链。使用秘密共享进行社会恢复是可能的,但在实践中更加困难:如果您不再信任您的某些联系人,或者如果他们想要更改自己的密钥,那么您无法在不更改密钥的情况下撤消访问权限。所以我们又回到了要求某种形式的链上记录。

    DeSoc 论文中一个微妙但重要的想法是,为了保持不可转移性,个人资料的社会恢复(或“社区恢复”)实际上可能需要强制执行。也就是说,即使您出售您的帐户,您也可以随时使用社区恢复来取回帐户。这将解决诸如在拼车平台上购买经过验证的帐户的不真正有信誉的司机等问题。也就是说,这是一个推测性的想法,不必完全实施即可获得基于区块链的身份和声誉系统的其他好处。

    请注意,到目前为止,这是一个有限的区块链用例:在链上拥有账户是完全可以的,但在链下做所有其他事情。这些混合愿景都有一席之地。使用以太坊登录是一个很好的简单示例,说明了如何在实践中做到这一点。

    修改和撤销证明

    爱丽丝进入示例学院并获得示例研究学位。她获得了一个数字记录来证明这一点,并用 Example College 的密钥签名。不幸的是,六个月后,Example College 发现 Alice 存在大量抄袭行为,并撤销了她的学位。但爱丽丝继续使用她的旧数字记录到处向各种人和机构声称她拥有学位。潜在地,证明甚至可以带有权限——例如,登录学院在线论坛的权利——而爱丽丝也可能试图不恰当地访问它。我们如何防止这种情况发生?

    “区块链极简主义”的方法是让学位成为链上 NFT,因此 Example College 然后可以发出链上交易来撤销 NFT。但这也许是不必要的昂贵:发行很常见,撤销很少,我们不想要求 Example College 发行交易并为每次发行支付费用,如果他们不需要的话。因此,我们可以采用混合解决方案:将初始学位设为链外签名消息,并在链上进行撤销。这是OpenCerts 使用的方法。

    完全脱链的解决方案,也是许多脱链可验证凭证支持者所提倡的解决方案,是 Example College 运行一个服务器,他们在其中发布其撤销的完整列表(为了改善隐私,每个证明都可以附带一个随机数和撤销列表可以只是一个随机数列表)。

    对于一所大学来说,运行服务器并不是一个很大的负担。但是对于任何较小的组织或个人来说,管理“又一个服务器脚本”并确保它保持在线对 IT 人员来说是一个巨大的负担。如果我们告诉人们出于对区块链的恐惧而“只使用服务器”,那么可能的结果是每个人都将任务外包给一个集中的供应商。最好保持系统去中心化,只使用区块链——尤其是现在汇总、分片和其他技术终于开始上线,以使区块链的成本越来越便宜。

    负面声誉

    链下签名不够用的另一个重要领域是负面声誉- 即,您正在对其进行证明的个人或组织可能不希望您看到它们的证明。我在这里使用“负面声誉”作为技术术语:最明显的激励用例是对某人说坏话的证明,例如差评或有人在某些情况下滥用行为的报告,但也有一些用例“负面”证明并不意味着不良行为 - 例如,贷款并想证明您没有同时贷款太多其他贷款。

    使用链下声明,您可以获得正面的声誉,因为表明声明看起来更有信誉(或对其进行 ZK 证明)符合声明接收者的利益,但您不能产生负面的声誉,因为有人总是可以选择只显示使他们看起来不错的声明,而忽略所有其他声明。

    在这里,在链上进行证明确实可以解决问题。为了保护隐私,我们可以添加加密和零知识证明:证明可以只是链上记录,其中数据加密到接收者的公钥,用户可以通过运行零知识证明来证明缺乏负面声誉。链上记录的整个历史。链上的证明和区块链感知的验证过程使得验证证明确实遍历整个历史并且没有跳过任何记录变得容易。为了使这种计算可行,用户可以使用可增量验证的计算(例如Halo) 来维护和证明对它们加密的记录树,然后在需要时显示树的某些部分。

    负面声誉和撤销证明在某种意义上是等价的问题:您可以通过添加另一个负面声誉证明来撤销证明,说“这个其他证明不再重要”,并且您可以通过背负正面声誉来实现负面声誉:爱丽丝在示例学院的学位可能会被撤销,取而代之的是“爱丽丝获得了示例研究学位,但她借了一笔贷款”。

    负面声誉是个好主意吗?

    我们有时听到的对负面声誉的批评是:但负面声誉不就是“红字”的反乌托邦计划,我们不应该尽最大努力以正面声誉做事吗?

    在这里,虽然我支持避免无限负面声誉的目标,但我不同意完全避免它的想法。负面声誉对于许多用例都很重要。对于提高区块链空间内外的资本效率非常有价值的无抵押贷款显然从中受益。Unirep Social展示了一个概念验证社交媒体平台,该平台将高度匿名性与保护隐私的负面声誉系统相结合,以限制滥用行为。

    有时,负面声誉可以增强力量,而正面声誉可能具有排他性。一个在线论坛,每个独特的人都有权发帖,直到他们因不当行为而受到太多“罢工”,这比一个需要某种“良好品格证明”才能被承认并首先被允许发言的论坛更加平等. 生活大多“在体制外”的边缘化人群,即使他们实际上品格良好,也很难得到这样的证明。

    强烈的公民自由主义说服的读者可能还想考虑性工作者客户匿名声誉系统的案例:你想保护隐私,但你也可能想要一个系统,如果客户虐待性工作者,他们会得到鼓励其他工人更加小心或远离的“黑标”。这样,难以掩饰的负面声誉实际上可以赋予弱势群体权力并保护安全。这里的重点不是为某些特定的负面声誉计划辩护;相反,这是为了表明负面声誉可以释放非常真实的价值,一个成功的系统需要以某种方式支持它。

    负面声誉不一定是无限的负面声誉:我认为应该始终可以以一定成本创建新的个人资料(可能会牺牲很多或全部现有的正面声誉)。责任过少与责任过多之间存在平衡。但首先拥有一些使负面声誉成为可能的技术是打开这个设计空间的先决条件。

    致力于稀缺性

    区块链有价值的另一个例子是发布可证明数量有限的证明。如果我想为某人做一个背书(例如,人们可能会想象一家正在寻找工作的公司或一个正在寻找此类背书的政府签证计划),查看该背书的第三方会想知道我对背书是否谨慎或如果我把它们送给几乎和我是朋友并且问得很好的人。

    这个问题的理想解决方案是公开背书,这样背书就会与激励一致:如果我背书的人做错了事,那么将来每个人都可以打折我的背书。但通常,我们也想保护隐私。因此,我可以做的是在链上发布每个背书的哈希值,这样任何人都可以看到我给出了多少。

    一个更有效的用例是一次多次发行:如果艺术家想要发行 N 个“限量版”NFT 副本,他们可以在链上发布包含他们所发行的 NFT 的 Merkle 根的单个哈希正在发行。单次发行可以防止他们事后发行更多,您可以将表示数量限制的数字(例如 100)与 Merkle 根一起发布,表示只有最左边的 100 个 Merkle 分支是有效的。

    在概念上的相似之处。

    常识

    区块链的强大特性之一是它们创造了共同知识:如果我在链上发布某些东西,那么 Alice 可以看到它,Alice 可以看到 Bob 可以看到它,Charlie 可以看到 Alice 可以看到 Bob 可以看到它,等等。

    常识对于协调通常很重要。例如,一群人可能想就一个问题发表意见,但只有当他们有足够多的人同时发表意见以保证人数安全时,才会觉得这样做很舒服。一种可能的方法是让一个人围绕特定声明启动一个“承诺池”,并邀请其他人发布表示他们同意的哈希值(起初是私有的)。只有在一段时间内有足够多的人参与,所有参与者都需要让他们的下一条链上消息公开显示他们的位置。

    像这样的设计可以通过零知识证明和区块链的组合来完成(它可以在没有区块链的情况下完成,但这需要见证加密,目前尚不可用,或者受信任的硬件存在严重问题的安全假设)。围绕这些想法有一个很大的设计空间,这些想法在今天还没有得到充分开发,但一旦围绕区块链和加密工具的生态系统进一步发展,就很容易开始发展。

    与其他区块链应用程序的互操作性

    这很简单:有些东西应该在链上,以便更好地与其他链上应用程序互操作。作为链上 NFT 的人性证明使项目更容易自动空投或授予具有人性证明的账户的治理权。链上的 Oracle 数据使 defi 项目更容易读取。在所有这些情况下,区块链并没有消除对信任的需求,尽管它可以容纳管理信任的 DAO 等结构。但是,链上提供的主要价值只是与您正在与之交互的东西在同一个地方,出于其他原因需要区块链

    当然,您可以在链下运行预言机,并要求仅在需要读取数据时才导入数据,但在许多情况下,这实际上会更加昂贵,并且不必要地给开发人员带来复杂性和成本。

    开源指标

    去中心化社会论文的一个关键目标是应该可以对证明图进行计算。一个非常重要的是衡量权力下放和多样性。例如,许多人似乎都同意,理想的投票机制会以某种方式牢记多样性,赋予不仅由最多数量的硬币甚至人类支持的项目,而且由最多数量的真正不同观点支持的项目。

    Gitcoin Grants中实施的二次融资还包括一些明确的有利于多样性的逻辑,以减轻攻击。

    另一个自然而然的测量和分数很有价值的地方是声誉系统。这已经以带有评级的集中形式存在,但它可以以更加分散的方式完成,其中算法是透明的,同时保留更多的用户隐私。

    除了像这样的紧密耦合用例(尝试衡量某些人的联系程度并将其直接输入到机制中)之外,还有更广泛的用例来帮助社区了解自己。在衡量权力下放的情况下,这可能是确定集中度过高的领域的问题,这可能需要做出回应。在所有这些情况下,在大量的证明和承诺上运行计算机化算法并用输出做真正重要的事情将是不可避免的。

    我们不应该试图废除量化指标,我们应该努力做出更好的指标

    Kate Sills 表达了她对根据声誉进行计算的目标的怀疑,这一论点适用于公共分析和个人 ZK 证明他们的声誉(如在 Unirep Social 中):

    评估索赔的过程非常主观且取决于上下文。人们自然会不同意其他人的可信赖性,而信任取决于上下文...... [因此]我们应该对任何“计算”声称以获得客观结果的提议极为怀疑。

    在这种情况下,我同意主观性和背景的重要性,但我不同意更广泛的主张,即完全避免围绕声誉进行计算是正确的目标。纯粹的个体化分析并没有超出邓巴的数量,任何试图支持大规模合作的复杂社会都必须在一定程度上依赖聚合和简化。

    也就是说,我认为开放参与的证明生态系统(与我们今天拥有的中心化生态系统相反)可以通过为更好的指标开辟空间来让我们两全其美。以下是此类设计可以遵循的一些原则:

    • 主体间性:例如。声誉不应该是一个单一的全球分数;相反,它应该是一个更主观的计算,涉及被评估的人或实体,还包括查看分数的观众,甚至可能是本地上下文的其他方面。
    • 可信的中立性:该计划显然不应该为有权势的精英们留下空间来不断地为自己的利益操纵它。实现这一点的一些可能方法是算法的最大透明度和不经常更改。
    • 开放性:做出有意义的输入,并通过自己运行检查来审核其他人的输出的能力,应该对任何人开放,而不仅限于少数强大的群体。

    如果我们不创建良好的大规模社会数据聚合体,那么我们就有可能将市场份额拱手让给不透明和集中的社会信用评分。

    并非所有数据都应该在链上,但以常识的方式公开一些数据可以帮助提高社区对自身的易读性,而不会造成可能被滥用以进行集中控制的数据访问差异。

    作为数据存储

    这是一个真正有争议的用例,即使在那些接受大多数其他用例的人中也是如此。区块链领域有一个共同的观点,即区块链应该只在真正需要和不可避免的情况下使用,在其他任何地方我们都应该使用其他工具。

    这种态度在交易费用非常昂贵且区块链极其低效的世界中是有道理的。但在区块链具有汇总和分片且交易费用已降至几美分的世界中,这就没有意义了,而且区块链和非区块链去中心化存储之间的冗余差异可能只有 100 倍。

    即使在这样的世界中,将所有数据都存储在链上也没有意义。但是小文本记录?绝对地。为什么?因为区块链只是一个非常方便的存储东西的地方。我在 IPFS 上维护了这个博客的副本。但是上传到 IPFS 通常需要一个小时,它需要集中式网关让用户以接近网站延迟级别的任何内容访问它,并且有时文件会丢失并且不再可见。另一方面,将整个博客转储到链上,将完全解决这个问题。当然,博客太大了,实际上无法在链上转储,即使是后分片,但同样的原则也适用于较小的记录。

    将数据上链只是为了存储它可能是正确决定的一些小例子包括:

    • 增强的秘密共享:将您的密码分成N几部分,其中任何M = N-R部分都可以恢复密码,但您可以选择所有N部分的内容。例如,这些片段可能都是密码的哈希值、通过其他工具生成的秘密或安全问题的答案。R这是通过在链上发布额外的在整个集合上进行秘密共享来完成的N。(N+R)
    • ENS 优化。ENS可以通过将所有记录组合成一个散列来提高效率,只在链上发布散列,并要求任何访问数据的人从 IPFS 中获取完整数据。但这会显着增加复杂性,并增加另一个软件依赖性。因此,ENS 将数据保持在链上,即使它超过 32 个字节。
    • 社交元数据- 连接到您的帐户的数据(例如,用于使用以太坊登录的目的)您希望公开且长度非常短的数据。对于像个人资料图片这样的较大数据通常不是这样(尽管如果图片恰好是一个小的SVG 文件,它可能是!),但对于文本记录来说是正确的。
    • 证明和访问权限。特别是如果要存储的数据长度小于几百字节,将数据存储在链上可能比将哈希放在链上和数据链下更方便。

    在很多这样的情况下,权衡不仅是成本,而且在密钥或密码学破坏的边缘情况下也是隐私。有时,隐私只是有点重要,而偶尔因泄露的密钥或遥远的量子计算幽灵在 30 年内揭示一切而导致的隐私丢失,不如高度确定数据将保持可访问性重要。毕竟,存储在“数据钱包”中的链下数据也可能被黑客入侵。

    但有时,数据特别敏感,这可能是反对将数据上链并将其存储在本地作为第二层防御的另一个论据。但请注意,在这些情况下,隐私需求不仅反对区块链,而且反对所有去中心化存储。

    结论

    在上面的列表中,我个人迄今为止最有信心的两个是与其他区块链应用程序的互操作性和帐户管理。第一个已经上链了,第二个相对便宜(需要每个用户使用一次链,而不是每个动作一次),它的情况很清楚,而且确实没有一个好的非区块链-基于的解决方案。

    负面声誉和撤销也很重要,尽管它们仍然是相对早期的用例。仅依靠链下的正面声誉可以对声誉做很多事情,但我希望随着时间的推移,撤销和负面声誉的情况会变得更加清晰。我预计会有人尝试使用集中式服务器来做到这一点,但随着时间的推移,应该清楚区块链是避免在不便和集中化之间做出艰难选择的唯一方法。

    区块链作为短文本记录的数据存储可能是微不足道的,也可能是重要的,但我确实希望至少有一些这样的使用会继续发生。区块链对于廉价和可靠的数据检索确实非常方便,无论应用程序有两个用户还是 200 万用户,都可以继续检索数据。开源指标仍然是一个非常早期的想法,还有待观察在不被利用的情况下可以做多少和开放多少(例如,在线评论、社交媒体业力等一直被利用) . 常识性游戏需要说服人们接受全新的工作流程来处理具有社会重要性的事情,所以这当然也是一个早期的想法。

    我在很大程度上不确定这些类别中的非金融区块链使用水平究竟有多大意义,但似乎很明显,不应忽视区块链作为这些领域的支持工具。

  • 相关阅读:
    使用CMD命令导出和导入IIS站点配置信息
    论文阅读:2020GhostNet华为轻量化网络
    基于 ECharts的Python 数据可视化库,它允许用户使用 Python 语言生成各种类型的交互式图表和数据可视化
    Rasa系列教程(一) -- 系统及各组件介绍
    工作流-流程实例【ProcessInstance】与执行实例【Execution】
    matlab实现神经网络算法,matlab神经网络训练函数
    【SSRF-02】服务器端请求伪造攻击案例——WebLogic架构之从SSRF(存在未授权访问)==>GetShell
    Java之线程状态
    项目七 OpenStack网络管理
    数据挖掘与机器学习:数据挖掘算法原理与实践:数据预处理
  • 原文地址:https://blog.csdn.net/Linxiaoyu2022/article/details/126339358