加密经济学:引爆区块链新时代(txt+pdf+epub+mobi电子书下载)


发布时间:2020-08-22 13:45:27

点击下载

作者:龚健等

出版社:机械工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

加密经济学:引爆区块链新时代

加密经济学:引爆区块链新时代试读:

推荐序

为什么要读这本书?

从2014年投资OKCoin开始算起,我接触区块链已经有4年了。在这期间,OKCoin(OKEx)已经成为全球最大的数字货币交易所之一,但我必须说,我是从2017年年底创办火星财经开始,才真正在区块链世界找到感觉的。

很多人不能一眼看到区块链的巨大机会。因为区块链足够颠覆,足够复杂,它看上去是20年前“去中心化互联网”的升级版,好像只是一个技术创新。但事实上,区块链建立了一个新的信任体系,并由此把技术、经济、文化乃至人性裹挟进来,把一切链化,打一个比方,它更像八爪鱼。我相信这是一次远大于互联网的机会,这是一次“掀桌子”的机会。

对这样一个复杂和全新的事物,单从技术角度理解已经完全不够了。所以,在火星财经的社群里,很多人讨论问题稍一深入,就会进入货币学、经济学范畴,甚至哲学和神学也经常被纳入讨论议题。

当下,“比特币”“区块链”“智能合约”“挖矿”这些名词已经走入大众的视线。很多人关注区块链技术是由于加密数字货币市值的暴涨,而非体会到区块链技术颠覆了我们已有的认知,并将要带来一场全新的革命。

我很喜欢“加密经济学”这个提法,我相信这个尚未被大家所熟知的名词,将会在区块链中占有相当重要的地位。本书的作者之一龚健,是比特币社区的早期参与者,2011年开始接触挖矿,也是《哈佛商业评论》和《华尔街见闻》等的专栏作家。他所著的这本书比较系统地梳理了区块链衍生的经济模式的架构和来龙去脉,是一本科普类的加密经济学书籍。书中用通俗易懂的语言,讲述了加密经济学及与其相关联的博弈论和行为经济学等。

区块链通过技术解决信任问题,而加密经济学的机制被写成代码之后,能通过一系列的奖励和惩罚措施来约束区块链上每个人的行为,这是一种伟大的创新机制,自动、安全、有共识。

我相信未来关于加密经济学的讨论会更多、更深入,加密经济学对于区块链的影响也会越来越大,让我们共同期待那一天的到来。王峰蓝港互动集团(HK.8267)创始人火星财经发起人极客帮创投合伙人前言加密经济学如何引爆区块链新时代

相信你对“区块链”已经再熟悉不过了。区块链技术颠覆了我们已有的认知,并将带来一场全新的革命。

加密经济学是一个不被大家所熟知的名词,但是它在区块链中的地位相当重要。以太坊社区开发者弗拉德·赞菲尔(Vlad Zamfir)对这一术语进行了解释:这是一门独立的学科,旨在研究去中心化数字经济学中的协议,这些协议被用于管理商品及服务的生产、分配和消费。它也是一门实用科学,重点研究对这些协议的设计和界定方法。

本书比较系统地梳理了区块链衍生的经济模式的架构和来龙去脉,用实际案例说明了加密经济学与区块链的必然联系。

区块链通过技术解决信任问题,而加密经济学的机制被写成代码之后,能通过一系列的奖励和惩罚措施来约束区块链上每个人的行为,这是一种伟大的创新机制。加密经济学的最大意义在于保证去中心化共识系统的安全、稳定、积极和有序。这里面我们提到了四个词语,其中安全和稳定主要依靠密码学机制来实现,而积极和有序则依靠经济学机制来实现。

本书还对当前最流行的各种共识算法和这些共识算法的优化机制进行了详细探讨,对有志于参与区块链浪潮的朋友来说,非常有参考意义。同时,本书还探索了博弈论、行为经济学这些经济学机制在区块链上的映射,也列举了一些浅显易懂的例子,以帮助大家轻松理解。  第1章 什么是加密经济学

什么是加密经济学?以太坊社区开发者弗拉德·赞菲尔说:“加密经济学是一门独立的学科,旨在研究去中心化的数字经济中管理商品和服务生产、分配及消费的协议。加密经济学是一门专注于这些协议的设计和特性的实用科学。”

如果把加密经济学的概念分解一下,正如其名,它来源于两个词汇:密码学(Cryptography)和经济学(Economics)。1.1 密码学基础

古典密码学主要关注信息在保密形式下的书写和传递,以及与其相对应的破译方法。而现代密码学则起源于20世纪末出现的大量相关密码理论,是数学和计算机科学的分支,同时大量涉及信息论。现代密码学不只关注信息保密问题,还同时涉及信息完整性验证,信息发布的不可抵赖性(即数字签名),以及在分布式计算中产生的来自内部和外部攻击的所有信息安全问题。

现代密码学的发展促进了计算机科学的发展。如今,密码学已被应用在日常生活中,包括ATM的芯片、计算机访问密码、电子商务等领域。

区块链技术中使用了多项密码学内容,主要包括哈希算法、密钥加密和数字签名。1.1.1 哈希算法

哈希(Hash)函数有多种叫法,如密码散列函数、消息摘要函数、杂凑函数,它不一定使用密钥,但它和许多重要的密码算法相关。它将输入数据(通常是一整份文件)输出成较短的固定长度散列值,这个过程是单向的,两个不同的输入产生相同的散列值这种情况的发生概率非常小。

简而言之,哈希算法是将任意长度的字符串映射为较短的固定长度的字符串。例如,比特币使用的是SHA-256摘要算法,对任意长度的输入给出的是256位的输出。

那么,加密货币中哈希算法的应用有哪些呢?

1.加密哈希函数

加密哈希函数有如下特性。

·确定性:无论在同一个哈希函数中解析多少次,如果输入的内容相同,得到的总是相同的输出。

·高效运算:计算哈希值的过程是高效的。

·抗原像攻击,即隐匿性:对一个给定的输出结果,不可逆推出输入。

