亚洲财经

搜索

一篇文章真正读懂比特币:Bitcoin 到底是怎么运转的?

一篇文章真正读懂比特币:Bitcoin 到底是怎么运转的?
点上方蓝字关注我,全球宏观和身份规划的干货,不定期更新。
2008 年,中本聪发表了一篇只有 9 页的论文:Bitcoin: A Peer-to-Peer Electronic Cash System《比特币:一种点对点的电子现金系统》。
十几年之后,比特币已经成为全球最知名的数字资产之一。
但有意思的是,很多买过 Bitcoin 的人,甚至持有很多年的人,依然很难回答几个最基础的问题:Bitcoin 到底是什么?
为什么没有银行,也能知道谁拥有多少钱?为什么有私钥的人才能花 Bitcoin?为什么不能把 1 BTC 写成 10 BTC?
矿工到底在“挖”什么?为什么要有 Proof-of-Work?
为什么等待 6 个区块会比等待 1 个区块安全?
所谓 51% 攻击,是不是意味着可以把别人的 Bitcoin 全部抢走?
要真正回答这些问题,最好的方法不是从币价开始,而是重新回到 2008 年中本聪最初提出 Bitcoin 时的那个问题。

一、Bitcoin 最开始想解决的,根本不是“投资”

Bitcoin 白皮书开篇讨论的是一个支付问题,互联网已经可以让信息直接从一个人传给另一个人,但是钱不一样。传统电子支付通常需要:Alice → Bank / Payment Institution → Bob,中间必须存在一个可信第三方。
为什么?
因为数字世界存在一个非常麻烦的问题:Double Spending双重支付。
一张现实中的 100 元纸币,你给了商店以后,它就不在你手里了,但是数字信息天然可以复制。
如果所谓“数字货币”只是一个文件:bitcoin.dat
那我完全可以:复制一份给 Bob,再复制一份给 Alice。
于是问题来了:谁来判断哪一次支付是真的?
传统金融体系的解决办法很简单:银行维护中央账本。
银行告诉所有人:你的余额原来有 100 元,已经支付了 100 元,所以现在余额为 0。
因此真正困难的并不是“如何在互联网上传输一串数字”。
真正困难的是:在没有中央银行、支付公司或其他可信第三方的情况下,一群互不认识的人如何对同一份交易历史达成一致?
这才是 Bitcoin 的出发点。白皮书摘要里的一句核心思想就是:“Digital signatures provide part of the solution…”
数字签名提供了部分解决方案。为什么只是“部分”?因为它能解决所有权授权,却不能单独解决双重支付。白皮书随后提出用 P2P 网络、时间戳和工作量证明来解决这个问题。

二、第一块积木:Digital Signature数字签名到底解决什么?

一句话:证明某一次花费得到了相应私钥控制者的授权。
Bitcoin 使用密码学中的公钥和私钥机制。
简单理解:Private Key = 私钥,Public Key = 公钥
私钥可以生成:Digital Signature = 数字签名
其他人可以利用相应的信息验证这个签名是否有效,而不需要知道你的私钥。
于是我们假设 Alice 控制一笔 Bitcoin。
她想支付给 Bob,Alice 创建一笔交易,然后用自己的私钥进行签名。
网络节点检查:Signature Valid?如果有效,说明:这次花费确实得到了满足该币花费条件所需密钥的授权。
这里特别需要注意:Bitcoin 并不知道你现实世界是谁。
它不是在证明:“这个人叫张三。”
它证明的是:“发起这次花费的人能够提供符合条件的密码学证明。”
所以 Bitcoin 世界里的“所有权”与传统银行账户非常不同。

三、有私钥就能随便写金额吗?

这是理解 Bitcoin 特别重要的一步。
假设你只有:1 BTC,你能不能签署:10 BTC → Bob?
答案是:你当然可以创建一些数据,并用自己的私钥签名,签名甚至可能完全是真的。
但:网络不会接受这笔交易。
因为:Digital Signature ≠ Transaction Validity
数字签名只解决:是不是你授权的?
节点还要验证:你引用的钱到底存不存在?
是不是已经花掉了?输入和输出是否满足 Bitcoin 的规则?
所以:Signature ✅,并不自动等于:Transaction ✅
如果你只有 1 BTC,却试图凭空产生 10 BTC,那么完整节点会判定交易无效。这也是为什么中本聪在白皮书第 11 节明确指出,即使攻击者成功构造替代链,也不能因此“凭空创造价值”,诚实节点不会接受无效交易。

