用 SoLiD 取代区块链

https://github.com/kezike/solid-vc
能在 SoLiD 上面创建基于零知识证明的签名了,这可能导致区块链除了作为数字货币以外没有其他用处了。

关于 DID-without-the-blockchain 的讨论: https://github.com/w3c-ccg/did-spec/issues/113

This post is deleted!
This post is deleted!
This post is deleted!
This post is deleted!

我感觉可以把它用在认证工厂的身份和偿付能力上,基于 SoLiD 的 B2B 社区会需要这样一个信任验证,类似于1688的诚信通。
不过诚信通好像并没有取得很大的作用,原因我还没搞清楚。

不过 SoLiD 上面的可信声明主要是用于在 Web3.0 中溯源某个声明,它与分布式账本技术的不同之处在于,分布式账本技术用很高的成本来保证所有数据都不可删除,但 SoLiD 让用户有删除自己不想要的数据的自由。
所以 SoLiDVC 适合证明对用户有利的数据的存在性,而分布式账本依然可以用来存储对用户不利的数据(例如车辆维修记录)的存在性,两者并不是竞争关系,可以并存。


我下面简要翻译一下 https://forum.solidproject.org/t/solidvc-a-decentralized-framework-for-verifiable-credentials-on-the-web/1260/3 中的讨论:

(linonetwo 分享了本体项目区块链的文档 https://github.com/ontio/ontology-DID/blob/master/README_cn.md

你分享的工作确实和 SoLiDVC 相关,因为它也在尝试实现可验证的凭证规范。正如您所提到的,主要区别在于它利用了分布式账本技术(DLT)的一致性和持久性保证。实际上,有一段时间,我也在考虑引入账本结构,该结构涉及通过在一个 POD 中存储凭证或打包的凭证块来模仿区块链这样的账本,并且每个凭证会引用它的前置凭证块。这样做的好处是可以在系统中强制保证凭证有一个全局排序,主要用于存储时间戳和有序事件(也就是说,要知道最后一次撤销凭证的事件是在最近发生的一次续订凭证事件的之前还是之后)。在花了一些时间挖掘这个无底洞之后,我意识到这不是一个非常有建设性的方法来在 SoLiD 的背景下实现凭证这个概念。首先,POD 所有者可以随时删除凭证,这会立即导致验证链条的中断。二,我可以使用 W3C 标准本体定义的术语,例如xsd:dateTime 来表示时间段和到期时间。

SolidVC 有很好的去中心化特性,因为每个用户都可以对他自己的凭据进行很大程度的控制。但是,如果每个用户都可以对他自己的凭据进行很大程度的控制,这也会导致一个很大的限制!你可能已经想到了,当接收者(subject)不再依赖签发者(issuer)存储他们的证书时,有一些商业模式就不好做了,因为这些商业模式中,过去事件的不可篡改的详细历史是至关重要的。例如,房地产经纪人有兴趣知道潜在租户的信用记录。接收者(subject)从一个签发者(issuer)偷偷切换到另一个签发者(issuer)以获得新的信用评分的自由,可能使得 SoLiDVC 难以真正评估个人真正的偿付能力(除非签发者(issuer)在凭证中明确表明他们与该接收者(subject)来往了多久时间了,从而「为他们背书」,有了这个说法,才可能有空间为某些类型的凭证引入某种持久化机制。)。

关于持久化的另一点,我现在可以说的是,其实还有更好的方案可以使凭证文件持久化。就是做一个关于凭据的凭据(元凭据),也就是说我维护一个权威的撤销列表。每个凭证都附带上这种文档,该文档描述了一些信息,例如此凭证是否处于激活状态,是否已过期或已撤销等等,以及与这些状态相关的相关元数据。目前,此文档可以存在于签发者(issuer)的 POD 中,这意味着如果签发者(issuer)选择以任何方式篡改此文档,则验证方(verifier)可能无法访问曾经对凭证做出的一些历史声明。为了对付这一种情况,我们可以利用 Web Ledger 互联网账本协议加上其他 W3C Web 规范来维护这些特殊文档。

最后,为了回答你关于我是否认为这个工具可以完全取代区块链技术的问题,我不得不说。我可以看到这个框架在 Web 3.0 中发挥了重要作用,目的是可靠地对某个声明溯源(获得声明的源谱 provenance),通过使用可信声明 Verifiable Credentials,但我认为如上所述,这些技术的细微差别使 SoLiDVC 和区块链技术更像兄弟技术而不是竞争对手:它们是相关的,共存的,但互相不会是威胁性的。