·细微变化影响:任何输入端的细微变化都会对哈希函数的输出结果产生剧烈影响。

加密哈希函数对区块链的安全性和挖矿有巨大的作用。

2.数据结构

密码学中,有两种数据结构对于理解区块链非常重要:链表和哈希指针。

链表是依次按顺序连接而成的数据区块,如图1.1所示。图 1.1

链表中的每一个区块都通过指针指向另一个区块。

区块链本质上是一个链表,其中的每个新区块都包含一个哈希指针。指针指向前一区块及其含有的所有数据的哈希值。正因如此,区块链拥有了不可更改的重要特性。

那么,区块链是如何实现不可更改性的呢?

假设有人尝试篡改区块中的数据,我们先看加密哈希函数的第三条特性——“细微变化影响:任何输入端的细微变化都会对哈希函数的输出结果产生剧烈影响。”那么,即便有人尝试对1号区块里的数据进行细微的改写,也会使得存储在2号区块里的1号区块的哈希值产生巨大的变化,这将导致2号区块的哈希值发生变化,进而影响存储在3号区块的哈希值。3号影响4号,4号影响5号……最终整条区块链上的数据都会发生变化。这种通过冻结整条链条来修改数据的方式几乎是不可能做到的。因此,区块链被认定具有不可更改性。

每个区块都有自己的梅克尔根(Merkle Root)。如图1.2所示,如果每个区块里都包含多笔交易,将这些交易按线性存储,那么在所有交易中寻找一笔特定的交易会变得非常麻烦。这就是我们使用梅克尔树的原因。

如图1.3所示,在梅克尔树中,所有个体交易通过哈希算法都能向上追溯至同一个根,这会使搜索变得非常容易。因此,如果想要在区块里获取某一特定的数据,我们可以直接通过梅克尔树里的哈希值来进行搜索,而不用进行线性访问。图 1.2图 1.3

3.挖矿

哈希算法对挖掘新的加密区块至关重要,其工作原理是难度值的调整。一个被命名为“nonce”的随机字符串被添加到新区块的哈希值上,然后被再次哈希。接着,检验其是否低于已设定的难度值水平。如果低于,那么产生的新区块会被添加至链上,而负责挖矿的矿工就会获得奖励。如果没有低于,则矿工继续修改随机字符串“nouce”,直至低于难度值水平的值出现。

所以,没有密码学中的哈希算法,就没有加密货币的挖矿,哈希算法是区块链和加密经济学中一个至关重要的部分。1.1.2 密钥加密

密钥加密包括对称密钥加密和公开密钥加密。

对称密钥加密是密码学中的一种加密法。如果转换数据中的一个数字、字母或字符串随机字母,密钥便会以特定的方式变更数据里面的文字或字母,例如,更换字母相对位置(one变成neo)。只要寄件者与收件者知道秘密密钥,他们就可以加密和解密数据,并使用这个数据。

公开密钥加密,简称公钥密码学,又称非对称密钥密码学,是密码学中的另一种加密法。相对于对称密钥密码学,其最大的特点在于加密和解密使用不同的密钥。使用加密密钥加密后所获得的数据,只有用该用户的解密密钥才能够解密。如果知道了其中一个,并不能计算出另外一个。因此如果公开了其中一个密钥,并不会危及另外一个,公开的密钥为公钥,不公开的密钥为私钥。

在对称密钥密码学中,加密和解密使用相同的密钥,也许对不同的消息使用不同的密钥,但都面临密钥管理的难题。由于每对通信方都必须使用异于他组的密钥,当网络成员的数量增加时,密钥数量呈二次方增加。更尴尬的难题是:当双方不存在安全的通道时,如何创建一个共有的密钥以安全通信?如果有通道可以安全地创建密钥,为何不使用现有的通道?这真是个“鸡生蛋、蛋生鸡”的矛盾。1.1.3 数字签名

公开密钥密码学最显著的成就是实现了数字签名。数字签名是公开密钥基础建设(public key infrastructures,PKI),以及许多网络安全机制(SSL/TLS,虚拟专用网等)的基础。顾名思义,数字签名就是日常生活中普通签名的数字化,特性是他人可以轻易制造签名,却难以仿冒。数字签名可以永久地与被签署消息结合,无法自消息上移除。

数字签名大致包含两个算法:一个是签署,使用私密密钥处理消息或消息的散列值而产生签名;另一个是验证,使用公开密钥验证签名的真实性。RSA和DSA是两种最流行的数字签名机制。

想象一下,在现实生活中,我们为什么签名,签名的作用是什么,又有哪些特性?

·签名是可被验证的。要可以证明确实是你的笔迹。

·签名是不可伪造的。没有其他人能够伪造你的签名。

·签名是不可抵赖的。如果你使用自己的签名签署文件,那这个文件的有效性将无法收回,你也无法声称是他人代替你签的名。

但是,在现实生活中,无论签名有多复杂,都有被伪造的可能性。因为你无法通过简单的视觉辅助工具(如笔迹鉴定)来真正地验证签名的有效性,这样做既无效率也不可靠。

密码学给了我们一种通过公钥和私钥来解决问题的方案。让我们看看这两种密钥的工作原理和其对加密货币系统的促进作用。

假设有两个人,A和B。A想要给B发送一些非常重要的数据,而B想要鉴别这些数据确实来自于A,他们可以通过使用A的公钥和私钥来实现这一目标。正如其名,公钥指公开的密钥,可以被任何人获取。而私钥是个人拥有的密钥,不可以与他人分享。并且,通过某人的私钥来确定其公钥也是不可行的。

再回到A给B发送数据的话题,他们要使用密钥来交换信息,具体该如何操作呢?

假设A想把信息M发送出去,A有一把私钥K1和一把公钥K2。那么,当他把信息发送给B时,他会用私钥将该条信息加密,于是信息变成了K1(M)。当B收到这条信息时,他可以使用A的公钥来取回信息—K2K1(M),于是便得到了原始信息M。

