区块链

自从比特币横空出世之后,支撑比特币的底层技术,即区块链技术引起了巨大的关注。人们开始琢磨:“这个区块链技术还可以用在什么地方呢?” —— 当然,人们琢磨得最多的还有另外一个问题:“我应该如何获利呢?”

1. 山寨币

2009 年至 2017 年之间,至少有几千个山寨币出现,而后批量死亡。所谓山寨币,就是对比特币进行了事实上并没有什么用的改造,然后取一个什么名字,然后就发布的所谓下一个比特币,下一个机会……

有一个山寨币,对比特币进行了最没用的改造 —— 只是把确认时间从 10 分钟改成了 2.5 分钟 —— 却最终顽强地活了下来…… 它叫莱特币(Litecoin)。也许是它的宣传语太吸引人了吧,它说,比特币是金,我们莱特币是银。于是,大量觉得自己错过了比特币的人,购买了莱特币…… 你看这世界多有趣,它总是有一定的容错机制。

2. 公链

2015 年年底,以太坊开始融资;2016 年,云币成了地球上第一个上架交易以太坊的交易所…… 2017 年,以太坊成了最火爆的区块链项目。

以太坊想要解决的问题是什么?又,解决的足够好吗?

历史证明,以太坊是一次并不成功的尝试 —— 它想要成为一个区块链技术应用平台,在这个分布式的 “计算机” 上,有它自己的编程语言;用这个特定的编程语言写的程序被称为 “智能合约”;人们可以在以太坊这个平台上发布各种基于区块链技术的应用…… 也就是说,它想要成为一条公链(Public Chain),顾名思义,就是公众都可以使用的区块链。

以太坊所遇到的困难,其实是它尚未诞生之时已经被质疑的东西:使用 PoW 共识机制的一条 “公链” 就是难以承载真正有意义的大规模应用。即便是以太坊的 PoW 被设计成十几秒之内确认一次,不要高兴得太早,10 分钟和 10 几秒事实上没什么区别 —— 因为真正有意义的大规模应用需要的是每秒钟成千上万次确认才可以……

缺陷最大的是以太坊独立设计的编程语言 Solidity,虽然最初的时候最大的宣传点是它 “图灵完整”,可事实上,并没有什么用,为什么呢?因为不管谁写的编程语言都一样,都难免有臭虫(bug)…… 可问题是,这种编程语言是用来写所谓 “智能合约” 的,这种程序是直接涉及到钱的,于是,只要有问题就会被攻击。以太坊上线没多久,有个叫作 DAO 的项目就被黑客攻击转移走了大量的资产,以太坊只好以 “紧急分叉” 来 “解决” 问题,于是遗留了一个今天人们不知道那是用来干什么的 ETC(Ethereum Classic),新的币叫作 ETH。

虽然以太坊计划将共识机制从 PoW 更新为 dPoS,但它现在面临两个问题:1. 如此这般的话,那么只能再次分叉,新的币叫什么好呢?老的币又能干什么呢?对技术人员来说是困扰,对投资者来说是未知的风险;2. 基于 dPoS 机制的,有多线程支持的分布式计算平台 EOS 早已于 2018 年 6 月正式上线……

3. 共识机制

首先,在这里请注意,我们所讨论 “共识” 是网络中节点之间的共识,是机器与机器之间的共识,而不是人与人之间的共识。人与人之间的共识与区块链没有任何关系 —— “共识” 这个词常常被人们误用、滥用。这也是为什么我曾经戏谑地说 “傻屄的共识也是共识” 的原因。我想说的是,傻屄们死活搞不懂,那不是人与人之间的共识,然后吧,他们还总是不懂装懂……

区块链本质上来看就是一个分布式管理的可不断添加记录却不能删除记录的数据库。由于是分布式维护,所以,每次添加记录的时候,要在网络节点之间达成共识,确认要被添加的记录有效之后才能进行添加操作。

比特币所采用的共识算法是 PoW(Proof of Work,工作量证明机制),简单讲,就是网络中的节点根据自己的贡献获得权益,多劳多得。PoW 在比特币这个区块链技术的第一个应用之中是完美无缺的,可是,正如你所看到的,对野心在于 “创建一个分布式计算机” 的以太坊来说,PoW 就成了致命缺陷 —— 无论如何,这种机制的新记录确认速度就是满足不了现实需求。

dPoS(Delegated Proof of Stake)是 PoS(Proof of Stake)的进一步改良。简单讲,就是你作为持币者,可以通过持有量和持有时间的多少获得权益。PoS 的问题在于,大多数持币者并没有专业知识,也不见得有足够的预算,于是,他们不见得能提供高性能节点所需要的计算机硬件和软件要求。于是,进一步改良的 dPoS 采用了基于投票选举的共识算法,持币者选出若干个节点来运营网络……

