Blockstack 是2013年由一群普林斯顿大学的博士和教授创立的区块链项目。2014年获得了 YC ,联合广场风投的投资。特别强调一下,这两家机构在互联网领域是非常知名的。那么区块链项目众多,Blockstack 的愿景有什么不同?为何走了跟其他区块链项目相反的技术路线?项目自称的“全栈解决方案”又都包含哪些组件呢?

计算模式的变迁

Blockstack 是一个去中心化的计算网络,愿景是为 Web3.0 提供技术基础设施。他们认为,每一次计算模式的变迁都会给行业带来一个大机会。而对云计算,或者说 Web2.0 的去中心化,就是下一个大机会。

到目前为止,计算模式经历了三代,两次变迁。最早是大型机时代,计算资源非常的中心化,很多人通过自己的终端同时连接到一台大型机上工作。终端是非常傻的,没有太多功能,数据都是存储在大型机上的。第一次变迁是由个人计算机运动带来的,每个人都拥有了一台属于自己的计算机。可以自由的安装软件,甚至调整硬件,个人计算机时代带来的是硬件计算资源的去中心化。接下来随着互联网的发展,第二次变迁到来,人类进入云计算时代。计算资源又出现了中心化的趋势。我们自己的电脑又变得很像一台终端了,不连云服务什么也干不了。究竟什么是云呢?云其实就是别人的服务器。亚马逊提供了 AWS 服务,每个开发者都把自己的 App 部署到上面运行。或者每天我们用 Facebook ,用 Google Docs ,不用安装软件,打开浏览器就能用,数据也都存到了别人的服务器上了。

每次计算模式的变迁,都伴随大公司的产生。IBM 主要靠大机器崛起,是大型机时代的霸主。微软靠个人计算机挣了大钱,业务模式是卖软件授权。云计算时代的谷歌,Facebook 从来不靠买软件授权挣钱,而是靠用户数据挣钱,这是当下 Web2.0 的最常见的盈利方式了。但是,Blockstack 是为下一次变迁而生,那就是数据的去中心化,是本书中一再强调的数据产权的个人化。当人们对隐私对数据越来越重视,公司不允许再通过直接拥有用户数据挣钱了,我们需要的是新一代的去中心化的 App 架构,新一代的互联网技术基础设施。

每一次计算模式的变迁,产业规模都会变得更大。因为更多的人可以参与进来进行创新,就像个人计算机让每个人都拥有了便宜的硬件资源,带来了创新的爆发。Web3.0 让大数据不再被巨头把持,数据使用权的民主化也会带来下一轮的产业发展。

技术架构

Blockstack 是一个 App 运行的平台,目前已经有数以百计的可用的 App 在运行了, 这个在区块链项目中是非常抢眼的。其中包括各种去中心化版本的 Google Docs ,LinkedIn ,Facebook 等等。

Blockstack 的责任是为开发者扫清去开发中心化的 App 的各个拦路虎。例如,Blockstack 提供了去中心化的登录和存储服务,让开发者可以专注业务逻辑的实现。Blockstack 之所以是”全栈式的计算平台“,就是因为它为开发去中心化 App 提供了各个层面的技术支持。

Blockstack 是对云计算的替代,Blockstack 试图构建的就是 Web3.0,所以需要替代云计算的所有组件:

  • 认证:中心化的思路下有 Facebook Connect ,补充一句,这个类似于用微信账号登录各个其他应用。而 Blockstack 提供了专门的去中心化的登录功能。
  • 存储:从 Web2.0 的亚马逊的 S3 服务到 Blockstack 自己的 Gaia 系统。
  • 共识:云计算时代的共识就是某个巨头的数据库,例如,每次转账是否成功,就是以支付宝数据库为准,而到去中心化条件下,是通过区块链的共识来决定转账是否成功的,典型的例子就是比特币。Blockstack 也有自己的区块链,名叫 Stacks 。
  • 支付:从 Paypal 或者支付宝,到智能合约。
  • 软件分发:从 App Store 到 Stacks 区块链上的发布策略。
  • 浏览器:从 Chrome 到 DApp 浏览器。

需要注意,Blockstack 的愿景跟本书的 Web3.0 愿景完全一致,那就是让巨头把数据所有权还给用户。所以 Blockstack 对 Web 的一些可能造成中心化的组件进行了必要的技术改进,但并不是故意重造所有轮子。例如 Blockstack 底层依然是基于 TCP/IP 的,因为互联网底层的协议已经是去中心化了,最早设计的时候就是可以抵抗住核战争,没有脆弱的单点故障问题,所以无需迭代。

”轻“区块链哲学

在介绍 Blockstack 的时候,CEO Muneeb Ali 提到

We don't believe in 'heavy' blockchain.

所谓的“重”区块链,指的就是很多区块链项目主张的把所有的业务都在区块链这一层来完成的思路。Muneeb 接着说

Blockchains Don't Scale PERIOD.

很多项目认为,区块链只需要解决扩容问题,就可以在链上实现所有的功能了。而 Blockstack 的结论是:“区块链根本就不能扩容,坚定完毕”。区块链的强大来自于全球共识,而基于带宽和存储资源的限制,全球共识永远不可能廉价到可以像数据库这样来随意存储任意数据。所以 Blockstack 自己的区块链非常的“轻”。整个系统在设计的时候就考虑到了不能过度依赖区块链。只让区块链去完成最适合自己完成的事情,然后尽量把安全性提高。