综上所述,A有一条信息M,当他用私钥K1对其进行加密之后,得到加密信息K1(M)。B随后使用A的公钥K2来解密这条加密信息K2K1(M),从而得到原始信息M。

通过图1.4可以更直观地看到上述过程:图 1.4

让我们联系日常生活中的签名来重新审视密码学里的数字签名特性。

·可验证性:如果加密信息能够用Al的公钥进行解密,那就可以100%确定是A发送了该条信息。

·不可伪造性:如果有其他人C拦截了该条信息,并用自己的私钥发送了一条自己的信息,那么A的公钥将无法对其解密,因为A的公钥只能用来解密A用自己的私钥加密过的信息。

·不可抵赖性:同样,如果A宣称,“我没有发送信息,是C发的”,但B却能够用A的公钥来解密信息,那就证明A在撒谎。如此,A就无法收回他之前发出的信息,无法抵赖。1.2 经济学基础

经济学是个非常庞杂的概念,本书只叙述与加密货币、区块链相关的一些经济学理论。

区块链与其他去中心化点对点系统的区别在于,它给用户提供了金融和经济激励去完成某项工作。和其他牢固的经济系统一样,我们需要通过激励和奖赏的方式让人们去完成工作。同样,如果矿工行为不道德或者不尽职,那就要对矿工采取惩罚措施。1.2.1 激励

区块链用到了以下两种激励组合。

·第一种激励组合:代币+特权。

代币:加密货币作为奖励分配给那些活跃度高,且为区块链做出贡献的参与者。

特权:参与者可以获得决策权,这将给予他们收取租金的权利。例如,挖出新区块的矿工可以成为新区块的临时决策者,他们将短暂地成为新区块的独裁者,并有权决定将哪些交易添加至该区块。他们可以对收录在区块内的所有交易收取手续费。

·第二种激励组合:奖励+惩罚。

奖励:好的参与者可以获得货币奖励,或因尽职而得到决策权。

惩罚:不好的参与者必须支付货币罚款,或因作恶而丧失权利。1.2.2 惩罚

就像其他任何一个有效的经济系统一样,加密货币中也存在正向激励和负向激励。想象如图1.5所示的收益矩阵,其中参与者的收益很高,则其对社会的影响度也非常高。图 1.5

假设有A和B两个人,他们都将要犯罪。现在,根据收益矩阵,当他们犯罪时,他们的收益都很高。因此他们可能都会选择去犯罪,虽然这在逻辑上是说得通的,但会带来非常恶劣的社会影响。如果世界上所有人都被个人贪婪所驱动,那么世界将变得非常可怕。所以,人类应该如何应对所有人选择作恶的情况呢?答案是引入惩罚机制。

假设我们有一个系统,每当有-0.5个公共设施从公众手里被取走,就要相应的对任何犯罪的人记录-5个的惩罚。那么,将惩罚因子加入上面的收益矩阵中,再观察图1.6的变化。图 1.6

如图所示,收益发生了巨大变化,不犯罪才是最佳策略。现在,惩罚的代价是高昂的,但是社会毕竟损失了0.5个公共设施。这样就会出现所有人都不作为的情况,那是什么激励着社会上所有人都参与进来呢?答案是,将惩罚作为针对每个人的强制措施,即任何一个没有参与的人也会被惩罚。比如说,用税收供养的警力,警察可以惩罚罪犯,但公共设施的损失会以税收的形式从公众手里取走。任何参与但没有付税的人,都会被认作为是罪犯并受到惩罚。

在区块链世界里,任何不遵守规则并且非法开采的矿工都会受到惩罚,他们会被剥夺特权和承受被社会排斥的风险。一旦权益证明被采用后,这种惩罚会变得更加严厉。通过使用简单的博弈论和惩罚系统,矿工们就能保持诚信。1.2.3 供求

在这样的激励和惩罚措施下,加密货币如何实现价值呢?加密货币和普通货币拥有价值的原因大体上是一样的,即基于信任。当人们信任某一种商品并赋予其价值时,它就成为一种通货。这就是起初法币和黄金有价值的原因。因此,当某个给定的商品拥有一个给定的价值时,价值就会随着供求关系而发生改变,供求关系是经济学中最古老的规则。

什么是供求关系?

图1.7所示就是供需曲线,也是经济学中最常见的一张图表,从图中可以看到,商品的需求与供应呈反比关系。两条曲线的交汇处是均衡点,那么,让我们用这个逻辑来观察一下加密货币,比如说比特币。图 1.7

比特币的发行总量固定在2100万枚,这是所有比特币的市值。由于总量是固定的,那么当涉及比特币的供应时,有几件事必须要考虑清楚。首先,需要制定一些规则来使比特币的挖矿变得逐渐困难。否则,矿工们将会肆意挖矿,把剩余的比特币全部开采出来,并投放至市场,从而降低整体价值。

为了确保矿工们不会马上把所有剩余的比特币都开采出来,我们需要采用如下手段:

首先,每隔10分钟将一个新的区块添加至链上,每添加一个区块可以获得25枚比特币作为奖励。时间间隔必须是固定的,以确保矿工们不会无规则地在链上持续添加区块。其次,比特币协议要求难度值必须不断地提高。如先前所说,在挖矿过程中,区块的哈希值及其nonce值需要低于某个特定的数值。该数值被称为“难度水平”,通常以数个0作为开头。当难度提高时,0的数量也在增加。有了以上两种方式,挖矿过程变得十分专业,且投入巨大。整个过程确保可以核实市场上所有比特币的供应量,这也同样适用于其他基于工作量证明机制的加密货币。  第2章 共识机制

2018年2月24日,比特币社区的某发言人在Twitter上发表公开信,呼吁社区修改共识机制。消息一出,引起轩然大波。很多比特币爱好者言辞犀利,称该发言人根本不懂比特币,要求他退位让贤。

