今天是《肚财神成长故事365》陪伴您的第12天,每晚20:08,我们不见不散。
今天我们正式一起来了解区块链。
比特币的诞生标志着区块链正式开始了自己的江湖,所以学习区块链一定要先从了解比特币开始。
image2013-2014年作者 Andreas M. Antonopoulos写出了《精通比特币》第一版,比特币基金会的Gavin Andresen也给予这本书以极高的评价:
“论及比特币,有人问我它到底是怎样工作的?现在我有了一个极好的答案——《精通比特币》这本书会让每位读者深刻理解比特币的工作原理,还会帮助读者为写出下一代神奇加密货币的应用程序做好充分准备。”
《精通比特币》第一版的中文版于2015年被翻译出来;第二版的中文版于2017年11月出版,从中可以看出中文对区块链的信息跟踪是非常及时的了。
我在今年上半年读完了《精通比特币》(第二版)第一遍,对比特币的认识加深了很多,在此基础上,这次我对比着第一版和第二版来进行第二次精读。
比特币真容
在开始之前,我们先来看看这个创世块的真容吧,这是创世区块的地址:
下面就是这个创世区块的真容:
image简单解释一下创世区块(BLOCK#0)里面的内容(以后会有更详细的介绍):
每个区块都分为3个部分:
第1部分:summary(基本情况)
- Number Of Transcations 是交易数量,因为是第一个交易,所以它的值是1
- Output Total 输出数量,是一笔奖励50BTC
- Estimated Transaction Volume 是输入值,因为是第一笔,所以没有其他的输入。
- Transction Fees 是交易的手续费,刚开始的交易没有人用,所以都是不需要手续费的
- Height 区块在主链(Main Chain)中的高度,因为是创世区块,所以为0
- Timestamp 这个区块创建的时间,是2009年1月3日18时15分5秒
- Received Time 是收到的时间,时间也是2009年1月3日18时15分5秒
- Relayed By 中继,未知
- Difficluty 难度,代表挖矿的难度值,后面会讲到,数值为1
- Bits 位数
- Size 表示区块的大小,是0.285kB
- Weight 未知?
- Version 表示交易数据结构的版本号
- Nouce 是矿工在区块头上添加的哈希值数据,后面会讲到
- Block Reward 是这个区块奖励的数量,第一笔是50BTC
第2部分 Hashes(哈希值)
- Hash 是这个区块的哈希值(哈希是一种算法,把数据变成一串数字代码),是这个区块的唯一编号
- Previous Block 是这个区块前面一个区块的哈希散列值,因为前面没有,所有全是0
- Next Block 是这个区块下一个区块的哈希值
- Merckle Root 是默克尔根,这是一种二叉树的计算方法,通过Merckle Tree,将区块头与区块体(大量交易)连接(之后有详细介绍)
第3部分 Transctions (交易详情)
是这个区块所记录的全部的交易情况,每一笔交易都包含交易的时间、输入地址、输出地址、交易的数量等信息。因为这一笔交易没有输入,所以Input为0,而交易的数量是系统奖励的50个BTC。
以上这些就是一笔比特币交易的全部信息。你看,比特币也不是那么复杂嘛!
下面,我们将逐渐揭秘比特币到底神秘在哪里,我们先从中本聪的《比特币白皮书》开始了解。如果要想了解区块链,比特币白皮书是必读的。
比特币白皮书
比特币白皮书全名是《比特币白皮书:一种点对点的电子现金系统》,也是必读资料,这个论文非常简洁,一共有12章。先简洁的把这个过程介绍一下,以后我们还会详细介绍:
1.比特币解决的痛点
比特币到底是个什么东西呢?中本聪是这样定义的:
是一种完全通过点对点技术实现的电子现金系统,它使得在线支付能够直接由一方发起并支付给另外一方,中间不需要通过任何的金融机构。
为什么要创建这么一个比特币呢?中本聪指出:我们非常需要这样一种电子支付系统,它基于密码学原理而不是基于信用。
换句话说,比特币是为了让基于第三方金融机构的交易“退位”,通过密码学和网络技术让人和人之间的交易能够更为流畅。
传统的交易有下面这些缺点:
- 交易成本高。金融机构的雇员、场地、工资等等等等。
- 有最小的金额限制。人民币最小是1分钱,而比特币的最小单位是1聪,也就是一亿分之一个比特币。这让极小的行为也可以交易,比如微信的一个点赞动作,你用10分1秒扫一眼广告,都能够被衡量,被交易。
- 很多行为是可逆的。有时会有欺骗行为发生,你说打款了,实际却没有打,这没有办法验证。而在区块链世界里面,任何一个动作都被记录下来,并除非双方同意第三方仲裁,否则,它就是不可逆的。
2.比特币交易的原理
中本聪把一枚电子货币定义为一串数字签名:每一位所有者通过对前一次交易和下一位拥有者的公钥签署一个哈希散列的数字签名,并把这个签名附加在这枚电子货币的末尾,电子货币就发送给了下一位所有者。
用一张图来表示就是这样的:
image看不懂没关系,看完下面就明白了。
3.挖矿和记账
怎么解决这笔钱只被交易了一次呢?这就有一个概念——挖矿。
传统的交易,除了线下我们可以直接一手交钱、一手交货,不需要第三方,远距离不见面的交易我们必须要一个中介机构。比如我们在淘宝上买东西,就是通过支付宝,我们把钱提交到支付宝里面,双方都确认之后,然后支付宝再把钱打给到另外一方。我们转账也是这样,我们把钱打给一个金融机构,这个机构把这笔钱打给我们需要交易的人,金融机构就是这个第三方。
而比特币直接通过技术实现了中介的作用,这也是为什么我们说比特币是通过密码技术解决了信任的问题。
它是怎么实现的呢?这里就牵扯到一个记账的概念——也就是我们经常听到的挖矿。挖矿的矿机其实是能进行高哈希计算的电脑,很多台电脑通过竞争的方法对一批交易进行打包,形成一个区块,这些区块一个个首尾相接,就形成了区块链。
为了奖励这些为交易打包的行为,比特币为这笔交易奖励12.5个比特币,另外还有这个区块里面所有交易的手续费。
所以,很多人说挖矿就是在消费电能,这其实是天大的误解,消耗的电能只是为达成交易共识所必须付出的代价而已,如果不消耗这些电能,就需要那些坐在办公室里的庞大的金融组织来实现,你说哪个消耗更大呢?为了维持这个共识,矿机所产生的价值要远远大于电能的消耗。
4.谁来记账?
这么多矿机,谁来负责记账呢?这就要提到一个概念——POW(Proof of Work),也就是工作量证明。
很多矿工同时在挖矿(计算),在挖矿控工7090一台一台的机器最刚开始的时候,每一台电脑CPU都可以参与挖矿。
前面提到矿工在竞争为比特币记账的权力,它们是比特币系统运转的一个非常重要的力量,他们所做的工作其实就是用来产生一个随机的哈希值,在第一部分我们讲到,你可以返回去看看,这个值是nounce,也就是随机数。
这个数的生成是一道算术题目,谁把这个问题解出来了,就由谁来生成这个数字并添加进这个区块头里面,它也就能获得这个区块的奖励和所有的交易手续费。
中本聪用这种巧夺天工的方法保证了交易的顺利进行。因为算力的提高越来越快,所以难度一直在增加,刚开始的时候,难度非常低,每个人用电脑CPU都可以挖矿,获得奖励,后来有人发现,用显卡挖矿的效率比cpu高几百倍(发现这个秘密的人,就是那个传说中的用1万个比特币买了一张披萨的工程师)。
现在随着专业矿机的发展越来越快,个人的CPU或显卡,如果按照概率来算,十几年可能也挖不到一个区块了。
前面我们提到挖矿的难度是1(你可以翻回去看看那张图),那么现在的难度是多少呢?
image我们可以看一看现在的难度,这个是我写文章时最新的一个区块,高度是#508376(你可以通过浏览器https://blockchain.info,非常快捷的获取这些数据)。我们看到最新的难度值是2,874,674,234,415.94。大家可以看到,现在的难度系数比2009年增加了两万亿倍,你说你还挖的到吗?
华山论剑
一日白描
1.读《精通比特币》,110分钟。
2.肚财神成长故事写作,用时60分钟。
日更第11天,投入时间约170分钟。总计投入时间29小时00分钟。
下一步
1.重读《精通比特币》,部署比特币全节点。
肚财神更多内容推荐阅读:
image我是肚财神 ,马拉松跑者,一级拆书家,持续践行者,不喧嚣,不固执,不盲从,做人生的智者。欢迎交流,期待和你一起成长。
网友评论