这个思路的一个体现就是,Blockstack 的 Stacks 区块链上虽然也支持智能合约,但是使用的编程语言 Clarity 是图灵不完备的。因为 Blockstack 的团队观察到,最近几年,因为智能合约的漏洞,出现的黑客事件层出不穷。究其原因,是因为开发者企图借助图灵完毕的语言,开发功能很复杂的逻辑。Blockstack 团队说项目走了一条跟很多区块链项目截然相反的路,从上面的 Blockstack 关键组件的设置可以看出,Blockstack 要在 Web2.0 的基础上演进式的创新,而不是跟很多区块链项目一样,试图用智能合约颠覆一切。Blockstack 更支持把主要业务逻辑放到链外去执行,这样开发者就不必被迫使用区块链限定的编程语言去开发整个应用了。试想,现在我们要开发一个去中心化的 Twitter ,但是不能使用我们自己熟悉的各种编程语言,而要用区块链的智能合约语言去实现所有逻辑,这是多么低效的一件事情。

总之,“轻”区块链哲学是 Blockstack 的一个基本思路,也是本书坚持的一个架构 Web3.0 的思路。

Blockstack 是一个开源项目,Blockstack PBC 是这个项目背后的公司,负责和社区一起开发 Blockstack 的协议和开发者工具。Blockstack 自己的定位是要成为最简单的构建区块链应用的方式,因为 Blockstack 提供了全栈的技术基础设施让开发者的应用任务变得简单。开发者不需要去学习新的编程语言,如果会 JS 和 Web 开发,就可以直接使用 Blockstack 提供的 JS 库来开发 Blockstack 应用了。

此外,Blockstack 还提供了内置的激励机制,叫做 App Mining 。Blockstack 区块链上有一种专门的代币分发机制,是用来奖励那些在 Blockstack 区块链之上开发 App 的人的。当然过程只是半自动化的,需要审核人员的介入。

首先,Blockstack 提供了一个去中心化的 ID 系统。每一个用户 ID 都是写入到区块链上的,是属于用户自己的。实际中,用户因为要使用区块链,所以需要支付一定的手续费,但是初期为了用户体验的平滑,创建 Blockstack ID 是不需要用户自己支付的,Blockstack 会承担这个费用。需要强调的是区块链 App 和中心化 App 的区别非常明显:没有了中心化 App ,就没有人能够无偿占有我们的数据了,同时,也没有人无偿为我们提供一些需要花钱的服务了,例如存储数据包括存储 ID 。ID 系统的底层是 W3C 的 DID 规范,但是 Blockstack 这里提供了一个类似 DNS 的机制,可以把 DID 的随机数绑定到一个人类容易记住的名字上,例如 happypeter.id 。这些注册信息都是用户靠自己的私钥去保护的,没有任何其他人可以改动,包括 Blockstack 团队。

Gaia 是 Blockstack 的存储层,是整个技术栈的关键组件。Gaia 是一套软件,用户可以在任意的位置配置 Gaia ,于是可以把自己的数据存储到任何位置,例如 Google Drive ,Dropbox 或者 IPFS 。当然对 ID 的信息要做一下设置,以保证系统能通过 ID 找到存储位置。有了 Gaia ,开发基于 Blockstack 的 App 时候,开发者根本不需要担心存储问题,只要通过一套统一的 API 进行数据的读写即可。

App 实例

下面列出开发者基于 Blockstack 开发出的一些去中心化应用。

Graphite 是类似 Google Docs 的一款在线文档编辑器,是去中心化的。上面可以创建文档,电子表格。编辑功能也是非常的丰富,可以支持多人实时协作。默认情况下,所有的数据都是加密的,没人可以看到,包括 Graphite 自己的服务器管理员。但是用户自己可以设置粒度非常细的权限,例如可以给某人开放权限。数据都是存在 Gaia 上的,也就是用户自己控制的,所以即使 Graphite 倒闭了,数据也是安全的。

BitPatron 是一个去中心化版本的 Patreon 。Patreon 是一个非常知名的网站,内容生产者可以去上面号召自己的粉丝每月付费支持的自己的内容创作。是一种创作者获得收入的方式。在 BitPatron 上面,创作者可以创建新活动,获得比特币资助,支付方式是比特币的闪电网络,所以可以允许小额,例如小于一分钱的赞助。而如果用传统的信用卡的方式,因为涉及手续费,是不能做如此小额的支付的。

Sigle 是一个博客平台,很像 Medium 。用户可以在网站上创建自己的 Blog ,写文章,并分享给好友。文章没有发布之前,也都是加密的。

Banter 是一个类似 Twitter 的社交平台。用户可以在上面发布微博,点赞,或者 At 他人,也可以基于 Websocket 技术获得实时的好友更新。点击 login 登录 Banter 的时候,会弹出一个对话框,请求用户是否可以读取基本信息和已发布的微博,可以看到,去中心化的应用条件下,数据是严格受到用户控制的。

App.co 上面可以找到更多的基于 Blockstack 开发的 App 。另外,docs.blockstack.org 上可以找到开发文档,教程,可以通过搜索功能搜到论坛里的内容。网站上有一篇非常适合新手的教程,叫 Zero to DApp ,可以一步步的带你学习如何在 Blockstack 上开发 App 。

结论

最后总结一下,Blockstack 的愿景是在 Web2.0 的基础上通过替代已有组件的方式,演进到 Web3.0 ,这个过程中 Web2.0 的很多中心化的基础设施,例如 DNS ,都可以暂时性的被保留。这个和很多区块链项目,用智能合约颠覆一切的思想是非常不同的。Blockstack 认为区块链根本就不可能扩容,所以走了“轻”区块链的路线。让区块链只去做自己最擅长的事情,而把主要的业务逻辑放到链外去执行。它提供给了开发者,一个全栈的技术支撑,包括去中心化的登录和存储系统等等,让开发者很容易的去开发自己的业务逻辑。

results matching ""

    No results matching ""