第五章 比特币和以太坊
◇比特币
关于比特币
1.比特币是什么
(1)比特币出现的背景。2007年,“中本聪”提出:“我相信存在一种不依赖信用的货币,我无法阻止自己去思考它。”
2008年11月1日,一封不起眼的帖子出现在论坛的“密码学邮件组”里,帖子中直言:“我正在开发一种新的电子货币系统,采用完全点对点的形式,而且无须授信第三方的介入。”帖子署名是“中本聪”。
2009年1月3日,“中本聪”把自己的思考落地,在赫尔辛基的一个服务器上创建、编译、打包了第一份开源代码;当日18时15分,创建了比特币世界的第一个区块(Block),这一天被称为“创世日”,而该区块也被称为“创世块”。
(2)比特币解决了何种痛点?为什么要创建这么一个比特币呢?“中本聪”指出:我们非常需要这样一种电子支付系统,它基于密码学原理而不是基于信用。换句话说,比特币能够让交易不再需要中间机构,直接用密码学就能实现人和人之间流畅的交易。
也就是说,比特币其实是一个电子支付系统,是一个基于密码学原理而不是基于信用的数据库,不需要第三方中介。怎么实现的呢?就是通过多个电脑(节点)分布式存储所有的交易信息,形成一个去中心化的、完全公开透明的、不可篡改的账本。
2.比特币的工作原理
比特币是怎么实现去中心化、公开透明、不可篡改呢?我们看看它的工作原理:
(1)比特币记账与挖矿。传统的交易,除了线下可以直接一手交钱、一手交货,不需要第三方,而远距离不见面的交易则必须要一个中介机构。比如,在淘宝上买东西,就是把钱先交到支付宝平台,经过双方都确认后,支付宝再把钱打给另一方。转账也是这样。把钱打给一个金融机构,该机构把这笔钱打给需要交易的人,金融机构就是第三方。
比特币是怎样运行的呢?可以把比特币理解成一个软件,它在计算机上运行,核心功能就是维护一个账本。该账本与现实中账本的不同之处在于,所有的账本都是一样的。所有的交易都记在一个账本上,不会有人提出异议。
但是,谁来负责记账呢?“中本聪”使用了一个天才的方法把这个问题解决了,这个方法就是“挖矿”。挖矿的矿机就是一台能进行高速计算的电脑,每台装有相关软件的电脑都可以通过竞争的方法来记账;记账的过程就是把一批交易进行打包,形成一个区块,这些区块一个个首尾相接,就形成了区块链。
为了奖励这些为交易打包的行为,比特币会对记账的矿工进行奖励。另外,该区块里所有的交易手续费都归这个区块所有。记完账后,迅速地把这个消息通告到全网,还没完成记账的电脑,要放弃当前的记账工作,转而进入下一次竞争。也正是因为这个原因,很多人都说挖矿就是在消耗电能。其实,消耗电能是达成交易共识必须付出的代价,不消耗这些电能,就需要一个庞大的金融组织来运作,消耗会更大。
(2)这么多矿机,谁来负责记账呢?这就涉及一个概念——PoW(Proof of Work),也就是工作量证明。
矿工所做的工作其实就是为了产生一个随机的哈希值,这个值是Nounce,也就是随机数。该数的生成是一道算术题,只有将这个问题解出来,才能生成这个数字并添加进区块里,获得该区块的奖励和所有的交易手续费。
因为有奖励,想挖矿的电脑越多,算力就越大,所以挖矿的难度一直在增加。刚开始难度非常低,只要使用电脑CPU,就可以挖矿,获得奖励。后来有人发现,用显卡挖矿的效率比CPU高几百倍。比特币就采用这种方法,保证了人与人之间构建起安全的交易,不需要第三方也能建立起信任。
(3)记账有什么好处?可以把比特币网络看成一个大的账本,大约每10分钟出一页账单,账单上记录着这段时间网络的来往交易,一页账单叫一个“区块”,把所有的区块链接起来,就叫作“区块链”。那么,这个区块由谁来记录呢?矿工。
比特币网络中,哪个矿工拥有的算力最大,他就拥有该区块的记账权。矿工为什么要来帮比特币记账呢?因为矿工每记一个区块,就会获得该区块上的比特币奖励和手续费。由此,比特币把记账和币的发行联系起来,人人都有记账权,这就叫作“去中心化”。
比特币是在2009年出现的,当时矿工只要挖出一个区块,就能得到50个比特币的奖励,到2012年减半了一次,2016年再次减半,现在挖出一个区块的比特币奖励是12.5个。这也是比特币的供给增加机制,流通中新增的比特币都是这样诞生的。
每4年奖励减半,到2140年,矿工将得不到任何奖励,比特币的数量也将停止增加。这时,矿工的收益就完全依靠交易手续费了。所谓交易手续费就是矿工可以从每笔交易中抽成,具体的金额由支付方自愿决定。
目前,由于交易数量猛增,手续费已经水涨船高,一个区块2000多笔交易的手续费总额可以达到3~10个比特币。手续费太低,很可能过了一个星期,交易还没确认。一个区块奖励12.5个比特币,再加上手续费,收益就相当可观了。
3.比特币的创新与特性
(1)全球性。向地球另一端转账比特币,就像发送电子邮件一样简单,成本低,无任何限制。比特币也因此被用于跨境贸易、支付、汇款等领域。
(2)不可篡改。比特币的区块链账本具有不可篡改的特性,不会为了弄虚作假而对账本进行恶意修改。这套系统中有相应的机制来保证。
(3)去中心化。即非中心化,是比特币的一个重要特性。经过改革,由矿工组织记账就是“去中心化”的做法。
(4)匿名性。比特币之间的转账是匿名的,账户根本看不出属于哪个人,除非那个人曾公布过自己的比特币账户。
4.比特币的核心价值
比特币的核心价值是什么?
政治经济学是这样定义货币的:“货币的本质是一般等价物。”同时,还有一句话,金银天然是货币。为什么金银天然是货币呢?因为金银是稀缺的,人们愿意拿来作为等价物。
回到区块链的世界。比特币是第一个成功的区块链运用,核心价值就是共识。从技术进步角度来说,现在所谓的“第三代或第N代加密货币”,技术上应该远超比特币,为什么它们的价值还无法跟比特币相比?除了比特币首创的特性,还有以下几个原因:
(1)比特币足够简洁,除了货币属性,没有其他任何属性。
(2)比特币是创世货币,没有任何的ICO(首次币发行),拥有它的受众是足够分散的。
5.团队介绍,比特币的前世今生
其实,我们提到的“中本聪”,只是众多技术的一个集大成者。他虽然在2007年提出了“数字货币”的概念,但是早在20世纪30年代,加密货币的最初设想就已经出现了。
1982年,大卫·乔姆提出了“不可追踪的密码学网络支付系统”。
1991年,Stuart haber和Scott stornetta发表论文How To TimeStamp A Digital Document,提出“用时间戳确保数字文件安全的协议”,这也是区块链链条的雏形。同年,基于RSA公钥加密体系,菲尔·齐默尔开发了一个邮件加密系统PGP,能够保证邮件内容不被篡改。
1997年,亚当·拜克发明了一种哈希现金算法机制,而在的《比特币白皮书》中,哈希算法就被“中本聪”用来解决了零信任基础的共识问题。
1998年,戴维提出了匿名的、分布式的电子加密货币系统B-money。在比特币的官网上,B-money被认为是比特币的精神先导。
比特币的诞生其实是20多年密码和数字技术的积累和不断演进的结果。
创建比特币账户
对于比特币的交易用户,客户端会自动为他们生成钱包,类似于在银行开户,用户也需要一个账户密码来保护自己的数字资产。如此,专属密钥也就成了使用钱包中比特币的必要条件。而用户的密钥不同于银行卡密码,短小精悍,方便记忆。密钥对是经过特殊处理的长串随机数列,很难记忆,为了保证其安全性和隐匿性,通常会将密钥存储在数字钱包中。
1.密钥对
比特币是一种数字资产,并不存在实体,网络通过密钥、比特币地址和数字签名等来确认比特币的所有权;用户通过客户端或钱包,自动生成密钥文件,存储在本地,密钥为自己独有,不用进行区块链的网络连接。数字签名证明了交易的有效性,交易只有携带有效的数字签名,才能让存储在区块链中的密钥对成为比特币地址和数字签名的基础。
比特币钱包可以包含一系列密钥对,一个密钥对包含私钥和公钥。其中,私钥是系统生成的随机数,可以用来产生支付时的数字名;公钥是私钥使用椭圆曲线算法产生的,主要用于接收比特币。公钥是公开的,不会对用户钱包的安全性造成影响。用户必须对私钥进行保密储存,还要对私钥文件进行多重备份。私钥一旦丢失,就很难复原,所有的比特币也会跟着一起消失。
2.比特币地址
人们可以根据E-mail地址互相发送邮件,通过对应的密码,读取邮件内容。比特币网络中的交易是根据比特币地址发送比特币,拥有某个比特币地址的私钥,就能获得该比特币地址中的比特币。
比特币地址是由数字和字母组成的字符串,公钥通过一系列哈希算法和编码算法生成比特币地址,可以简单地将比特币地址理解为公钥的摘要表示。
公钥产生地址,主要利用了单向哈希算法,不具备可逆性,地址不能反推出公址,钱包则能针对不同的交易产生不同的地址,从而保证账户的安全性。为了提高地址的可读性和鲁棒性(即健壮性和强壮性),公钥哈希还会经过Base58Chek编码生成最终的比特币地址。
3.数字钱包
私钥是随机产生的毫无规律的随机数,仅凭用户大脑记忆,很容易产生私钥错误或遗忘,因此在具体使用过程中,钱包不仅能生成密钥对和地址,还能帮助用户存储他们钱包中可以存储的多个私钥。但是,钱包客户端可能也会出现数据丢失或其他遗失私钥的可能,因此,如何安全方便地生成、保存和备份是判断钱包性能好坏的关键。
为了完善这些因素,数字钱包共经历了3个阶段:非确定性(随机)钱包、确定性(种子)钱包和分层确定性钱包。私钥之间没有任何联系,只要出现新的私钥,用户就能重新将所有私钥文件再备份一遍,每次备份后都要再次导入,工作重复且烦琐,无法获得良好的用户体验。
为了方便用户操作,解决经常性备份的问题,出现了确定性(种子)钱包。在种子钱包中,所有私钥都是通过公钥的种子文件生成的,种子能够回收所有已经产生的私钥,用户只要备份种子,就能完成对所有私钥的备份。如果想更换钱包,只要将种子文件导入即可。
对比确定性钱包,二者的共同之处就在于:二者的所有私钥都是通过一个公共种子文件生成的,但父密钥可以衍生一系列子密钥(例如,私钥1、私钥2、私钥3……),各子密钥又可以衍生出一系列孙密钥(例如,私钥2-1、私钥2-2、私钥2-3……),以此类推。
比如,在企业环境中,不同职能部门可以被分配使用不同分支的密钥,也可以用一个特定的分支子密钥来接收交易收入,用另一个分支的子密钥来支付花费。另外,在不安全的环境下进行交易,分层确定性钱包保证了在不同的交易中能够发行不同的公钥,而不需要访问对应的私钥,保证了账户的安全。
4.比特币的账户安全
从本质上来说,比特币就是区块链上的一串字符,记录了比特币诞生以来的所有交易。
区块链属于分散结构,用户只能通过公开地址知道密钥。从一定意义上来说,只要掌握了密钥,就能在地址中拥有相应的比特币资产。
区块链的防篡改功能,是指比特币交易记录不能被篡改。正是因为区块链不能被篡改,密钥一旦丢失,仅修改区块链记录是无法取回比特币的。在比特币被盗的背后,一些交易平台也发生了被盗的情况,但是恶意交易平台毕竟是少数,更多的盗窃案源于黑客行为,因此交易平台需要加强系统安全防护。
比特币的扩容方案
比特币刚出现的时候,“中本聪”并没有特意限制区块的大小,在自身数据结构的控制下,它们最大可以达到32MB。当时,平均被打包的区块大小为1K~2KB。有人认为,区块链上限过高容易造成计算资源的浪费,还容易发生DDOS攻击。因此,为了保证比特币系统的安全和稳定,“中本聪”决定临时将区块大小限制在1MB。
如果每笔交易占250B,平均每10分钟产生1个区块,比特币网络理论上每秒最多可以处理7笔交易。那时,比特币的用户数量少,交易量也很小,该交易速度并不会造成区块链网络的拥堵。直到2013年后半年,比特币价格才直线飙升,用户体量越来越大,比特币网络拥堵、交易费用上升等问题才逐渐涌现。
现在,比特币区块链上最高时有上万笔交易积压,平均交易费用较2010年9月上涨了300多倍,每秒只能处理7笔交易,无法满足用户需求,扩容问题也就成了比特币社区议论的热点。
1.什么是扩容
各区块的大小约有1MB,可容纳的交易信息最多只有1000多条。如果比特币的网络转账次数很多,很多交易就无法在第一个发生的区块被打包和确认,如此就需要再等几个区块或更长的时间。如今,比特币网络的正常转账量已经远超自身承受力,而要想扩大比特币区块的容量,突破现有1MB大小的限制,就要扩容。
比特币网络是“去中心化”的,所有事情的进行都要依赖社区的协商。对于扩容,各团队的理念都不同,推进效率也比较低。比如,2015年年底,比特币矿开发团队和矿工召开了圆桌会议,彼此达成共识,但很快流产;2017年,纽约比特币社区再一次通过协商达成共识,从2017年上半年开始,比特币系统正式实现升级和部署。
2.为何需要扩容
2009年比特币刚出现在人们视野的时候,“中本聪”并没有对区块的大小进行限制,借助自身的数据结构,最大可以达到32MB。可是,区块链上限太高,不仅会浪费掉大量的计算资源,还容易受到DDOS攻击(Distributed Denial of Service Attack”的简称,即分布式拒绝服务攻击)。因此,为了保证比特币系统的安全性和稳定性,“中本聪”便临时将区块大小限制在1MB。也就是说,如果每笔交易占250B,平均每10分钟就会产生1个区块。当时,比特币的用户数不多,交易量也很小,按照这种交易速度,区块链网络很顺畅,不会造成拥堵。
2013年下半年,比特币价格直线上升,用户体量逐渐加大,比特币网络开始出现拥堵,交易费用也迅速提高。发展到今天,最高时会出现数万笔交易的积压,平均交易费用比2010年上涨了300多倍,每秒只能处理7笔交易,用户需求无法得到满足,扩容也就成了比特币亟待解决的问题。
3.扩容的主要分类
概括起来,扩容可以分为如下几类:
4.扩容方案
为了解决比特币的网络拥堵问题,可以采用以下三种扩容方案:
(1)隔离见证。把交易记录和签名信息隔离开来,通过隔离见证,可实现技术性扩容,但要想真正实现,需要花费很大的人力和物力。在设计新规则时进行一定的妥协,不仅能提高区块空间的应用率,还能在区块链中接收并存储实际见证的数据。
(2)区块扩容。这种方案直接导致的结果就是社区被分裂,区块内存被扩大,增加了打包的交易数量和总手续费;缺点是,降低了传播效率,提高了全网的孤块率和空块率。
(3)闪电网络。如果所有参与方都在线、大额交易的成功率较低、比特币的“去中心化”特性被削弱,就能采取这种扩容方案。这种方案,支付速度可以用毫秒来计算,交易费用较低,适合小额交易。
区块链和比特币的关系
从本质上来说,区块链就是一种分布式账本,其最大特点是“去中心化”,可以解决信任问题。区块链的“去中心化”特性,依赖于用多人协作的方式记录信息,做到“全网认证”,确保信息透明公正、无法轻易被篡改。因此,区块链可以被成功地运用于证据存证、信息共享、高效协作等领域,具体包括版权保护、产品溯源、投票、政务等。比如,IVoter便是一款“区块链+投票”的工具,由明星公链平台TT链提供技术支持,实现了投票数据可公开验证且无法被篡改。
比特币是一种点对点(P2P)虚拟的加密数字货币,不是由特定的货币机构发行的,而是由特定的算法经过大量的计算生成的。这种加密数字货币数量众多,TT链的TT币就是其中一种。比特币转账或交易跟网银类似,只需要钱包地址(网银账号)和私钥(网银密码)即可进行。
区块链技术应用领域非常广泛,比特币是区块链第一个,也是最成功的应用。如果说区块链技术是水,比特币就是水里的一种鱼;如果区块链是森林,比特币就是森林里的一棵树。因此,比特币不是区块链,区块链也不是比特币或其他数字货币。正确区分这两者,有利于正确认识区块链技术的商业应用,谨慎看待币圈数字货币投资。