四、真正理解 Bitcoin,要理解 UTXO

这里开始进入很多普通投资者从来没有真正理解过的地方。
我们平时说:“我的钱包里有 1 BTC。”这句话虽然方便,但技术上容易让人产生一种银行账户式错觉:
Name: AliceBalance: 1 BTC,而Bitcoin 更接近另一种结构。
它关心的是:UTXO,Unspent Transaction Output未花费交易输出,
比如历史交易中存在三笔当前仍可被你满足花费条件的输出:
UTXO A = 0.2 BTCUTXO B = 0.3 BTCUTXO C = 0.5 BTC
于是钱包可以算出:0.2 + 0.3 + 0.5 = 1 BTC
我们日常才会说:“我有 1 BTC。”
因此你的所谓“余额”,可以理解成一组当前可以由你花费的 UTXO 的总和。
这也解释了为什么你不能凭空写:Input = 10 BTC
因为 Bitcoin 的 Input 不是一个让你随便填写金额的输入框。
它实际上是在引用以前存在的交易输出,节点可以回溯检查。
你说:“我要花这笔 10 BTC。”节点一查:
“你引用的那个 Output 明明只有 1 BTC。”交易立即无效。

五、Bitcoin 为什么需要“找零”?

UTXO 模型又带来一个非常有意思的现象。
假设你拥有一个:1 BTC UTXO
现在你想支付:0.3 BTC
你不是简单把那个 UTXO 改成:0.7 BTC,而是创建一笔新交易。
简单表示:INPUT1 BTC  ↓TRANSACTION  ↓OUTPUTS0.3 BTC → Bob0.7 BTC → Alice
后面的:0.7 BTC
就是:Change找零。
白皮书第 9 节专门解释了这种 multiple inputs / outputs 的结构:交易可以把多个较小输入合并,也可以产生支付输出和返回给发送者的找零输出。
这和现金非常像。你拿:
100 元买:30 元商品,商家找:70 元。

六、数字签名仍然没有解决最核心的问题

现在假设 Alice 确实拥有 1 BTC,所以她完全有资格签名。
她创建:Transaction A:1 BTC → Bob
Signature:✅
然后她又创建:Transaction B:同一个 1 BTC → Charlie
Signature:✅
注意:两个数字签名都可能是真的,因为确实都是 Alice 本人签的。
所以 Digital Signature 只能回答:“你有没有权授权花这笔钱?”
却不能单独回答:“两笔互相冲突的花费,到底哪一个应该被全网接受?”
Double Spending 问题重新出现。
因此:Bitcoin 需要全网对交易历史达成共识。

七、Timestamp:先确定事情发生的历史

Bitcoin 的下一块积木是:Timestamp Server时间戳服务器。
交易被组织并进行哈希,一个区块又引用此前区块的信息。
于是形成类似:
Block 100   ↓Block 101   ↓Block 102   ↓Block 103
每一个新的区块,都建立在此前历史之上。
如果你修改很久以前的交易,相应的数据会发生变化,之后依赖它的结构也会受到影响。
但这里仍然缺少一个东西:如果重新计算非常容易,攻击者完全可以重新做一条历史。所以还需要:Proof-of-Work

八、矿工到底在“挖”什么?

矿工不是在地下寻找 Bitcoin,他们实际上在不断尝试计算,使新区块满足网络要求的:Proof-of-Work
简单理解,矿工不断改变一个叫:Nonce的数据,然后不断计算:Hash
直到找到一个符合当前难度目标的结果。
于是:寻找答案很困难;但:验证答案非常容易。
这就是 Proof-of-Work 一个非常漂亮的特点:Difficult to produce, easy to verify。
因此矿工为了产生新区块,需要真实消耗:计算资源 + 时间 + 电力
Bitcoin 于是把“修改历史”从一个简单的数据编辑问题,变成一个需要重新投入计算工作的经济问题。

九、为什么历史越来越难修改?

假设攻击者想修改:Block 100
但是现在网络已经发展到了:Block 106
那么攻击者不能只修改 Block 100 就结束。
因为后面的区块建立在前面的历史之上。
他需要重新构造竞争历史,并尝试追赶诚实网络:
Honest:100 → 101 → 102 → 103 → 104 → 105 → 106
Attacker:100' → 101' → 102' → 103' → ...
问题是:攻击者追赶的时候,诚实网络并没有停下来等他,诚实网络还在继续:107,108,109……
这就是为什么中本聪在第 11 节开始使用概率论。

