Blockstack 提供了多种技术组件来方便开发者开发 DApp ,其中最关键的是三个,Blockstack Auth 去中心化身份系统,Gaia 去中心化存储,Stacks 区块链。那么这三者各自有什么特点,相互之间又是如何配合的呢?这节来详细聊聊。

Blockstack Auth

Blockstack Auth (后面简称 Auth )是 Blockstack 提供给开发者的一个去中心化的认证协议,是一个去中心化的身份系统。

Auth 的目的是给用户提供一个全网通用的用户名。整个系统是基于 W3C 的 DID 标准,所以这个身份是属于用户自己的,每个基于 Blockstack 开发的网站或者应用,都可以用这个用户名来登录。用户再也不用每次使用一个新的网站,就重新注册一下了。很多人认为,在 Web 诞生的第一天,就应该把这样的一个机制设计在内的。Auth 可以帮用户在区块链上把用户名作为一个加密资产来进行注册,然后通过持有对应的私钥来使用这个用户名。用户需要理解如何使用私钥,这个有一定的难度,但是一旦用户掌握这个能力,他们就能像拥有比特币那样,真正自己持有自己的用户名了,而不会再被任何公司持有。

对于开发者而言,Auth 提供的用户名可以直接用来登录网站或者 App 。不需要再单独开发用户身份系统,也不需要数据库去存储用户名密码了。

这就是 Auth 的基本原理了。

Gaia

使用 Auth 登录一个应用的用户,当他退出这个应用的时候,他不会在这个应用里面留下任何数据。不仅仅是用户的身份是自己持有的,数据也是自己存储的,而这个存储的方式,就是使用 Gaia 系统。

Gaia 可以认为是一个私人数据保险柜。保险柜是属于用户自己的,一旦数据存入,没有任何其他人可以查看。具体这个保险柜存在哪里,是没有明确规定的,可以存在普通的云存储空间之上,例如 Dropbox 或者 Google Drive 。注意,以往我们往这些地方存数据,这些服务的提供者是能够看到我们的数据的,但是有了 Gaia ,数据是加密,或者说放到保险柜中之后才放到云存储之上的,所以云存储背后的公司是不能看到我们的数据的。换个角度,可以说 Gaia 让每个人拥有了自己的一个小私有云。

Blockstack 团队认为,去中心化的存储系统,类似 IPFS ,起码目前来讲并不是很好的存储方式。Muneeb 在一次演讲中提到:”你绝不希望把自己的数据存到一个咖啡馆里的人的笔记本上,一旦这个人关了笔记本,你的数据就不能访问了。“。当然,我们知道 IPFS 存储数据是有备份的,但是 Muneeb 本人是普林斯顿专门研究分布式计算机系统的博士,他应该知道自己正在说什么。

Gaia 的宏观介绍就是这些了。

Stacks 区块链

接下来要介绍的是 Blockstack 自己的名为 Stacks 区块链。

Stacks 区块链是支持智能合约的。跟很多区块链项目追求图灵完毕,追求功能强大的思路不同,Stacks 追求极致的安全,不惜牺牲灵活性。更简单的,可预测的程序代码,更容易进行形式化验证。而且,Stacks 上的代码是运行在解释器上的,也就是说,一旦对代码执行的形式化验证之后,就可以直接在区块链上执行这些代码了。而如果采用编译型的语言,源代码跟真正执行的二进制机器码之间还隔着一个编译过程,如果编译器本身有漏洞,那么即使是源码进行过形式化验证也不能保证执行时候的安全了。

Stacks 区块链上的代币叫做 Stacks Token 。代币用来做系统运行的燃料。当我们运行智能合约的时候,就有消费代币。 Blockstack 预见的未来是一个没有公司的世界,一切都靠去中心化的组织去推动,所以代币也用来提供足够的激励。不仅仅是挖矿可以获得代币奖励,在 Blockstacks 上做 App 的团队也可以通过一个叫做 App Mining 的机制来获得代币奖励。App Mining 系统很像一个去中心化的 App Store ,让好的应用可以跟用户见面。

就我写本书的这个时间点言,Stacks 区块链也仍然在快速迭代中,最近进展可以参考官网。

结论

Blockstacks 技术栈的最重要的三个组件,身份系统,Gaia 存储系统,Stacks 区块链,的介绍就到这里了。身份系统基于 DID ,给每个用户一个全网唯一的,不受任何 App 控制的用户名。Gaia 是存储每个用户数据的保险柜,因为 Blockstack 主张用户数据不存储到区块链上。Stacks 区块链是有代币并支持智能合约的,但是 Blockstacks 主张绝大多数的业务逻辑都在链外实现。只有跟支付和资产相关的个别部分才实现到区块链上。

results matching ""

    No results matching ""