小白对更多的技术细节可以直接跳过,需要弄明白的是,PoW 无法支撑公链的需求;而 dPoS 是 EOS 创始人 Dan Larimer 的创新概念,PoS 从 2014 年的 BitShares 时代就开始验证,后来经过若干次更新改进,变成了 dPoS。你可以将 dPoS 理解为一次为了平台性能相对于 PoW 而作出的妥协,而这个共识算法目前来看是公链的最靠谱选择之一。

4. 山寨链

正如曾经山寨币群魔乱舞一样,2017 年开始,各种山寨链神出鬼没。各种名称的共识机制漫天飞舞,Po 两个字母之后,从 A 到 Z,全被用光了,各种 PoX(Proof of something)…… 它们真的有存在的必要吗?这些山寨链欺负普通民众不懂编程,大面积抄袭,反正抄袭已经没戏了的以太坊不划算,于是只能抄袭已经证明为较为靠谱的 EOS。事实上,除了这两个项目之外,抄袭者们也没有什么其他的选择。正如当年山寨币除了抄袭比特币之外也没有任何其它选择一样。

这世界是有容错机制的,山寨比特币的莱特币顽强存活到了今天;也许,那些抄袭 EOS 的各种项目之中,也会有那么一两个最终幸存?到底哪一个能够最终幸存我们没办法提前知道,但,我们知道的是,抄袭不可能超越。所以,山寨项目是留给那些想不明白的人的,不是吗?

5. 目的与手段

正如你所见,打造一个不可篡改的分布式数据库,是目的 ;而区块链技术,是达成这个目的的手段 。再进一步,所谓共识机制,是区块链技术的一部分;除了共识机制之外,还有另外一个重要的组成部分,奖励机制 —— 否则人们不会自动对网络有所贡献。

长期以来,所谓的技术创新基本上都聚焦在了如何改进共识机制之上,而奖励机制被默认为 “不可或缺” 的组成部分。人们以为,共识机制和奖励机制就好像是区块链这架马车的两个轮子一样,缺一不可。

有没有可能去掉奖励机制呢?然而,在此之前,还要问另外一个问题:为什么要想办法去掉奖励机制呢?

我们之前提到过,乍看起来区块链技术应该被应用到很多地方:

在一些场景下,这个世界的确需要不可篡改的数据库技术。比如,法院的卷宗,交通部门的违章记录,工商部门的企业登记,民政局的婚姻登记,公安局的身份证,大学的毕业证,等等等等……

你看,几乎所有的政务部门都需要不可篡改的数据库技术,可是,你不能让这些部门为了使用区块链技术而天天 “挖矿” 吧?关键矛盾在于,公共事务领域反正不是也不应该是靠利益刺激运行的。

看来,在一些场景下,有必要去掉奖励机制 —— 可如何做到呢?冯晓东设计的 Mixin Network 提供了一个解决方案 —— 它的非商业非营利版叫作恒信网络 (HengXin Network)。

恒信网络是世界上第一个已被证明为可行的无币区块链解决方案

恒信网络通过使用 TEE(Trusted Execution Environment,可信执行环境)生成了一个由中心化管理渐进为去中心化管理的可以无需奖励机制的分布式网络。除了 TEE 之外,恒信还结合了 DAG(Directed Acyclic Graph,有向无环图)为基础,辅以 ABFT(Asynchronous Byzantine Fault Tolerance,异步拜占庭容错)算法作为解决方案,构造了一个成本低廉,易维护、易使用,性能高,兼容性强的不可篡改的分布式网络。

TEE(Trusted Execution Environment,可信执行环境)的作用是,向公众证明网络中某个节点(或称服务器) “正在运行的代码” 的确是 “它声称正在运行的代码”。简单来说,你可以把具备可信执行环境的服务器理解为一个透明盒子,外部可以 “看到” 它内部正在运行的代码 —— 换言之,没有任何人能够在不被察觉的情况下改变这个透明盒子里正在运行的代码。

网络设计者可以自己在网络上部署一定数量的“透明盒子”,如此这般构成一个 “类自治” 的分布式网络 —— 这个时候,这个网络虽然已然是分布式网络,但依然是中心化治理的,因为那些透明盒子是网络设计者自己部署的。

然而,这时这个网络已经具备一定的 “自治” 特征,因为每个节点都是透明的,所以,即便是网络设计者本身也无法做到在他人不知情的情况下修改节点中正在运行的程序……

再进一步,这个网络是开放的,任何人都可以使用具备可信执行环境的服务器加入网络充当节点 —— 这里的关键在于,加入者是因为需要这个网络、需要这个网络所提供的服务才加入的,而不是因为网络设计者对加入者有所激励 —— 需要注意的是,恒信网络没有奖励机制。

