【刘教链比特币原理】9-1 区块头和默克尔树
付费合集文章前言:无
本节课我们开始学习第九章“轻量账本压缩百倍 快速支付不到十秒”的第一小节“区块头和默克尔树”。
本章目录:
第九章 轻量账本压缩百倍 快速支付不到十秒
第1节 区块头和默克尔树
第2节 简化支付验证 第3节 快速支付
本节音频:
【音频】
学习笔记:
前面我们学过,比特币的交易记录在区块上,区块就是账本,但是如果我们把所有的交易就像我们传统的流水账一样罗列在账本上,会造成账本数据量越来越大,存储、处理起来越来越困难。所以中本聪借鉴了一个称之为默克尔树的结构,把交易作为树叶挂在树枝的末端,然后逐层计算哈希值,最后得到一个树根的哈希值,称之为默克尔根(merkle root)。只要固定默克尔根,所有的树叶,也就是交易,就被固定了,不可篡改。
这样,我们的区块链本身只需要用工作量证明把时间戳、默克尔根等少量数据进行固定,这被称之为区块头(block header)。区块头完全不包含具体的交易数据,这样它的尺寸就大为减小了。直至今天,十几年的比特币区块链的区块头数据,都可以完全放到内存里进行快速的检索查询。
我们可以设计出一种轻量级节点,采用简化支付验证SPV技术。它不需要像全节点那样保存全量的区块链数据,而只需要下载区块头数据,这样就可以进行支付验证。这种节点也被称为轻钱包,可以放在手机这样的移动设备上运行。
另外一个问题就是关于快速支付。普遍存在的一个误解是,比特币的区块时间间隔是10分钟,然后又有所谓6个区块确认,所以一笔交易需要至少等待1个小时才能确认。这样的话,比特币就完全不适合于日常支付的场景,比如去咖啡店买咖啡,或者在自动售卖机买东西。这种理解是完全错误的。宣扬这种错误观念的人要么是自己根本就没搞懂,要么就是别有用心的。
首先,比特币的确认是没有最终性的。即使是6个区块,也不过是双花概率降到足够低的一个经验值而已,具体中本聪在比特币白皮书中都有详细计算。如果双花概率本就很低,那么是不需要等那么多区块的。随着比特币全网算力的强大,很多交易所已经把充币确认区块数降低到了3个区块。
其次,对于很多微支付的场景,根本不需要等待区块确认。对于买咖啡或者买零食,没有谁会吃饱了撑的为了几十块钱去动用强大的算力和电能去逆转比特币区块链搞双花攻击,所以商家只需要架设一台全节点服务器作为watch tower,并要求用户关闭RBF,这样只要watch tower收到用户付款,就可以立即交付商品,而不需要等待交易被写入区块链。这时候比的就是交易扩散的速度,是否会以足够快的速度扩散到全网。中本聪在早年有关零食售卖机的帖子里有讨论。
中本聪说,实际上,这种解决方案非常好,实际欺诈概率比接受信用卡付款的欺诈率还要低。
有个网友叫BM的,死活不信中本聪,非要和中本聪来回来去的掰扯、较劲。搞的中本聪很郁闷,最后怼了这家伙一句:“如果你不理解或者不相信我说的,那么我也没有时间说服你,抱歉。”成了业内脍炙人口的经典名句。这个BM,就是后来EOS的创始人Bytemaster,真名Dan Larimer。他不服气中本聪,所以一直在牺牲去中心化以提高所谓性能的道路上蒙眼狂奔。
所有的因果,早已经在历史中冥冥注定。
课外资料:
以下是第九章“轻量账本压缩百倍 快速支付不到十秒”的补充学习材料,请在本章3节课学习过程中使用。
- 中本聪《比特币白皮书》第7小节“回收磁盘空间”以及第11小节“简化支付验证” https://mp.weixin.qq.com/s/7R-THHIoTZfmAFSsQwdcZg (比特币白皮书中文版(刘教链译本)) https://mp.weixin.qq.com/s/U_qkDkAud0Hg4wyWeKAdZw (比特币白皮书英文原版)
- 默克尔树(Merkle Tree)在线演示工具:https://prathamudeshmukh.github.io/merkle-tree-demo/ (英文)
- 【扩展阅读】《精通比特币》第9章“区块链”第9.7节“Merkle Tree”以及第9.8节“SPV”:https://www.8btc.com/books/834/masterbitcoin2cn/_book/ch09.html (中文)
课后作业:
以下是第九章“轻量账本压缩百倍 快速支付不到十秒”的作业。请学完本章之后尝试一下,并把你的答案发到学习群进行分享,和其他学友一起进步。
- 使用默克尔树(Merkle Tree)在线演示工具,输入“刘教链比特币原理”作为数据,点击“Construct Tree”按钮构建默克尔树。请问默克尔树根的哈希值是什么?(把这棵树截图和大家分享一下吧!)
- 请问在比特币区块链上块高度为30万的区块(区块哈希是000000000000000082ccf8f1557c5d40b21edabb18d2d691cfbf87118bac7254)所包含的默克尔树根(Merkle Root)的值是什么?
- 选择题:有一位朋友向你兜售一种新型的数字货币,他说,比特币具备的全部优良特性(比如彻底的、完全的去中心化)这个新币都具备,同时该新币具有大大超越比特币的性能,主要是交易速度特别高,可以高达每秒钟几万、几十万甚至上百万笔交易(他用了一个你听不太懂的三字母缩写“TPS”),而且他告诉你为该新币站台的专家团包含了诺贝尔奖得主、美国知名教授、以及经常在媒体上露面的资本大咖,现在抓紧购买,上市后一定大涨。请问你的这位朋友是哪种角色的可能性更大:(A)好人;(B)专家;(C)傻子;(D)骗子。
(公众号/同名推特:刘教链。知识星球:公众号回复“星球”) (免责声明:本文内容均不构成任何投资建议。加密货币为极高风险品种,有随时归零的风险,请谨慎参与,自我负责。)