小白也能精通比特币(全网最牛)
小白也能精通比特币(全网最牛)
2008年,中本聪发布比特币白皮书,十三年已去,为什么我还要谈比特币和区块链?因为直至今天,即使是圈内人,也极少能说清楚什么是比特币、什么是区块链。政治局早将区块链技术列为核心技术,作为国家战略,为何又强势禁止数字货币交易和挖矿?数字货币和区块链的关系是什么?区块链如何与和我们的生活产生关联?明白这些问题,才算真正入门了区块链。
当前Defi、链游、NFT等区块链应用如星火燎原,只有清楚区块链底层技术,才能让我们在市场上更加清醒,从而不被热点带偏。
而我们去了解区块链技术时,虽然发现网上已经有极多科普比特币的文章,但在学习的时候就会发现,每一篇文章都有不同的缺点。要么过于肤浅,常运用不恰当的类比以解释区块链的某一面,从而让读者形成误解,要么作者将自己对区块链的盲目积极偏见带入文章,得出不客观的结论。
而优质信息散落在各类论文、著作、博客、社区中,需要花大量时间阅读和辨析。因此,即使距区块链白皮书已13年,本文将依然完胜各类科普,既能深入技术细节,又能用小白能懂的语言,让你只需要看这一篇文章,就能不带偏见地明白什么是区块链技术。
1. 加密狂魔之梦 crypto-punks’ fantacy
在加密社区,成员们一直有个梦想,就是开发一种电子现金(你可以把它想象为存储在电脑里的硬币),它不需要银行等中心化机构,就能完成支付。这种电子现金,致力于解决两个问题:
- 降低手续费。现代银行支付体系,每笔交易大概有千分之6~百分之1的交易成本,在美国,每年支付成本约占GDP 1%。普通人如果没开过店,可能对交易成本无感,可以参阅我的这篇文章。先举个简单的例子,你在餐厅吃饭,微信支付500元,最后商家收到的实际是498元,那2块钱由银行、微信等瓜分。
- 匿名。社区成员们,都不喜欢交易被银行等商业机构掌握,一直试图让交易匿名化。
- 降低中心化风险。中心化机构比如银行,一旦出现信息泄漏、或者主观封锁某个用户,就意味着用户难以避免的巨大损失。
对理想的去中心化电子现金,社区成员做了几十年的尝试,都失败了。至于失败的原因,说出来我们圈外小白也很容易理解 - 对于一枚电子现金,如果没有中心化机构维持它的一份完整交易记录的话,它就会有:
- 双花(double spend)问题。这样电子货币就和电脑上其他文件一样,可以被复制粘贴。如果没有一个中心机构保存交易记录,让交易方去查询的话,持有者就可以通过复制粘贴,重复交易一个货币,因为对手方也无从验证这个币的交易记录
- 鉴权问题。如果要维持匿名性,那么如何在不知道你是谁的情况下,知道一个电子货币是你支付的,而不是其他人支付的。这也被称为拜占庭将军问题:指挥官联合处于拜占庭各地的将军,对目的地发起进攻,此时,指挥官如何确定信使传来的信息,是各个将军的真实意图?如果收到假信息瞎进攻了,就会失败。
对于双花问题,从来没有一篇文章清楚解释过它。如果你不设身处地,按照上面的思路去想象使用电子现金(能被复制粘贴)的场景,就无法理解它。因为我们使用的银行账户、或者实体纸币,都没有双花问题。现在,一个去中心化的电子货币,面临的核心难点,大家已经明白了。
2. 中本聪的世纪创举
可以猜到,成功解决上述电子现金问题的第一个方案,就是比特币,其白皮书的标题就是“比特币:一种点对点的电子现金系统”。而要了解比特币的解决方案,就绕不开哈希函数(hash function)。不要害怕,你不用学习数学原理,而是对哈希的特性有感性认知就足够了。
2.1 哈希的力量
简单而言,哈希函数就是这样的一种函数:它可以将几乎任意长度的信息输入,转换成独特的、固定长度的 信息输出。比如,比特币使用的SHA256哈希函数,可以将任意信息,转换成256位的二进制输出(显示在屏幕上是64个字符)。如下图所示:
那么这玩意儿有什么用呢?这就要结合它的特性来谈了。
2.2 独特的哈希世界
哈希函数的第一个特性就是非常敏感。比如,我把输入从holden改成Holden,一个大小写的改变,输出就完全不一样了:
在比特币的世界,历史发生的所有交易记录,都会让哈希函数给“哈一下”,输出一个哈希结果,所有人都保存下来。如果有恶意用户稍微更改了历史记录,比如抹掉他过去的某一笔交易,试图忽悠大家取信它改过的记录,大家把交易哈希一经对比,就会发现明显不同 - 这就是哈希敏感的好处。
比特币网络通过把所有历史交易记录都给哈一下,让大家都存一份,每个人都以最新的哈希结果为准 - 这是解决双花问题的秘诀。我收到一枚比特币交易的时候,拿全网共同保存的历史交易记录一比对,就知道对方有没有欺诈了。
这时大家会有2个疑问:
- 会不会存在H(x) = H(y),即两个不同的输入,哈出来相同的输出,就是说一个哈希结果会不会对应不同的交易记录?答案是,从概率上讲不可能。这就保证了哈希函数的安全性。
- 怎么样确保大家保存的是同一份哈希交易记录,到底以谁的为准
第二个疑问,就是去中心化网络里,参与方之间的信任问题,这是比特币网络解决的另一个重要问题。
2.3 内卷的哈希世界
解决信任问题的方法,我们常把它称为共识机制。比特币的共识机制,也和哈希有关,叫工作量证明(proof-of-work)。什么是工作量证明?简而言之,比特币网络里,干最多活的人所输出的哈希记录,会被大家采纳 - 即一个人以工作量来则证明自己。为什么大家会认可这样的内卷共识机制呢?
这就要了解工作量证明的形成。根据比特币网络的设定,每隔大概10分钟,所有人会解完一道哈希算术题,最先找到答案的,就能获得记账权,所有人都以它输出的交易哈希记账。
这个算术题很难,且只有1种解题方法 - 瞎猜。可以想象,这需要巨大的工作量,因此叫工作量证明。此外,谁家计算机的算力好,谁就猜得更快。算术题是这样的:
H(所有历史交易记录 + N) = A,求N是多少。我们只能从0开始,用每个数去替代N,以求得A。而无法根据A,用某种方法去倒推N等于多少,这是哈希函数的另一个特性,即H(x)=y,已知y,基本不能求得x;但已知x,很快就求得y。
最先解出N是多少的人,将把答案发送给所有人,大家把N代入H(所有历史交易记录 + N),马上就能验证是不是等于A。验证成功了,就以采信它的答案。然后开始解下一道题,如此循环。
比特币把每次解题过程中产生的新交易哈希,以及其他一些信息(如历史交易哈希、时间、N的解等),保存为1个数据块,我们把它叫做区块(Block)。随着时间推移,这样的区块连接起来,就形成了区块链(blockchain)。
我们可以用比特币的共识机制,去理解区块链这个名字的起源。但区块链技术,并不能理解为数据块连接起来的技术。这个等我们看完全文就懂了。
所以,工作量证明就是通过不断解哈希算术题,率先获得结果的人,将历史交易记录等信息,不断地用哈希函数串联起来的过程。
2.4 安全的哈希世界
在比特币网络,大家通过解题的方式,取得其他人的认可,获得记账权,最后大家都以解题人的账本为准。解题人,就是我们常听见的矿工(miner)或者节点(node)。新的比特币会随解题结果而产生,作为矿工的解题奖励。如此循环往复的工作量证明,让所有交易形成一条区块链,这条链随时间推移、也随着工作量证明的积累越来越长,大家都以那条最长链上的交易记录为准 - 这个机制,是比特币网络非常安全的根本所在,也是理解双花问题解决方法的关键。
下面是一个简化的区块链表示。可以看到,每个区块都包含前面区块的哈希结果,工作量证明(解题结果N)被层层叠加到当前最长的区块链里。
那么怎么理解一条层层叠加的数据链,是无比安全的呢?假设心怀不轨的隔壁老王欲图将一枚比特币重复支付,他也知道节点们解题时就会发现这枚比特币已经用过了,因此隔壁老王必须想办法修改历史交易记录,比如删除这枚比特币的历史交易、或者虚增自己账户下的比特币数量,从而躲过节点的验证。要做到这些且让所有人同意,隔壁老王就得:
- 更改历史交易记录后,重做更改的区块后面的所有工作量证明,把更改后的每一个N重新解出来。
- 为什么要这样重新解所有题?请记住,H(所有历史交易记录 + N) = A。因为改了以前的交易记录,所以N的解就不一样了。而每一个区块都包含之前的交易记录,所以后面每一个区块的N都不一样了。
- 重做工作量证明后,老王的解题速度必须超过当前的所有节点,争取记账权,从而把它上面生成的新链变成最长的链,为所有节点所接受
因此,隔壁老王必须拥有超越所有诚实节点总和的强大算力,才有可能使用比特币进行欺诈交易,显然这是很难的。
而且,如果你拥有强大算力,你会选择做一个诚实节点,去解题争取记账权,从而获得比特币奖励。因为你的欺诈一旦被发现,大家将弃用比特币网络,导致比特币一文不值,让你的欺诈行为和能力变得毫无意义。这也从博弈论角度,保障了网络安全。
因此,所有人通过工作量证明的共识机制,认可最长的包含所有交易记录的区块链,来避免双花问题和网络的安全稳定,这是中本聪比特币方案的最大贡献。
2.5 隐匿的哈希世界
到这里,双花问题的解决方案说清楚了,这是比特币最核心的创意。而我们开头说到,电子现金还面临拜占庭将军问题 - 如何在不知道你是谁的情况下,确保一笔交易是你授权支付的,或者证明收款人确实是你本人。
这个问题的解决方案,是密码学的电子签名(digital signature)技术,这是早就存在的方法,并非比特币的创举。
首先,区块链网络会给你生成专属的一个叫私钥(private key)的东西,它相当于你的支付密码。然后,利用一些神奇算法(比如比特币的ECDSA),将私钥转换成公钥(public key),并将公钥广播给所有节点,节点就能拿着你的公钥,来验证一笔交易是不是由你的支付密码(私钥)授权的。
此后,每次用比特币转账时,我就用私钥对交易进行签名(相当于输入交易密码),矿工们拿着我的公钥,就能够验证签名真实性,从而完成了鉴权的步骤。
神奇算法的神奇之处在于,根据私钥生成公钥很容易,但几乎无法根据公钥倒推出私钥,这相当于保证了私钥的安全性,没有人能伪造我的支付密码。
3. 所以什么是区块链
看到这里,你对比特币的了解已经超过了世界99%的人。比特币网络就是一种分布式数据库技术,分布在各处的矿工,保存一份所有比特币的完整交易记录。
这份交易记录,由一个个小区块组成,每个区块都包含之前区块的哈希。而人们通过工作量证明算法,确定以谁的交易记录为准,每一次的工作量证明和历史交易一起保存在区块中,如此不断叠加。因为修改历史交易记录,意味着重做工作量证明,因此这个交易记录,是难以篡改的。
通过新增的比特币和交易手续费,矿工获得工作量证明的解题奖励,有了持续维护比特币网络的动力。
3.1只增查,不删改
区别于可以增删改查的传统数据库,以比特币为代表的区块链数据库,所有的数据记录将只能增加,不能删改。这种数据库的优点是,对数据库每条记录提供了终态。这在金融领域、司法领域,有显而易见的用途。比如,银行间通过共同维护一个交易数据库,将大大减少清结算 和争议处理的成本。
3.2 共识机制
区块链是一个由多节点维护的数据库,因此需要基于某种共识机制,来确定什么时候一条记录就能写入数据库,比如比特币的工作量证明机制。如果是银行间组成一个自己的区块链网络,显然不需要工作量证明,但也需要共识机制,比如多数服从少数,来确定当产生分歧时,把什么记录写入数据库。
所以用最简单的话说,区块链技术就是一种基于某种共识机制的、只增查不删改的分布式数据库技术。
4. 所以什么是数字货币
等等,这么讲,比特币网络作为一种区块链技术,好像和比特币本身没什么关系?
确实是这样。一个区块链网络,数字货币是可有可无的。
4.1 区块链网络为什么要发币
大家想一下,区块链作为一种由多方共同维护的数据库,其核心是什么呢?
核心是3个字:有人用。用学界的话说,就是要考虑网络效应(networking effect)。
比特币如果没人用,它就没有任何价值,即使它的区块链技术看起来很酷炫。
这就像一个初创公司,即使是由大牛创立,某个领域处于前沿,如果后面没有更多员工加入,这个公司肯定做不大。
那么早期没钱的初创公司怎么吸引优秀员工呢?那就是股票。虽然面临创业公司破产的大风险,早期员工通过持有股票期权,如果公司茁壮成长,则能获得大笔收入。
数字货币就是区块链网络的股票,是一种激励机制。当某个区块链网络被大规模接受后,早期就持有该网络数字货币的人,就会有大额收益,相信大家想想早期持有比特币的人就能明白这个道理。
国际贸易领域已经有成熟的区块链运用,这些行业内的区块链网络,都是没有数字货币流通的,因为显然没有必要。
4.2 国家为什么禁止数币交易
整个区块链行业仍处于早期。购买数字货币,和购买二级市场大公司的股票不同,相当于是做天使投资人。买股票已经是高风险投资了,天使投资更是一个低胜率的游戏。
因此,在某些国家,比如二级市场交易还有涨跌停限制的中国,数字货币交易是不允许居民参与的,这是保护大众的举措。
现在,你已经理解了区块链技术、数字货币和挖矿。但相信大家还有很多疑问,比如区块链和我有什么关系,什么是元宇宙,什么是以太坊,什么是NFT,数字人民币和区块链技术有什么关系。我会在后面的文章,分享对这些问题的看法。