加入者越多,网络越健壮,安全性也会因此越来越高。当网络的节点达到一定数量之后,网络设计者可以撤掉自己当初部署的节点,把整个分布式网络全部交由自由加入的节点管理…… 至此,一个自治的、非中心化管理的分布式网络终于形成。

恒信网络的商业版,Mixin Network 于 2019 年 2 月主网正式上线,迄今为止(2019 年 11 月)性能稳定;已无故障运行 9 个月。

a. 支持大规模高并发

与传统区块链不同,恒信网络使用的是 DAG(Directed Acyclic Graph,有向无环图)技术;它没有传统的区块概念,它以每一笔交易为单位,尽可能快的向整个网络进行指数级广播,与此同时,避免双花的是ABFT(Asynchronous Byzantine Fault Tolerance,异步拜占庭容错)算法。于是,在恒信网络中,每条交易记录的确认,不再有时间瓶颈,TPS(Transaction Per Second)在恒信网络中是一个完全没有必要存在的概念 —— 恒信网络几乎和中心化服务器一样高效。

b. 兼容各种其它公链

由于恒信网络的核心只做记账,所以,理论上它能支持所有公链的资产管理。目前已支持的公链包括比特币、以太坊、EOS、Ripple 等 50 余条公链(数量一直在不断增加)。通过结合使用多重签名算法与异步拜占庭容错算法,用户的公钥与私钥管理被封装了起来,恒信网络的用户只需要通过最多试错 5 次的 6 位数字密码统一管理任何公链上的数字资产 —— 极大地降低了用户使用成本,同时也极大地提高了数字资产的易用性。

c. 关于所谓智能合约

与以太坊和 EOS 不同,恒信网络只做资产管理网络。至于所谓的 “智能合约”,在恒信网络中的解决方案是用户使用任何编程语言编写他们的程序,而后将这些程序开源,并运行在具备可信执行环境(具体来说,就是 Intel SGX)的服务器上,公开透明地运行这些程序。这么做的好处是,智能合约与恒信网络本身无关,恒信网络却能提供智能合约(其实就是各种程序)的完全透明运行环境。

6. 分布式账簿技术

准确地讲,区块链技术,应该特指的是比特币的 “分布式账簿解决方案” 中所使用的技术。分布式账簿的解决方案之中,比特币的区块链技术理论上应该是其中的一支 —— 目前已有很多其它的可行解决方案,比如上文中提到的基于 dPoS 的 EOS 和基于 DAG + TEE 的 Mixin Network。

我们可以从另外一个角度观察比特币的区块链技术:

  • 问题:分布式网络很脆弱,它总是面临一个问题,被称为拜占庭将军问题

  • 解决方案:比特币的解决方案(区块链技术)的巧妙之处在于,它并没有解决拜占庭将军问题,而是 “绕过 ” 了拜占庭将军问题:

    • 网络中的所有节点都参与 “猜谜”(即,所谓的挖矿)
    • 每次猜谜都需要大约 10 分钟左右才可以完成(以此降低分布式网络中各个节点之间的通讯频率)
    • 谁最先完成谜题得到正解,谁就充当一次分布式网络的中心 —— 这个节点会获得奖励,这个节点会把含有获得奖励的交易记录的区块打上自己的签名广播出去…… 下一次通讯的时候,这个分布式网络还是有中心的,只不过,每一次的中心都各不相同……

    于是,从这个角度望过去,比特币(区块链)的解决方案非常讨巧:

    想办法让一个分布式网络像一个中心化网络一样工作……

也就是说,区块链技术的重点之一就是 “通过降低分布式网络中的节点之间的通讯频率” 去保证每次都有一个节点 “最先完成谜题”,进而让这个节点充当一次分布式网络的 “中心”…… 偶尔会出现有若干个节点同时算出谜题怎么办?还有进一步的技术解决方案,“选择最长链”(哈哈,超纲了,过于技术的细节不在本文讨论范围之内)……

于是,我们可能会得出一个与绝大多数人不一样的结论:

区块链技术,本质上(也已然被证明为)只适合比特币……

所以,未来真正改变世界的,并不是狭义的区块链技术,而是分布式账簿技术(Distributed Ledge Technology)—— 只不过,现在的绝大多数人误以为区块链技术就是分布式账簿技术本身或者全部,殊不知,区块链技术只是分布式账簿技术的一个分支而已。

下一节:对小白来说,有个问题非常现实:小白是没有技术能力的 —— 于是,小白们最终只关心一个问题:我如何获利?可问题在于,投资这东西,对小白来说更为险恶……