十、Confirmation 到底是什么?

假设你的交易进入:Block 100
后面继续出现:101 102 103 104 105 106
你的交易就越来越深地埋在工作量证明历史中。
白皮书第 11 节用 p 表示诚实网络找到下一个区块的概率,用 q 表示攻击者找到下一个区块的概率,并讨论攻击者从落后 z 个区块的位置追赶的概率。
核心结论非常直观:
如果:p > q
随着攻击者需要追赶的区块数量增加,
成功概率:Exponentially ↓,指数下降。这就是 confirmations 背后的数学直觉。

十一、51% Attack 到底是什么?

这也是最容易被媒体误解的 Bitcoin 概念之一,很多人的理解是:“如果控制 51% 算力,就可以把所有人的 Bitcoin 抢走。”这并不是白皮书第 11 节描述的攻击模型。
因为攻击者即使拥有强大算力,也不能简单写:“Bob 的 100 BTC 现在属于我。”
为什么?
因为攻击者没有 Bob 对应的私钥,不能为 Bob 的币提供所需的有效授权。攻击者也不能说:“我今天凭空创造 100 万 BTC。”
因为节点会检查交易和区块规则。
白皮书明确说,攻击者不能因此任意修改系统,例如凭空创造价值或拿走从未属于自己的钱;这一节讨论的是攻击者改变自己的近期交易,试图拿回已经支付的钱。
所以攻击者真正危险的能力之一是:Double Spend
例如公开历史:
Attacker → Merchant:1 BTC,商家看到确认以后交付一台电脑。
攻击者秘密维护另一段历史:
Attacker → Himself:1 BTC
如果他的竞争历史最终在共识规则下取代原来的历史,那么:
原来的付款可能失效,
攻击者又控制了这笔 BTC,但商品已经拿走。
这才是白皮书这一节重点讨论的攻击。

十二、所以 Digital Signature 和 Proof-of-Work 到底是什么关系?

现在可以用一句非常非常易懂的话总结:Digital Signature 管“授权”
Are you authorized to spend it?你有没有权授权这笔钱被花?
Transaction Validation 管“合法性” ,Is the transaction valid?
这笔交易本身是否符合 Bitcoin 规则?Proof-of-Work + Network Consensus 管“历史”,Which valid transaction history should the network accept?
出现竞争历史时,网络接受哪一段有效历史?
这三个东西完全不是一回事。
理解这一层以后,你基本已经跨过了 Bitcoin 原理最重要的一道门槛。

十三、为什么矿工愿意做这些事情?

如果维护网络需要:服务器、芯片、电力、计算能力,为什么有人愿意参与?因为 Bitcoin 引入了:Incentive激励机制。
成功产生新区块的矿工可以按照协议规则获得相应经济激励。
白皮书最初设计中,新币发行本身就是激励的一部分,同时交易手续费也可以成为激励来源。
所以 Bitcoin 很有意思的一点是:
它不仅使用:Cryptography密码学,还使用:Economics经济激励;
它不是单纯要求参与者:“请大家做个好人,共同维护网络。”
而是设计:让按照规则维护系统的人存在经济收益,让攻击系统需要付出真实成本。这就是 Bitcoin 最有意思的设计思想之一。

十四、Merkle Tree 又是干什么的?

如果一个区块里包含大量交易,难道每次验证都需要把所有交易全部拿出来吗?
Bitcoin 使用:Merkle Tree
把大量交易的 Hash 逐层组合。
简单理解:

最上面的:Merkle Root
相当于对这一组交易数据的紧凑密码学承诺。
这使得系统可以高效证明:“某笔交易确实属于这个区块。”而不必在每一种验证场景中都提供所有交易。
白皮书第 7 节正是通过 Merkle Tree 讨论如何压缩旧数据。

十五、是不是每个人都必须运行完整 Bitcoin 节点?

