星级打分
平均分:0 参与人数:0 我的评分:未评
2008 年,金融危机席卷全球,大家对银行的信任掉到了谷底。就在那年 11 月 1 日,一个化名"中本聪"的网络极客在网上发了一篇文章,全名叫《比特币:一种点对点的电子现金系统》,后来大家管它叫"白皮书"。
; Y+ i' C p- I( ~6 S7 {' m5 ] v1 i+ W
这篇文章提出了一个大胆的构想:造一种不需要银行的电子货币。十七年过去了,中本聪是谁,至今没人知道。但这套系统一直在运转。
3 [3 ~! B) \3 k. F* j {. C* s
/ P" Q3 b6 m/ t8 R5 h1 [' \: T它看起来很神秘,其实核心只有一个特别朴素的概念——记账。咱们就从记账说起。
; Y- b' O8 y0 ?! V l
7 t( X+ A- o1 c; N$ Y' U7 C, I
01 一套没有银行的账本,怎么记?
! y) U7 ?( e! }' j
* q \: a' l5 O+ }8 v3 E1 O1 h6 D平时我们转账,本质就是记账:我付你 100 块,银行从我账上扣 100,给你账上加 100。不管你用信用卡、支付宝还是微信,背后记账的都是银行。我们敢信银行,是因为银行背后站着国家信用。
' T: u& t' r; u
: o% U$ I( D9 j) D( ]2 J3 j中本聪的想法是:干脆不要这个中心了。每个人的账本都公开,人人都可以看——这就叫"去中心化的电子记账系统"。
4 s' J) @7 l" ~* [
E! f( L* {" @& M" f) n& M比如 A、B、C、D 四个人互相交易。A 付给 B 10 个比特币,这事不能光俩人知道,A 得把这条账单广播给所有人:"A 付了 B 10 个比特币!"过一会儿 B 付 C 5 个、C 付 D 2 个,也都要广播。这样,每个人手里的账单都是一样的。
- ]5 T \( V+ ]* X
2 S4 S. j7 ~- K' D* X9 Q9 s4 [
这些账单攒着攒着,就要打包。打包成一"块",一个区块大约 1MB,能装 4000 条左右的交易记录。打完一个包,再把它接到之前的记录上——块连着块,串成一条链,所以叫区块链。
?/ b0 O; t- H
, K2 u4 b- E( w. Y3 p- f02 系统一跑起来,三个问题就来了
" C& C2 E5 i( n; a$ V- d( b1 N. T& s; `, x i5 s- m0 ]7 K
人人记账、人人公开,听着很美好,但马上冒出三个问题:
8 t" _, z3 x2 b( \) h8 M7 V. J
- {' g% m9 `) w0 G, M/ [+ J! V( B① 账单以谁为准?网络有延迟,A 先记"付 B 10 个",D 那边可能先记的是"付 C 5 个",顺序都对不上,听谁的?
8 v, _" n4 V: s" {3 ^' Z: ~% Q8 w- g1 k: o/ S4 Y N5 }
② 凭什么要记账?广播来的账跟自己没关系,凭什么让我花电脑、费电去记?
9 U6 b7 D) s+ l! x0 l' ?
) p; ]5 D# G) u9 B2 l& [③ 怎么防伪、防篡改、防赖账?有人伪造账单怎么办?一个人把同一笔钱花两次怎么办?有人偷偷改历史记录怎么办?
2 \9 i, \3 V8 y, M' K
& q+ q5 L" H. O6 g有意思的是,先解决问题②,问题①就顺手解决了。咱们先看:记账到底有什么好处?
' @$ ~& ?$ S9 Q0 s' C6 l
c& f" W# q! l/ d: V3 Y |1 K
03 记账的奖励:手续费 + 打包大奖
v* {0 X' P% p% t3 q6 M* ]2 Q. Z
0 L5 J- ~. w* ?0 x
记账有两个好处。第一是手续费:A 付 B 10 个比特币时,得多掏一点点给打包的人,就像银行转账的手续费,只不过比特币的手续费很低。第二是打包奖励:每 10 分钟打一个包,第一个四年,每打一个包奖励 50 个比特币;过了四年,减半成 25 个;再过四年,12.5 个……就这样每四年减半。
2 [4 K! S4 ~8 L
0 N1 @- N4 V) o4 h算一算比特币总量上限(白皮书的设计)
# f: I4 D- K( p: b' ]+ K
) M( U% O. G+ r/ W8 Y每小时打 6 个包 × 每天 24 小时 × 每年 365 天 × 第一个四年,奖励 50 个/包;
9 t; R6 ~- j8 K. s0 ^+ _8 [: `5 k: y7 C6 O. U; r
第二个四年减半、第三个四年再减半……
8 O8 p& i8 _; E0 b- ^) m
& J4 Z! h3 F4 p5 k50 × 6 × 24 × 365 × 4 ×(1 + ½ + ¼ + …)≈ 2100 万枚
# r5 _) Q# U7 l6 p( O y! n# O' Y( E0 \
这就是"比特币一共只有 2100 万个"的来历——不是印出来的,是按这个减半公式一点点"发工资"发出去的。
7 _- D) |* ~! L2 h: Z* f) w; S. H
8 Z' E. p# {. w( O& e
04 以谁为准?——全球最大的一场"解题抽奖"
! l5 k9 J _9 u1 E; B* @
5 g g/ }( l9 F手续费和大奖摆在那,人人都想打包,但奖励只给一个人。中本聪设计的办法叫工作量证明:想打包,先做题。题目非常难,没法巧算,只能一个数一个数地往里代、碰运气——这个碰运气的过程,就是挖矿。
. x/ ~- P1 J$ V4 e
$ T) A$ e+ r, ~- N9 D% i5 Y6 @题目长什么样?其实很简单:
4 Y; @3 K6 |# |1 w; z
2 g% {3 g7 F( R7 p* t
第一步,拼一串字符:
+ J5 a1 K- j" {& a& K) ~: \2 e
r9 u1 T' k8 z3 U% u ~. ~1 C0 Q上一个区块的头部 + 这10分钟的账单 + 时间 + …… + 随机数
2 C7 C" X9 N8 d# O
9 {7 k, G" o( n) t$ F2 D" q7 B第二步,用 SHA256 算法做两次哈希运算,得到一个 256 位的二进制数:
4 `5 A6 ^/ b$ m. l
0 F7 Q# x4 Y9 R7 t10110010……1011(256位)
- h U# |2 q9 S5 [2 s. h8 Y8 N& _
0 v: O8 f0 s1 b# d. M/ Z; {( W
第三步,规则规定:算出来的数,前 n 位必须全是 0:
1 B) B" S; z2 k
, T! {1 z; _+ S( e' a8 Y/ R0000000011010010……(后面随意)
/ u0 t6 w" S' a* l
1 |* G- k! f6 _( d
整串字符里,其他部分都是定死的,唯一能变的就是那个随机数。矿工们就是不停地换随机数、算哈希、看结果——前 n 位是 0 吗?不是?换一个数再来。哈希算法有个特点:正向算很容易,反过来推几乎不可能。所以没人能"巧算",只能暴力硬算,比谁算得快、算得多。
8 G& R$ x U+ R9 b* c E& l; B: C2 S' _
谁先算出来,谁就赢得这一轮的打包权,拿到手续费和打包奖励,然后把新块接到链上,向全网广播。其他矿工一验证,没问题,就都以这个新块为准,接着算下一轮。
6 e2 ^- f( b5 @; Z4 Q* y9 U+ |/ d. G! j+ G# b
难度会自动调节:算的人多了,系统就把"前 n 位"的 n 调大,题目变难;算的人少了,n 调小。目的只有一个——保证全网大约每 10 分钟稳定出一个块。所以,你没办法让自己的运气变好,能做的只有一件事:买更多矿机,算得更快。
M* C3 ~& L1 h+ C* a9 T6 n) _# v& U$ d) g$ U" \& {6 G9 j3 Q0 U
05 怎么防伪造?——签字没法冒充的"电子签名"
. ]: h V- f9 H5 d( ?5 k7 x
: V$ [5 B# {! ]$ b! h( o4 ]
现实中确认"这确实是你本人",靠签字、按手印、刷脸。但在电子世界里,这些东西都能复制粘贴,全不管用。比特币用了一套数学办法:电子签名。
q0 W" Q/ w$ y, S
+ `& Z+ m0 X7 u* F1 R
每个比特币用户注册时,系统先生成一个随机数,推出一个叫私钥的字符串,私钥再推出一个公钥,公钥对应一个地址。这三样的重要程度完全不同:
" x1 \5 T" ?) @
2 N+ ]' D7 v. {3 f7 N私钥——绝对保密。丢了私钥,币就全没了。所以有人把它存在不联网的电脑里,甚至干脆背下来。
/ x7 ~( r- D+ t9 N' X( u
4 @: f/ l+ T3 H3 ^5 Q# F( h公钥——随便公开。别人给你打钱时,你就把公钥和地址发过去。
' `5 p( F: X6 z% l& ]% U
4 R- Y3 D' ]7 T5 A地址——相当于银行卡号,收钱用。
; l1 k0 w8 Z7 |5 O( n+ p5 o
8 h+ e9 R$ B" I+ k- L数学上,私钥能推出公钥,公钥却推不出私钥——因为背后的哈希算法只能正着算。这种"加密和解密用不同钥匙"的方式叫非对称加密(最典型的是 RSA),比特币签名的原理就靠它。
( {& n) A @& k2 ?! T$ d! n! T0 ^0 m. Y7 ]+ O, d- g
签名验证的完整流程是这样的:
2 O, j! n' c! ?0 M+ W% ^1 [
) T+ U- C+ \0 O5 z: @* ?' D: \( m. s① A 写下账单:"A 付给 B 10 个比特币";
% Z; b2 W b& n6 R+ O. F% ^3 I$ G) W. l
② A 对账单做哈希运算,得到一份"摘要";
z8 T+ M$ R# U, b1 _8 F2 b) y0 n' V- C1 f& B& B- @
③ A 用自己的私钥加密这份摘要,得到一个"密码";
0 u" \1 C, }0 L% o# q
: K' y# F- _# M. j6 j* d④ A 向全网广播三样东西:账单、自己的公钥、这个密码;
3 {7 r+ V! T8 {
8 P7 F' z4 M6 ]: X1 u# o⑤ 收到的人用 A 的公钥解密密码、还原摘要,再自己对账单算一遍摘要——两边对得上,说明账单真是 A 发的、一个字都没被改过。对不上,全网拒绝。
3 L% J. N5 X- G" a0 y1 k
. a" _! F# _8 {, l6 J& q8 b! U9 [; H
只有握着私钥的 A 本人才能"签"出这个密码,任何人想伪造都没门。这就是电子签名,你银行卡的很多签名验证,用的也是差不多的原理。
8 T" \+ z: o, L3 d0 C# u+ e/ Q
6 D' X0 U- R* T9 X( b) U
06 余额怎么查?"一钱两花"怎么办?
/ F) t" i- ]0 O2 x7 }7 f
( m4 [1 {, Q; i1 V先说查余额。每个参与比特币网络的用户,都会把从第一个区块开始的全部账单下载下来。A 广播说"我付 B 60 个比特币",大家就往回翻账:他挖矿得过 50 个,花掉过 20 个,现在还剩 30 个——不够,拒绝,这笔消息永远上不了链。
% n# e3 ^- V6 Y7 I7 `% |0 X# J
6 y* g9 j4 G5 ]6 j0 d9 g2 |3 g, m再看更有意思的"双重支付",俗称双花:同一笔钱花两次。生活中就像有人卖房,同时跟两个买家签约。假设 A 只有 10 个比特币,却几乎同时发出两条消息:"付 B 10 个"、"付 C 10 个"。
- z& F, J( K* v- x# A
7 E# I4 q, b9 C F8 \4 t2 |
先收到哪条的人就记哪条、拒另一条;也有人先收到另一条。此时两条消息都还没被确认。直到某个幸运儿解出数学题、打包了新块——如果他的块里装的是"付 B 10 个",这条就被确认,另一条直接作废。反过来也一样。
4 I1 w2 _: H* F6 b. u+ u' ^
) M2 | V+ d7 J; w6 e7 x' O/ ^2 v9 L所以收比特币别急着发货:对方说"转了转了",你先别当真——要等这条交易被真正打包进区块、记到主链上,钱才算真的到账。
/ a% p1 P0 f+ U6 B2 L( F
& K1 t& M1 F1 o$ ~
07 历史记录能改吗?——最长链原则
7 ~$ k0 I, m9 C9 o3 L4 C% n& @8 Y/ t; I- H" I! X
有人动歪心思:我不伪造签名,但我把已经记上的账偷偷删一条行不行?
* t8 t' M+ c! w. \5 v# k+ i. \5 F! U, F5 o: [7 L
比特币有个原则:全网只认最长的链。实际情况是这样的——偶尔几乎同时有两个矿工算出了新块,链就分叉了,一拨人跟着这条,一拨人跟着那条,两边各挖各的。很快,某一边先挖出下一个块,链变长了,全网一看到更长的那条,立刻倒戈过去,短链上的所有工作作废。
, z4 V' \/ K$ X
$ J' _$ x! p7 D5 s这就意味着:想篡改历史记录,你就得在自己那条分叉上,算得比全世界其余所有人加起来还快,把链造得比主链还长——理论上可行,实际上概率极低,而且越往后的区块,改动难度越大。所以大额交易一般要等 6 个区块确认,基本就万无一失了。
2 Z6 x' w/ H: d# L: C
* D9 G" \) F: q1 [; W一道有趣的算术题:假设真有个坏人控制了全世界 50% 以上的电脑算力,他干嘛不用这算力老老实实挖矿?挖矿收入比篡改一条记录划算多了。有那么多钱的人,往往不愿意当小偷——这套机制妙就妙在这,它让作弊在利益上不成立。
1 |( ?( R: x( m7 y" E6 q7 D
5 @7 _% E* i# t08 最后聊聊:这东西到底怎么看?
! D( A, C" X! f* l. J4 I+ o4 P+ j7 o& b' _1 L
作为一项技术,比特币确实漂亮:没有中心发行机构,不用担心滥发;总量固定在 2100 万枚;天生防伪、全程可追溯;转账手续费还低。因为设计得太精巧,甚至有人提议给中本聪颁一个诺贝尔经济学奖。
8 |+ F5 r8 F! @) N1 z
& R' x' e; S8 j但它有个天生软肋:匿名。转账只认公钥和地址,谁也不知道背后是谁,于是敲诈勒索、洗钱、贩毒都拿它当工具,也因此受到各国监管部门的打击。
! a0 y- r! e$ `7 V- g4 { f" f
A( K- Y6 p9 X: V C I还有价格。暴涨让一些人一夜暴富,暴跌也让一些人倾家荡产。看懂了原理你就会明白:它的核心技术价值是那套"人人记账、数学保证公平"的机制,而不是K线图。另外按中国现行监管要求,虚拟货币相关业务活动属于非法金融活动,普通人格外要捂好钱包。
) f' e, L+ h: P& @
0 `: M* u$ X" Z3 J2 b8 D$ ]4 g一句话总结
6 g5 B1 d# f" n3 g
( T0 {: s' M/ c) j2 k# O# u比特币 = 一本人人可查、无法篡改的公开账本;挖矿 = 全网矿工拼算力抢"记账权"的解题比赛;你手里的币,本质上不是一枚硬币,而是账本上属于你的那条记录。