为什么提议修改共识机制,会引发整个币圈的激烈讨论呢?让我们先来了解下什么是共识机制。“共识”二字,想必大家并不陌生。不同的群体能够一起共事,一定是因为有着共同的认知。那么,在区块链的世界里,这个共识具体指什么?为什么要有共识?

提起区块链,大家就会想到“去中心化”这个特征。换种说法,也就是去中介化。我们现在的社会结构存在着银行、淘宝、视频网站等各种第三方中介机构。举个例子,在淘宝购物时,淘宝会根据我们的购物习惯给我们推荐商品,让你忍不住想“剁手”。那么,我们可以跟淘宝商量一下别偷窥我的购物习惯,别给我推荐购物清单吗?不可以。因为淘宝是一个中心化的机构,规则由它制定,无须跟你达成共识。

但是在区块链的世界里,没有中介,规则大家说了算。任何规则的制定、更改等都需要大家一起达成共同认识。但正所谓众口难调,公说公有理,婆说婆有理,因此达成共识是一件很困难的事情。

我们再以淘宝为例。购物时,我付了钱,卖家就要发货,如果卖家耍赖,淘宝只要查看我的购物记录就可以监督卖家赶紧给我发货。一旦没有了淘宝这个中介机构,谁来充当裁判的角色呢?我说我付钱了,并找来我的朋友作证;对方说我没付钱,也找来一群朋友作证。一旦出现这种情况,我到底是付钱了,还是没付钱呢?

因此,必须要有一套可行的方法来达成统一意见,这个方法就叫作共识机制,又称共识算法。2.1 拜占庭将军问题

1982年,美国计算机科学家莱斯利·兰伯特(Leslie Lamport)提出了拜占庭将军问题。

假设在中世纪时期,拜占庭帝国的10个将军要去围攻一座城池。但这座城池高墙耸立,固若金汤,只有同时发起攻击才能成功攻破。也就是说,10位将军要么同时进攻,要么同时撤退,放弃攻击计划。这需要10位将军坐到一起商讨,但是他们分别位于不同的方位,无法聚集到一起。所以必须有位大臣在中间做传声筒,将每个将军的投票传出去,这10位将军根据投票结果再做出决定。

如果10位将军都诚实守信,问题就简单了。一旦其中有人是叛徒,问题就复杂了。

假设有4个将军投票进攻,4个投票撤退,剩下2个是叛徒。这2个叛徒一边告诉决定进攻的将军他们会进攻,一边告诉决定撤退的将军他们会撤退,就会导致行动无法统一,每一个将军都要小心行事,不能轻易信任他人。

这就是著名的拜占庭将军问题。

10位将军处于不同的方位,构成了一个分布式网络。每个将军又地位平等,怎么保证在没有任何权威又不能互相信任的情况下,就进攻或撤退达成共识呢?

这个问题在提出数十年间,一直得不到解决。

到了1999年,美国计算机科学家卡斯特罗(Miguel Castro)和利斯科夫(Barbara Liskov)提出了一种解决方案—Practical Byzantine Fault-tolerant Algorithm(PBFT),拜占庭容错。所谓“容错”,就是允许一个分布式网络中存在坏人。PBFT算法的核心计算公式为:N≥3F+1。其中,N表示分布式系统中的总节点,F为有问题节点的最大数量。比如,在拜占庭将军问题中,共10个将军,N=10,F=3,也就是说只要叛徒人数小于总人数的三分之一,就有达成共识的方法。

具体解决方案如下。

1.口头传播

将军派人把自己进攻或撤退的信息传播出去,其他9个将军接收到他的消息,也派人分别转告给其他几个将军。这样一来,每个将军都是信息的转达者,手上都会收到10个信息(进攻或者撤退)。即便有叛徒,只要有一半以上的人说进攻,那么采取进攻行动就是能成功的。但是,在这种口头传播的方式下,每个将军都并不会告知消息的上一个来源是谁,也就是消息不可追根溯源,出现信息不一致也很难找到叛徒是谁。

2.书面协议

这10个将军,每人写封信给其他9个人。假设将军1写“进攻”,并在原信上签字。收到信的其他将军可以验证这确实是将军1的签名。将军2决定也进攻,就在将军1的信件内容上附上自己的投票,写上“进攻”,也签上自己的名字。将军3如果也同意进攻,就也在原信上附上“进攻”,并签名。

当这封信件上附有6个将军的进攻签名时,就达成一致意见——进攻。

相对于口头协议,书面协议可以查找到信息源,都有哪些将军签署了进攻。如果统一行动时,签署了进攻的将军选择了撤退,那他就是叛徒,会在撤退的时候被处死。

但是这种书面协议也存在一个问题:如何保证一个时间点只有一个将军在信后附上了自己的内容。也就是说,将军1的信在送出去之后,将军2~10中只能有1个将军在后面附上自己的签名,然后再传递给下一个将军。

在现实生活中,一个分布式网络中可不止10个节点。如何设计一个共识机制让大量的节点有序地“签名”呢?

要设计这样一种共识机制,我们必须要遵守分布式网络的基本设计原则—CAP理论。2.2 CAP理论“鱼,我所欲也,熊掌亦我所欲也;二者不可得兼,舍鱼而取熊掌者也。”

这是孟子的一句名言,道出了我们在生活中常常要面临的取舍难题。在分布式系统中,CAP理论就是系统设计师们绕不过去的“鱼和熊掌”。

CAP理论是著名计算机科学家埃里克·艾伦·布鲁尔(Eric Allen Brewer)在20世纪90年代末提出的。具体指的是在一个分布式系统中,Consistency(一致性)、Availability(可用性)和Partition Tolerance(分区容错性)三者不可得兼。CAP理论主张任何基于网络的数据共享系统,都最多只能拥有以下三条中的两条。

数据一致性(C):所有节点访问同一份最新的数据副本,即任何时刻,所有的应用程序都能访问到相同的数据。

服务可用性(A):健康节点在时限内响应客户端的读写请求,不会一直等待。