不是。所以中本聪提出:SPV,Simplified Payment Verification简化支付验证。
白皮书原文有一句很重要:“It is possible to verify payments without running a full network node.”
简单理解,轻量用户可以保存区块头,并通过 Merkle Branch 等信息确认某笔交易与相应区块的关系。但中本聪同时非常诚实地指出:这种简化方法并没有完整节点那样独立。如果网络受到攻击,它更加:Vulnerable脆弱 / 易受攻击。
因此白皮书还特别指出,频繁收款的企业可能仍然希望运行自己的节点,以获得更独立的安全性和更快验证。

十六、Bitcoin 是匿名货币吗?

这又是一个非常常见的误解。
Bitcoin 的交易历史本身是:Public公开的。
中本聪的隐私思路并不是:“把所有交易隐藏起来。”
而是:尽量切断公开交易与现实身份之间的联系。
白皮书甚至把它类比证券交易所,公众可以看到:交易时间
交易规模,但是不一定知道交易双方现实世界的身份。
因此今天更容易理解 Bitcoin 的方式是:Transactions → Public
但:Real-world Identity ↔ Address不一定天然公开对应。
不过一旦某个地址与现实身份建立联系,其他相关交易就可能进一步被关联分析。
中本聪在 2008 年已经意识到了这个问题,并建议使用新的 key pair 来降低交易被关联到同一个所有者的风险。
所以:Bitcoin ≠ 完全匿名。

十七、Bitcoin 最终解决的到底是什么?

到这里,我们重新回到原点。Bitcoin 并不是简单发明了一种:“互联网积分。”
它真正构造的是一个:不依赖中央可信第三方,也能够维护电子价值转移历史的系统。
白皮书最后总结:“We have proposed a system for electronic transactions without relying on trust.”
这句话值得反复读,Bitcoin 把很多原本由银行完成的功能拆开:
Private Key + Digital Signature解决授权;
Transaction Validation判断交易是否符合规则;
Hash + Timestamp连接交易历史;
Proof-of-Work为历史加入计算成本;
P2P Network传播交易和区块;
Consensus让网络对有效历史达成一致;
Incentive给维护网络的人经济动力;
Confirmations让已经发生的历史越来越难被竞争历史取代。
于是:Trust → Cryptographic Proof + Distributed Consensus + Economic Incentives,这才是 Bitcoin 白皮书真正想表达的东西。

十八、用一个故事把 Bitcoin 从头到尾讲完

最后,我们假设 Alice 想给 Bob 支付 1 BTC,Alice 的钱包首先找到她能够花费的 UTXO,她创建一笔 Transaction:Alice 的 UTXO → Bob,然后:Alice 使用 Private Key 签名,节点收到以后验证:签名正确吗?引用的 UTXO 存在吗?有没有已经被花掉?交易符合规则吗?
如果:Valid,交易进入网络传播,矿工/出块参与者把交易组织进候选区块。
然后进行:Proof-of-Work,某个矿工成功产生符合要求的新区块,新区块传播到网络,节点再次验证。
如果:Block Valid,节点接受它,并继续在相应有效链上工作。
然后:Block N+1出现,
再然后:N+2、N+3、N+4……
Bob 的交易越来越深地进入累计工作量证明历史。
攻击者如果想改写这笔交易,就必须构建竞争历史并追赶仍在继续增长的诚实网络。
如果攻击者的算力占比低于诚实网络,那么按照白皮书第 11 节的模型:随着确认增加,追赶成功概率快速下降。
整个过程:没有一家银行需要批准 Alice 的转账,没有一个中央服务器保存唯一账本,Bob 不需要知道 Alice 的真实身份,网络也不需要“相信 Alice 是个好人”。
系统验证的是:Proof;而不是:Promise,这就是 Bitcoin。
如果你认识bitcoin需要记住 10 个关键词,
Peer-to-Peer → 点对点、Private Key → 私钥、Digital Signature → 数字签名、UTXO → 未花费交易输出、Double Spending → 双重支付、Hash → 哈希、Proof-of-Work → 工作量证明、Node → 节点、Confirmation → 确认、Consensus → 共识,把这 10 个词之间的关系理解清楚,比记住 Bitcoin 明天涨到多少钱重要得多。
因为价格告诉你:Bitcoin 值多少钱。
而白皮书告诉你:Bitcoin 为什么能够存在。
摘自原文: ⁠Bitcoin.org|Bitcoin White Paper。
如果你喜欢我的内容,点个在看,让更多人看到。关注我,全球宏观、海外身份、资产配置,咱们下篇接着聊。

---本文为一般性信息分享,不构成任何形式的投资建议。