04 June 2018

前言


这是一篇面向比特币现金初学者的教程,力求用通俗的语言让初学者看懂BCH的交易。

由于理念不同,比特币(BTC)在20178月分裂成了Bitcoin CashBCH)和Bitcoin CoreBCE)两条链,其中BCE占用了BTC的名字,但由于本人潜意识中认定比特币现金更符合比特币最初的定义(一种点对点的电子现金),所以下文中如果出现“比特币”字样一律指代BCH,特此说明。

本文首发于bch.club,转载请著名作者。

本人才疏学浅,如果有什么纰漏,欢迎指正。

第一章. 区块


首先打开以下链接:https://bch.btc.com/block?date=2018-06-03   可以看到一个列表:


fullsizeoutput_74a.jpeg


列表中每一行记录的就是一个BCH的“区块”,BCH的区块平均每10分钟生成一个,每个区块包含这10分钟内全球所有的BCH交易,也就是说把这10分钟内的所有交易打了一个包存了下来,所有这些区块形成一个链条,就成了“区块链”。能够查看区块链信息的网站通常叫做“区块链浏览器”,BCH的区块链只有一个,但区块链浏览器有很多,比如 bch.btc.com explorer.bitcoin.comwww.viabtc.com 等。


⚠️Tips

我这里说的“10分钟”其实不是一个精确的时间,而是一个平均出块儿时间,可能快一点也可能慢一点。交易一旦被打包进一个区块,几乎就无法再篡改了。

BCH在全球有很多个“节点”,每个节点都维护着一条完整的区块链数据,这些节点之间是平等的,没有哪个是中心,部分节点下线也不影响BCH网络整体运行,这就是所谓的分布式、去中心化。


下面介绍一下区块列表中每一列的含义:


  • 高度:每个区块有一个唯一的ID号,称为区块高度,每产生一个新区块,区块高度+1,第0号区块称为创世区块,是2009-01-04 02:15:05诞生的,比特币的创世区块的信息可以在这里查看:https://bch.btc.com/block/0


  • 播报方:代表这个区块是哪个矿池产生的,区块的产生是全球所有矿机竞争的结果,矿机又分别连接不同的矿池,可想象成同一时刻所有矿机各自解同一道算数题,这道题的答案不是那么好找,需要花费很长时间计算,哪台矿机先找到答案,哪台就能获得一次特权:交易打包权也就是生成一个新的区块。

    矿机越多(准确说是算力越大)的矿池找到问题答案的几率也就越大。当然,打包交易生成新区块这件事要消耗很多能量,没有人会白干,除非有极大的好处,这就要提到比特币的奖励机制:每打包一个区块比特币网络自动产生一些新的比特币奖励给打包区块者,区块中每笔交易也会产生少量的交易手续费奖励给打包区块者,这些奖励将由矿池中所有矿机(按照算力)平分,这一过程和现实世界中的挖金矿很像,所以被形象的称为“挖矿”。。

    矿工-矿机-矿场-矿池 四者之间的关系可能是这样的:


fullsizeoutput_74b.jpeg


  • 数量:一个区块打包了多少笔交易,也就是上一个区块生成到当前区块生成这段时间内,全网有多少笔交易,交易量是个很重要的指标,客观地说,BCH的交易量和BCE比起来还是非常小的。


  • 大小:就是区块的大小,打包的交易越多,区块越大,目前BCH的区块大小上限是32M,相当于每秒能处理100笔交易,现在BCH一个区块只有几十、一百多KB,远远没有达到上限。而BCE的区块大小只有1M,每秒只能处理3-4笔交易,BCE的交易量却是BCH10倍,所以经常导致交易拥堵,矿池会优先打包手续费给的多的交易,用户想要优先打包自己的交易(意味着交易获得公认)必须支付更高的手续费。

    BCE的交易量之所以比BCH大,很大程度上是因为BCE是在“软分叉”的基础上诞生的,从而延续了“比特币”这个名号,其实BCE对比特币底层的改动极大(可以搜索“隔离见证”),可以说完全抛弃了中本聪最初的愿景,Core(BCE核心开发者)及其背后的利益集团锁死主链,目的是把用户赶到不成熟又难用的二层网络(闪电网络)上。只不过大众都是盲从的,很多人只认比特币,根本搞不清BCH和BCE的本质区别,但大众也不是傻子,会盲从一时不会盲从一世,等到BCE主链持续拥堵到不可用时自然会被大众抛弃,这也是为什么一群有识之士要分裂出比特币现金的原因 — 给比特币留下一枚火种。这方面不展开讲了,感兴趣的自行搜索比特币扩容之争。

  • 平均交易费:BCH的平均交易手续费,BCH的手续费是非常低的,甚至只需人民币3分钱都可以打包进块,由于一些钱包对BCH支持的不好,默认的手续费还设的高了,导致用户多花了不必要的钱,还提高了BCH交易费整体平均值。目前BCE每笔交易手续费大概在2块多钱,在17年牛市末期BCE网络严重拥堵时,甚至达到一笔转账1万块钱手续费的疯狂程度,相比之下BCH不拥堵、手续费低的优势尤为明显,这也导致很多应用都从BCE转到了BCH上。


  • 块收益:每块矿工获得的BCH奖励(包括新生成的BCH和打包的每笔交易的手续费)。最初比特币每挖出一个区块有50BTC奖励,每四年减半,经过两次减半,目前每个区块产生12.5BCH的奖励,下次减半大概在20204月发生,那时一个区块只有6.25BCH的奖励。

    为什么同一个矿池的矿机要平分奖励?因为比特币网络挖矿难度非常大(做一个非常复杂的运算),从概率上讲,单凭一台矿机的算力可能100年也挖不出一个区块,所以需要大家一起协作,分摊风险,不管谁挖出一个新块,大家都一起平分奖励,这些聚在一起挖矿的矿机就形成了矿池(注意矿池并不须要物理上聚在一起,只要连接相同的服务器即可,物理上聚在一起的叫矿场)。


  • 时间:矿池记录的出块时间,可以看到每个块儿的间隔时间都不一样,但平均下来应该是10分钟一个块儿。这里主要是BCH的动态难度调整算法发挥作用,当算力增长过快时,算法自动提高挖矿难度,算力下降时,减少挖矿难度,以保证平均10分钟一个块儿,不过到底什么时候出块儿,还有一定的运气成分,运气好可能连续爆块儿,运气不好40分钟出不来一个块儿。


现在点击高度为533125的这个区块,看一下会显示些什么 https://bch.btc.com/block/533125


首先是这个区块的一些摘要信息:


Pasted Graphic 4.png


这里重点提一下“确认数”,交易第一次被打包进区块链时,记为得到1次确认,在此之后,比特币网络每增加一个区块就是对这笔交易增加一次确认,通常认为在达到6次确认以后这笔交易被永久的写入了区块链,六次确认平均需要10分钟*6=1小时左右。

比特币网络设计的极为巧妙,导致作恶成本高昂得不偿失,所以很多交易所在交易获得1次确认时就认为交易真实有效,在一些小额支付场景,0确认都是非常安全的,这方面如果想进一步了解,可以搜索51%攻击相关知识。

其他一些字段在上面已经介绍过了,另一些字段涉及一些更专业的知识(比如Nonce),感兴趣可以自行研究。


下一章将介绍一下BCH的交易。


第二部分:跟我一步一步看懂比特币现金(BCH)的交易(2)