能容忍网络分区(P):所谓分区就是系统不能在通信时限内达成数据一致性。这种情况一旦发生,必须就当前操作在C和A之间做出选择,保证在集群中某些节点失联的情况下,集群仍可继续服务。

我们可以用一张图(见图2.1)更好地表示三者的关系。图 2.1

如图所示,要满足CP,网络分区的情况下为了达成C,请求只能一直等待,结果无法实现A;如果要满足CA,时限内要达到节点状态一致,要求不能出现网络分区,则不能满足P。要满足AP,分隔的节点同时对外服务但不能相互通信,将导致状态不一致,不能满足C。

但事实上,没有哪个分布式系统可以避免网络故障(P)。因此,系统架构师们往往要在满足CP和AP之间做出选择。

在这一理论的限制下,2008年,比特币的开发者中本聪提出了拜占庭将军问题的终极解决方案—Proof-of-Work(PoW)工作量证明机制。2.3 PoW(工作量证明)机制

比特币或者其背后的底层技术区块链,就是一个公开的账本,记录比特币网络的实时交易记录。这个账本需要不断更新数据,如何保证账本数据准确?又如何保证全网都只认可这一个账本呢?

我们假设全网共10台电脑,每10分钟就要更新一次账本,那么要以谁的账本为准呢?中本聪给出的答案是每次更新都只听一个人的。听谁的呢?谁完成了工作量就听谁的。这就是PoW(Proof-of-Work,工作量证明)机制。这里的工作量具体指挖矿,即利用电脑算力去解答一个复杂的数学难题。哪个矿工先解决出来,就完成了“工作量”,获得账本的记账权。这个矿工更新账本后,网络上其他人再进行同步更新。(注意:如果有两个矿工同时完成了工作量,那么就比谁的网速好,谁先传播出去,谁就获得记账权。)

为什么有人愿意去完成工作量,维护比特币账本的一致性呢?

答案就在中本聪的白皮书中:“参与挖矿的矿工可以获得比特币奖励。”每个记账权代表50个比特币的奖励,这一数字每四年减半。2009~2012年为50个;2013~2016年为25个;2017~2021年为12.5个。正是这套经济激励政策让更多的矿工参与进来,不断更新账本,共同维护比特币网络的稳定。

中本聪设计PoW的核心理念在于:你可以当叛徒,可以作恶,可以造假账本破坏整个网络的稳定,但是你必须承担相应的代价。在PoW机制下,一个人必须要完成整个网络50%以上的工作量,才能对网络发起进攻,这个成本十分巨大。还不如老实遵守规则,赚点比特币。

比特币诞生10年间,随着网络节点数目的不断增加,发起攻击的成本越来越大,PoW机制已被证实安全可靠。但是,为了保持账本的一致性(CAP理论中的C)和网络分区(P)情况下有节点掉线等问题出现时系统依旧可以运作,比特币网络在一定程度上牺牲了可用性(A),也有人称这一问题是Latency,即延迟问题。网络一般要等上10分钟,有足够多交易被确认后才能更新账本。如果比特币要做到AP,客户端要在一笔交易添加到区块链上时就尽快接受这笔交易,这样就不用依赖其他节点,从而实现了可用性。但是这样做存在这样一种风险:剩下的节点可能会拒绝这笔交易,从而牺牲了一致性。

除此之外,很多人认为货币最重要的就是安全。他们认为PoW机制下,需要大量的工作量来破解数学难题,才能保证比特币的安全,这是一种浪费行为。这里我们来讲述一下社区经常讨论到的PoW机制的三大问题。2.3.1 PoW问题1:浪费资源

冰岛,一度被誉为“挖矿者的天堂”。这里气温寒冷,电脑服务器可以自然冷却;再加上地热和水力发电厂的可再生能源充足,使得电价较低,因而吸引了来自世界各地的比特币挖矿企业。

2018年2月中旬,多家海外媒体相继报道称,2018年冰岛挖矿的用电量将超过这个国家34万人口的家庭用电总和。一周后,Elite Fixtures网站公布了一份最新的比特币挖矿成本调查报告。结果显示要挖出一枚比特币,一台蚂蚁S9矿机平均用电量是17 773千瓦,S7用电量是45 889千瓦,阿瓦隆6的用电量是55 294千瓦。很多媒体并不理解比特币挖矿是怎么一回事,但是要追踪热点,就以挖矿的耗电量为入口,用上“震惊!”“可怕!”等类似字眼来强调挖矿耗电量巨大。

作为比特币矿机生产行业的龙头老大,比特大陆未曾就耗电问题公开表态过。2018年年初,我同经济学家布尔费墨谈到了挖矿问题。针对挖矿耗电是否可以定义为浪费行为,布老师的回答简单又犀利:“自己花钱买的电,自己消费掉。这就是普通的消费行为,怎么会是浪费?”

加密货币市场市值排名第二的以太坊也同样采用的是PoW机制。但是以太坊的创始人V神(Vitalik Buterin)也希望能修改共识机制。我在咨询他原因时,他回答道:“我个人觉得PoW白白浪费了能源,对环境也有不好的影响。现在挖比特币的耗电量相当于整个新加坡的用电量了。以太坊的耗电量目前都达到了新加坡总用电量的30%。”

有关浪费电的问题,我将经济学家的观点转告给V神。他是这样反驳的:“站在社会的角度上,的确是浪费行为。但站在矿工的立场上,他们不觉得是在浪费电。”

事实上,如果把普通的消费行为上升到社会这一层面,那问题似乎更复杂了。2.3.2 PoW问题2:环保问题

2017年12月,CNNMoney网站报道有专家表示,比特币挖矿耗费大量能源,可能会对环境带来损害。比如,气象学家埃里克·霍索斯(Eric Holthaus)认为比特币挖矿降低了石化燃料过渡至再生能源的速度,最终耗电量会超过可用的电力供应量。环保人士也不甘示弱,担心比特币挖矿会严重损害全球对抗气候变迁的努力。

