区块链应用堆栈的共享数据层


旧文。译文,有删减。仅作收录。

想象一下,每个应用都插入一个全球数据库(或一组全球数据库)。区块链应用堆栈的共享数据层,顾名思义,它是一个数据存储层,去中心化,并向所有人开放。

去中心化意味着,没有一单个实体、个人或公司拥有这个数据库,它由世界上百万计的计算机维护。

开放意味着任何——无论是一个人,一家公司或一个应用——都拥有这个数据库无需许可式访问权限。你的个人数据是加密的,只能由你通过密码(或更准确地说,你的私钥)授权给予其访问权限的人进行解密和诠释。你可以允许某些应用访问你的数据,但这些应用不拥有这些数据,你可以在任何时候拒绝这些应用的访问,或将数据转移到其竞争对手,且不失去数据控制权。

编者注:Joel Monegro 后将此图简化为 基础协议,去中心化应用,用户界面

这是通过我所称的覆盖网络(Overlay Networks )和区块链的组合而实现。

将数据存储在区块链上

2013 年,比特币协议引入了一项功能,允许我们创建一种特殊交易(称为 OP_RETURN 交易),在其中,你可以在交易中嵌入 40字节的少量数据。最初,它用于将背景信息附加到比特币交易中。使用该功能的更具创造性方式是,创建尽可能小的交易(0.00000001 BTC,或1聪,加上交易手续费),并嵌入任何你想要添加的信息。

因为区块链在时间戳和分布式共识方面非常擅长(即网络中的大部分节点都同意,某片信息是真实的,在比特币,这些信息是交易信息及交易所发生时间),你可以利用其信息的不可逆性,对其他信息作永久记录。

40 字节不多,但通常,约束对激发创造力很有帮助。使用该功能的有趣应用之一是存在证明(Proof Of Existence)。给定任何文件,它会创建一个对应哈希(hash),将其嵌入区块链。稍后,你可以使用交易的时间戳和储存其中的哈希(hash),来证明该文件在当时存在——将存储于区块链的哈希与你手中文件哈希(hash)进行比较。如果匹配,你就能证明在交易时间,文件存在。

另一个更面向消费者的应用是 Blocksign,一个数字签名服务,类似 Docusign 或 Hellosign,使用相同技术将签名文档存储于区块链。

这两种应用都有趣,却是相对琐碎的 op_return 交易应用。值得庆幸的是,世界各地的开发者提出了巧妙方法,将这 40字节 进行很好利用。

(比特币)区块链的缺点

对于过度使用 OP_RETURN 交易,将数据存储于区块链,比特币生态系统的许多成员都有(合理)担忧。其中主要是矿工费用增加,无用信息导致区块链膨胀,交易确认时间长。

传统上,解决这些问题的方法是分叉及创建新的加密货币和协议,从而获得更快的确认时间、额外存储等。然而,许多团队已经围绕这些问题,开发出一些创造性解决方案——通过创建覆盖网络(Overlay Networks),以及对区块链的节制使用(只用于更关键操作)。我相信这是正确途径。

覆盖网络(Overlay Networks)

覆盖网络是通过附加功能来扩展(或补充)比特币区块链的系统(systems),附加功能如存储某些类型的数据或文件。覆盖网络与区块链,形成共享数据层。

相比分叉比特币协议,或发布竞争币,在比特币区块链的基础上建立覆盖网络,优势在于,可以从其巨大的流动性和网络效应中获益。

不管这些“覆盖网络”各自采取何种形式,共同点在于他们与比特币区块链的联系在于达到他们的目的(如通过使用 BTC 作为激励代币,对其工作进行时间戳,验证数据等),并且正如区块链,它们是去中心化的,任何人都可访问。Counterparty 和 Mastercoin。

另一种方法是使用侧链。从理论上讲,侧链可以让开发者在自己的区块链上创建自己的特定用途加密货币或侧币(sidecoins),但与竞争币不同的是,侧币可以在比特币区块链和其自身区块链之间自由转移,从而从 Bitcoin 的流动性中获益。

覆盖网络的最后一个例子是 Factom,它是区块链的“数据层”,可以用来对大量实时记录进行编码和审查。Factom 是一个独立网络,拥有自己的节点,利用分布式哈希表(Distributed Hash Tables)存储数据,这些数据被周期性地进行哈希运算( hashed )并记录在比特币区块链中。它对一些应用有用,对一些应用不那么有用,但它是覆盖网络的一个很好例子。

还有很多新兴覆盖网络,我希望看到的一种覆盖网络是一个去中心化 MongoDB-compatible 数据库。这些覆盖网络的大量供应(每个提供不同服务),将使应用开发者能够立即访问低成本、安全和去中心化基础设施。

个人数据所有权和安全性

区块链堆栈的最重要概念之一是,个人数据所有权,以及对互联网应用用户模型的倒置。我想简要介绍一下存储个人或敏感数据的问题,这些数据存储在一个由数百万台未知计算机维护的全球数据库中。

简单答案是加密。是的,存储在 Dropbox 上的信息可能会被加密,但 Dropbox 持有加密密钥,可以访问你的文件。如果 Dropbox 被黑客攻击,就会危及你的数据。

在区块链堆栈中,用户数据模型是倒置的:不是由第三方持有你的数据和密钥,而是区块链网络拥有数据,而你持有密钥。没有你的允许,没有人能进入,你拥有完全控制权。应用简化为基于你数据之上的瘦界面,通过共同协议,不同应用可彼此交互。就像你可以给某人发送邮件(从 Gmail 到雅虎邮箱);你可以阅读你朋友的文章,而不需使用相同应用。

有一个观点是,用户不想(甚至不应该)有这么多控制权,但我认为我们应该考虑到一个更重要的点。这不是关于用户是否应该能够拥有控制权,而是他们如果想要,还是否能够拥有这个控制权。绝大多数人会选择让第三方成为他们私钥的保管者,比如 Coinbase 。但如果你提出要求,Coinbase 会归还你的密钥,然后你可以转移到另一个类似服务(或拥有你自己的钱包),你的余额不变。

我迫不及待,这个模式扩展到比特币之外,进入所有其他互联网服务。

原文:http://joel.mn/post/104755282493/the-shared-data-layer-of-the-blockchain
作者:Joel Monegro
编译 & 校对:蓝蓝蓝/Mitta,米法,古拉