石墨烯技术(Graphene blockchain library)是一种区块链底层技术架构,由Cryptonomex公司开发, 采用C++语言编写。而Dan Larimer就是Cryptonomex的创始人。他创建的Bitshares、Steem和EOS都是基于石墨烯架构的项目,基于此架构开发的区块链项目还包括YOYOW,公信宝,DECENT等。 我们说的EOS的DPoS共识、高度模块化等特点其实都是石墨烯架构包含的内容,凡是基于石墨烯技术的项目都具有通用的特性,比如较快的转账速度、较高的交易吞吐量以及稳定、功能强大等。不同的项目基于石墨烯架构则会总不同的修改和开发,例如EOS基于DPoS共识增加了BFT容错算法,手续费改成了免费等。
0.比特币 —— 区块链思想诞生的摇篮 之所以看得更远,是因为站在了巨人的肩膀上。 作为区块链思想诞生的源头,比特币项目值得区块链技术爱好者们仔细研究。 比特币网络是首个得到大规模部署的区块链技术应用,并且是首个得到实践检验的数字货币实现,无论在信息技术历史还是在金融学历史上都具有十分重要的意义。比特币项目在诞生和发展过程中,借鉴了来自数字货币、密码学、博弈论、分布式系统、控制论等多个领域的技术成果,可谓博采众家之长于一身。 虽然后来的区块链技术应用已经远超越了数字货币的范畴,但探索比特币项目的发展历程和设计思路,对于深刻理解区块链技术的来龙去脉有着重要的价值。 本文将介绍比特币项目的来源、核心原理设计、相关的工具,以及关键的技术话题。 1.比特币项目简介 图 比特币项目 比特币(BitCoin,BTC)是基于区块链技术的一种数字货币实现;比特币网络是历史上首个经过大规模长时间检验的数字货币系统。 自 2009 年正式上线以来,比特币价格经历了数次的震荡,目前每枚比特币市场价格超过 2500 美金。比特币网络中总区块数接近 48 万个。 比特币网络在功能上具有如下特点: 去中心化:意味着没有任何独立个体可以对网络中交易进行破坏,任何交易请求都需要大多数参与者的共识; 匿名性:比特币网络中账户地址是匿名的,无法从交易信息关联到具体的个体,但这也意味着很难进行审计; 通胀预防:比特币的发行需要通过挖矿计算来进行,发行量每四年减半,总量上限为 2100 万枚,无法被超发。 下图来自 blockchain.info 网站,可以看到比特币字诞生以来的汇率(以美元为单位)变化历史。 图 1.9.1.2 – 比特币汇率历史 比特币大事记 2008 年 11 月 1 日 19:16:33,中本聪在 metzdowd 的加密技术邮件列表发布比特币白皮书:《Bitcoin: A Peer-to-Peer Electronic Cash System》(《比特币:一种点对点的电子现金系统》)。 2009 年 1 月 3 日 18:15:05,中本聪在位于芬兰赫尔辛基(Helsinki)的一个小型服务器上挖出了第一批 50 个比特币,并记录下当天泰晤士报的头版标题:“The Times 03/Jan/2009 Chancellor on brink of second bailout for banks(财政大臣考虑再次紧急援助银行危机)”。第一个区块被称为创世区块或初始区块(Genesis Block),可以通过 https://blockchain.info/block-index/14849 查看其详细内容。 2010 年 5 月 21 日,第一次比特币交易:佛罗里达程序员 Laszlo Hanyecz 用 1 万 BTC 购买了价值 25 美元的披萨优惠券。这是比特币的首个兑换汇率:1: 0.0025 美金。这些比特币在今日价值超过 8000 万美金。 2010 年 7 月 17 日,第一个比特币交易平台成立。 2011 年 4 月,首个有官方正式记载的版本 0.3.21 发布,支持普通用户参与到…
EOS在第一版白皮书中采用的是DPoS共识机制,在最新一版的白皮书中,其做了一些改进,现为BFT-DPoS共识机制。 DPoS(Delegated Proof of Stake),意思是授权权益证明共识机制。相比于比特币的PoW机制,DPoS不用浪费算力资源争夺记账权,其通过赋予EOS通证持有人投票权,选出21个“超级节点”来担任记账人的角色,保证整个网络的正常运行。21个超级节点轮流负责记账,每一个区块产生后,会按照顺序传递到下一个超级节点中,第二个超级节点要负责打包新的区块,同时确认上一区块的内容,当某一区块被超过2/3的超级节点确认后,该区块将被确认为不可逆区块。 BFT(Byzantine Fault Tolerance),意思是拜占庭容错算法,DPoS共识加上BFT算法后,验证时不再按照出块顺序由超级节点一个个验证区块内容,而是让出块节点成为主节点,出块后同时向剩下20个节点进行广播,并获得节点的验证反馈,如果有超过2/3的节点验证通过,则该区块成为不可逆区块。BFT可以使得EOS的区块确认速度显著增加。 目前采用BFT-DPoS共识机制的EOS,可以实现0.5秒的出块速度,1秒实现区块的不可逆转。为避免因出块速度过快而漏块,EOS的超级节点会按照其地理位置分布轮流成为主节点,尽可能减少超级节点间的网络延迟,同时规定每个超级节点连续生产6个块,至少保证6个区块中的前几个能确认完成,不会出现整个超级节点被跳过的现象。
\n \n \n \n零知识证明是指证明者能够在不向验证者提供信息本身内容的情况下,使验证者相信某个论断是真实可信的一种技术。目前匿名性非常突出的数字资产ZCash的匿名交易就是依靠“零知识证明”实现的。 \n \n举个例子,A要向B证明自己拥有某个房间的钥匙,假设该房间只能用钥匙打开锁,而其他任何方法都打不开。这时候,A可以选择把钥匙交给B,B用这把钥匙打开该房间的锁,从而证明A拥有该房间的正确的钥匙。 \n \n或者A自己用钥匙打开房间,从房间里拿出来一个物体出示给B,B知道这个物体确实只有房间里有。方法二的原理就是零知识证明。 \n \n零知识证明可以在不泄漏信息本身内容的情况下,证明我知道这个秘密,可以有效解决许多验证问题。
\n \n \n \n股份授权证明机制,简称DPoS,类似于董事会投票,持币者投出一定数量的节点,代理他们进行验证和记账。为了激励更多人参与竞选,系统会生成少量代币作为奖励。比特股、点点币等数字资产都采用该方式。DPoS有点像议会制度或人民代表大会制度。如果代表不能履行他们的职责,比如轮到他们记账时,他们没能完成则会被除名,网络会选出新的节点来取代他们。DPoS的每个客户端都有能力决定哪些节点可以被信任。相较PoW(工作量证明机制),DPoS大幅提高区块链处理数据的能力,甚至可以实现秒到账,同时也大幅降低维护区块链网络安全的费用,从而使数字资产的交易速度接近Visa等中心化结算系统。
\n \n \n \n权益证明机制(Proof of Stake),简称POS,也称股权证明机制,类似于把资产存在银行里,银行会通过你持有数字资产的数量和时间给你分配相应的收益。同理,采用PoS的数字资产,系统根据你的币龄给你分配相应的权益,币龄是你持币数量和时间的乘积。比如你持有100个币,总共持有了30天,那么,此时你的币龄就为3000。相较PoW(工作量证明机制),PoS存在2个优势。第一,PoS不会造成过多的电力浪费,因为PoS不需要靠比拼算力挖矿。第二,POS更难进行51%攻击。拥有51%币才能发起攻击,网络受到攻击却会造成自己利益受损,显然很不划算。目前,有很多数字资产用PoW发行新币,用PoS维护区块链网络安全。
\n \n \n \n工作量证明(Proof of Work,简称POW)是共识机制的一种,可简单理解为一份证明,证明你做过一定量的工作,即我通过查看工作结果就能知道你完成了指定量的工作。比特币挖矿采用的就是工作量证明机制,比特币网络通过调节计算难度,保证每次竞争记账都需要全网矿工计算约10分钟,才能算出一个满足条件的结果。该结果即“区块头”里包含的随机数。工作量证明是指,如果矿工找到了一个满足条件的结果,我们便可以认为全网矿工完成了指定难度系数的工作量。获得记账权的几率取决于矿工工作量占比全网的比例,如果占比30%,那么获得记账权的几率也是30%。所以提高工作量占比才能提高竞争力,才能获得更多新诞生的比特币!
\n \n \n \n在区块链系统当中,没有一个像银行一样的中心化记账机构,保证每一笔交易在所有记账节点上的一致性,即让全网达成共识至关重要。共识机制解决的就是这个问题。目前主要的共识机制有工作量证明机制PoW 和权益证明机PoS。PoW 通过评估你的工作量来决定你获得记账权的机率,工作量越大,就越有可能获得此次记账机会。PoS 通过评估你持有代币的数量和时长来决定你获得记账权的机率。这就类似于股票的分红制度,持有股权相对多的人能够获得更多的分红。DPOS与POS原理相似,只是选了一些“人大代表”。 与PoS的主要区别在于节点选举若干代理人,由代理人验证和记账。随着技术的发展,未来可能还会诞生更先进的共识机制。