2018年1月,瑞士信贷银行在其最新报告中称,“比特币挖矿行业的扩张并不会触发环境末日”。该报告指出,线性地看待挖矿电力消耗是不对的,因为这一行业也会研发硬件并且进行一系列实践以提高能源利用率,这样才能更具竞争优势。

当然,污染环境的说法可以为行业提供新的商机,目前已经有公司开始研究绿色挖矿。

2017年12月,我收到一封来自美国的邮件。某家传统公司称他们在研究绿色挖矿,并要求我把中国矿机生产商的联系方式给他们,以寻求潜在商业合作。我去他们的官网查看了一番,并没有发现他们涉及挖矿业务,便拒绝了对方的请求。2018年2月,我看到有网站在报道一家比特币ATM生产商也在进军绿色挖矿行业,这家公司称,“仅利用可再生能源就可以挖矿,并且不会降低矿机性能”。在谷歌上搜索“green bitcoin mining”更是可以发现,很多公司纷纷表示可以提供绿色挖矿解决方案,还有公司表示研制出了用太阳能供电的矿机。

这些绿色挖矿方案的成本都要高于传统水电或火电的成本。因此,即使存在绿色挖矿的可能性,矿工依旧会保持现状。2.3.3 PoW问题3:算力中心化

比特币诞生10年间,经历过数百次“被死亡”。抛开外界因素,真正能让比特币死亡的只有内因。比特币头上一直悬着一把“达摩克利斯之剑”,那就是“51%算力攻击”。这里,我们可以把算力理解成工作量。换句话说,谁完成了全网50%以上的工作量,谁就可以拥有独裁的权力,决定比特币交易流向、制定新规则、达成新的共识。如图2.2所示,现在单是比特大陆一家就占有全网40%以上的算力。

我曾私下跟朋友调侃称比特大陆是西方世界无法理解的“一股来自东方的神秘力量”。这股神秘力量是怎么崛起的呢?

2012年8月,中国科技大学天才少年蒋信予(网名烤猫)在深圳成立公司,宣布制造ASIC矿机的计划,并通过一个“虚拟IPO”项目在线筹款,按照0.1比特币一股的价格,发行了16万股,购买股票者可以分红。得知这一消息,比特大陆CEO吴忌寒倾其所有购买了15000股烤猫公司的虚拟股票。这之后发生了两件事情,让吴忌寒意识到自己拥有比特币挖矿技术的重要性。图 2.2(注:Antpool和BTC.com均为比特大陆旗下矿池,该算力分布日期为2018年3月8日)

2012年12月,烤猫公司给吴忌寒打电话称,用于挖矿的ASIC芯片出了一点问题。后来问题顺利解决,才让吴忌寒松了一口气。

2013年4月,吴忌寒花了几百万元预订阿瓦隆矿机,到了发货日期,对方却推迟了发货。要知道,矿机没有及时派上用场,又遇到全网算力大涨,结果是灾难性的。

有了这两次几乎要倾家荡产的经历后,吴忌寒于2013年5月成立了比特大陆公司。同年5月下旬,央视《经济半小时》首次报道比特币新闻,吸引了大批投资者入场,催生了巨大的矿机市场。两个月后,比特币矿机出现了百花争鸣的局面:鸽子矿机、TMR矿机、比特儿矿机、兰德矿局、小蜜蜂矿机、花园矿机、Smart矿机等。

在激烈的竞争中,吴忌寒的技术合伙人詹克团在公司成立不到6个月的时间里,就自主研发出了第一代蚂蚁矿机S1,其同等算力的耗能是之前矿机的一半。一年后,在2015年年初,詹克团研发推出第五代蚂蚁矿机S5,一举奠定了比特大陆在挖矿市场上的霸主地位。蚂蚁矿机更新迭代的速度之快让人震惊,成了名副其实的后起之秀。

其实,细数中国矿机生产商早年的发展史,会发现同当下的ICO热潮有着极其相似之处,也曾出现跳票(延期发货)、跑路、非法集资等种种乱象,考验着从业者的诚信。Viabtc的创始人杨海坡曾经感叹道:“跟比特大陆同时期的矿机生产商有很多,但后来都倒闭了。矿机生产制造需要采购、供应链、物流等各个环节的协调。比特大陆的成功表明吴忌寒是一名优秀的公司掌舵人。”

2018年2月24日,美国财经网站CBNC援引分析公司Bernstein的说法,称比特大陆2017年的收益高达30亿~40亿美元,与英伟达去年的收益相当。Bernstein分析师在报告中表示:“比特大陆在短短4年内就实现了这一目标,而英伟达则花了24年才实现这一目标。”一时间,《比特大陆狂赚30亿美元,或赶超英伟达》的报道霸占了国内外各种传统媒体、区块链媒体的头条。这篇文章引发了社区对矿机行业是否存在暴利问题进行讨论,并分成了立场鲜明的两派。一派咬定比特大陆垄断矿机市场,试图控制比特币;一派拥护比特大陆,强调这是市场竞争的结果。

国内知名的区块链知识服务者黄世亮(公众号闪电HSL)认为:“矿机价格越贵越好,价格越贵越能说明吴忌寒对这一行的贡献大。”但是他也承认比特大陆现在是矿机行业的“独角兽”。分析公司Berstein估计,比特大陆在比特币矿机和ASICS芯片市场中占有70%~80%的份额。

正因如此,社区呼吁修改共识算法,希望更多的矿机生产商参与进来,打破比特大陆一家独大的局面。

单是修改共识算法,就可以打败这只“独角兽”吗?

币印矿池的联合创始人朱砝认为比特币改算法是个坑:“第一,如果BTC不用SHA256(哈希算法),那SHA256算力马上会全部涌向同算法的其他币,如BCH、SBTC。结果,坑了BTC持有者。第二,改算法之后,基本还是比特大陆率先做出新算法矿机。BTC矿工必须要重新买矿机,结果,坑了矿工。第三,如果采用ASIC不友好算法,比如门罗和以太坊的类似算法,那又会导致社区资源和价值溢出到其他币种,如门罗和以太。结果,坑了BTC持有者。”

以太坊创始人V神也在Twitter上建议:“如果改算法的目的是防止矿工控制比特币,那么至少要升级为PoW+PoS的混合机制才能实现这一目标。”

这种PoW+PoS的混合共识机制,并不是V神最先提出的。早在2012年,化名为Sunny King的极客人发明的PeerCoin(点点币)即率先采用了PoS机制来维护网络安全。2.4 PoS(权益证明)机制

PoS(Proof-of-Stake)是权益证明机制。Stake表示权益,即利益相关,每个持币者都是利益相关者。在PoW机制下,达成共识的方式是谁完成了工作量就听谁的。而在PoS机制下,达成共识的方式是谁的币多就听谁的。后者显然比前者达成共识的效率高,并且能节约大量电力。

正因如此,以太坊也计划从PoW机制转换为PoW+PoS的混合机制。

就这一层面而言,只看谁的币多的PoS机制面临的监管风险更低。但是,也有人质疑PoS机制下只会诞生中心化的货币。这就好比公司做决策时,哪个股东的股权多,最终决定权就掌握在谁手里。这样如何吸引更多的新人参与进来呢?

V神表示,其实PoW一样存在对新用户吸引力不足的问题。他说:“2009~2013年间,用户只需一台电脑就可以在家挖矿了,但现在情况已经变了。我相信现在2/3的矿机都是比特大陆生产的,全是ASIC,所以普通人挖矿的成本已经大大提高了。目前还没有挖以太坊的ASIC矿机,但是很快就会有了。所以到时候以太坊也会面临同样的问题。”他补充道:“新用户可以先买少量的币,从学习使用DApps应用开始(比如CryptoKitties游戏)。”

这种回答似乎并没有什么说服力。以太坊上可以开放养猫游戏,比特币链上一样可以开发应用。这样一来,就吸引新用户而言到底谁比较有优势呢?

上文我们提到过比特大陆创造的财富神话—2017年收益30亿~40亿美元,4年走完了英伟达24年的历程。我相信在巨额财富的吸引下,很多人对这一行业都是跃跃欲试的。日本互联网巨头GMO正在研究7纳米的挖矿芯片,韩国电子领域龙头企业三星也在生产ASIC芯片,并且为中国的挖矿公司提供产品。

因此,当讨论比特大陆的垄断问题时,我们不要忽视了市场是不断在演进的这个事实,而且这条演进的道路是向上的。而PoS机制下,存在这条向上的通道吗?

在经济学领域有这样一个理论:资源诅咒。意思是说丰富的自然资源可能是经济发展的诅咒,而不是祝福,即丰裕的资源对一些国家的经济增长并不是充分的有利条件,反而是一种限制。在PoS机制下,无论市场如何演进,持币大户只要想办法守住自己的币,就可以获得更多的奖励。这条向上演进的道路是个死胡同,强者愈强,弱者愈弱。这种会导致强中心化的共识方案,似乎与区块链去中心化的特性相违背。

为了解决这种强中心化的问题,有人提出了另外两种解决方案—LPoS和DPoS。2.5 LPoS(租赁权益证明)机制

正如同在PoW机制下,算力少的矿工没办法竞争得过算力大的矿工来获得记账权一样,PoS机制下,持币数少的用户无法同持币大户竞争记账权,因此他们缺少动力去运行网络节点。这就意味着整个网络只有由少数大玩家来维护。只有网络节点越多,越多人参与进来,网络才能更加安全,因此有必要激励小玩家参与进来。LPoS(Leased Proof-of-Stake,租赁权益证明)机制的做法是,允许小玩家把自己的币出租给其他节点,增加这个节点在网络中的权重。如果这个节点获得了记账权,那么获得的收益将按照一定比例分享给原持币者。2.6 DPoS(委托权益证明)机制

DPoS(Delegated-Proof-of-Stake,委托权益证明)机制,又称委托人机制。DPoS是在PoS的基础上多了一个条件—Delegated(委托)。能够获得记账权的人是社区投票选出来的,而且是轮流制。这类似于人大代表制度,我们投票表决,推选出能够代表社区整体利益的人,而且如果这个代表表现不给力(如没有按时记账),我们还可以换掉他。相对于PoS机制,DPoS的中心化程度降低了。

其实,所有的数学程序都是对现实世界的模拟,而这种代表选举机制,是现在被证明运行最好的机制。我们可以把选举出的代表看成“精英”,把这种机制看成精英代理制度。

不管是PoW、PoS、LPoS,还是DPoS,谁干的活多,谁的币多,谁能成为代表,是不是某种程度上就证明了他比别人优秀呢?是不是他过去一定完成了特定的“工作量”,所以取得了今天的成就呢?我们可以单纯地把各种共识机制看成市面上的一种产品。存在即合理,被采用即有市场。最重要的是:好好发展自家产品,不去恶意中伤别人。

过去几年来,社区在不断演进中催生了诸多共识机制。尤其是各种ICO项目创造性地发明了各式各样的共识机制。不管哪种共识机制,只要能催生需求,让更多的人参与进来,就是有价值的机制。我们欢迎各种共识机制相互竞争,让市场决定优胜者。

读者也可以发挥想象力设计出一系列新的共识机制,如:“proof-of-reputation”,谁口碑好听谁的;“proof-of-花呗”,谁的花呗额度高听谁的。  第3章 优化版的共识机制3.1 PoW的优化版

我们都知道,比特币的PoW使用的是SHA256算法,最初个人还能通过CPU参与挖矿,但是当比特大陆、阿瓦隆等芯片厂商研发了ASIC芯片之后,挖矿就不是个人可以做的事情了。后来随着显卡挖矿以及矿池的出现,社区开始担心矿池会导致算力集中,违背中本聪“一CPU一票”的最初设计理念。在那段时间,中心化的焦虑非常严重,比特币社区讨论非常激烈,论坛里比特币一次又一次地“被死亡”,直到现在,针对矿池是否违背去中心化原则的争论仍在继续。3.1.1 莱特币的SCRYPT算法

有人将原因指向了SHA256算法,认为矿机和矿池的出现是算法太容易导致的,于是试图寻找更优的算法。

恰逢其时,基于SCRYPT算法的莱特币(Litecoin)横空出世。与SHA256算法相比,SCRYPT对硬件要求更高,占用更多的内存,耗费更长的计算时间,并行计算异常困难。很显然,SCRYPT算法具有更强的抵御矿机性。此外,莱特币还将区块时间改为2.5分钟。在那个山寨币还是凤毛麟角的年代,莱特币依靠这两点创新大获成功,长期稳坐山寨币第一宝座位置。

后来有人在SCRYPT算法的基础上稍作修改形成SCRYPT-N算法,改进思路一样,都是追求更大的内存消耗和计算时间,以有效阻止ASIC专用矿机。

很快,莱特币的成功催生了各种各样的算法创新。在2012~2014年间,算法创新一直都是社区讨论的热门话题,每一个使用创新算法的币种出现,都能掀起一阵波澜。3.1.2 串联算法与达世币

在人类惯常使用的发明创新的方法中,重新排列组合算是最常用的了。在增加内存消耗和增长计算时间的思路之外,有人开始思考:能不能使用多种哈希算法,而不仅仅使用单一的某种算法?

于是在2013年7月,夸克币(Quark)发布了,其首创使用多轮哈希算法。听起来很高端,但实际上很简单,就是对输入数据连续做9轮哈希运算,前一轮运算的结果作为后一轮运算的输入。这9轮哈希运算使用的6种加密算法为BLAKE、BMW、GROESTL、JH、KECCAK和SKEIN,它们都是公认安全的哈希算法,并且早已存在现成的实现代码。

这种多轮哈希的方式一出现就给人造成直观上很安全、很强大的感觉,追捧者无数。

达世币(DASH,前身是暗黑币(Darkcoin))在此基础上再进行微创新,使用了BLAKE、BMW、GROESTL、JH、KECCAK、SKEIN、LUFFA、CUBEHASH、SHAVITE、SIMD、ECHO这11种加密算法,名曰X11。再后来有人开发出来了X13、X15系列。

这类算法实际是一种串联思路,其弊端是只要其中一种算法被破解,整个算法就被破解了。好比一根链条,环环相扣,只要其中一环断裂,整个链条就一分为二。3.1.3 并联算法与Heavycoin

有了串联,就自然会想到并联,Heavycoin(HVC)率先做了尝试。虽然如今它在国内名不见经传,但是它首次实现了链上游戏,可谓名噪一时。

HVC算法细节:

1)输入数据,进行一次HEFTY1哈希运算,得到结果d1。

2)以d1为输入,再依次进行SHA256、KECCAK512、GROESTL512、BLAKE512运算,分别获得输出d2、d3、d4和d5。

3)最后分别提取d2~d5的前64位,混淆后形成最终的256位哈希结果,作为区块ID。

为什么要先进行一轮HEFTY1哈希运算呢?因为HEFTY1运算极其困难,其抵御矿机性能远超于SCRYPT。但与SCRYPT一样,安全性没有得到某个官方机构的论证,于是加入后面四种安全性已得到公认的算法来增强安全性。

我们来对比一下串联和并联的方法(如图3.1所示)。串联的方法如Quark、X11、X13等,虽然使用了多种哈希函数,但只是将多种哈希函数串联起来,并没有提高整体的抗碰撞性,其中安全性更是由其安全最弱的算法决定,任何一种哈希函数遭遇碰撞性攻击,都会危及货币系统的安全性。图 3.1(图片来源于CSDN的区块链核心技术演进之路——算法演进)

再来看看并联算法HVC,它从SHA256、KECCAK512、GROESTL512、BLAKE512算法中分别提取64位,经过融合、混淆得到最后的结果,其中一种算法被破解只会危及其中64位,四种算法同时被破解才会危及货币系统的安全性。

比特币只使用了一种哈希算法,试想未来某天SHA256被证明不再安全时,虽然可以更改算法,但届时引发的动荡却不可避免。倘若使用并联算法,则可以争取平静的硬分叉过渡时间。3.1.4 素数币

当一部分人如火如荼地探索算法,另一部分人指责PoW浪费能源时,PoS机制已经实现。支持PoW的人虽极力维护,但也不得不承认PoW确实耗费能源。这一事实导致了另一条探索之路,即如果能找到一种算法,既能维护区块链安全,又能在其他方面产生价值,那就更完美了。

在这条探索之路上最振奋人心的成果是素数币(Primecoin)。它是由Sunny King(化名)发明的,其之前还开发了点点币(Peercoin)。素数币算法的核心理念是:在做哈希运算的同时寻找大素数。为什么要寻找素数呢?因为素数在数轴上稀有且分布不规律,在数轴上寻找素数只能盲目地搜索、探测,这正是PoW的特征。

PoW还有另一个要求是容易验证,这方面人类经过几百年探索已经获得一些成果。素数币使用两种方法测试,首先进行费马测试(Fermat Test),若通过则再进行欧拉-拉格朗日-立夫习兹测试(Euler-Lagrange-Lifchitz Test),如果两种测试都通过则可被视为素数。需要指出的是,这种方法不能保证通过测试的数百分之百是素数,不过这并不影响系统运行,即便测试结果错误,只要每个节点都认为是素数也行。

素数币其实找的是坎氏素数链。

存在三个特定类型的坎氏素数链:第一类坎氏链、第二类坎氏链和双坎氏链。

什么是坎氏素数链?举第一类坎氏链来说明。

素数链中每个数都是前一个数的两倍减一,比如:

1531,3061,6121,12241,24481

数列的下一个数48961(24481×2-1)不是素数,因而这个坎氏链的长度是5,素数币的目标就是探索更长的坎氏链(以上三类都可以)。

那么,现在最重要的问题来了,如何用坎氏链来验证一个区块是否合格呢?

我们先来看看素数币的实现细节。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载