星级打分
平均分:0 参与人数:0 我的评分:未评
2008 年,金融危机席卷全球,大家对银行的信任掉到了谷底。就在那年 11 月 1 日,一个化名"中本聪"的网络极客在网上发了一篇文章,全名叫《比特币:一种点对点的电子现金系统》,后来大家管它叫"白皮书"。
6 a, T. J* |8 q
+ E# ?* B/ E0 N8 b1 K这篇文章提出了一个大胆的构想:造一种不需要银行的电子货币。十七年过去了,中本聪是谁,至今没人知道。但这套系统一直在运转。
- V( \# M- {# h& q8 K" j8 U* z4 |( l" {) I$ z+ O
它看起来很神秘,其实核心只有一个特别朴素的概念——记账。咱们就从记账说起。
, e. h) c3 c# e x! ^5 a; G, r
O$ Z0 s0 E& ~ L% ~4 o/ v( b01 一套没有银行的账本,怎么记?
. K& o" v! v; D9 y
- O0 R& G6 D2 a0 y平时我们转账,本质就是记账:我付你 100 块,银行从我账上扣 100,给你账上加 100。不管你用信用卡、支付宝还是微信,背后记账的都是银行。我们敢信银行,是因为银行背后站着国家信用。
7 T- _! Y5 o, Z6 D, t" R# M; ]% X( e! c3 u5 M1 q7 J. E0 W
中本聪的想法是:干脆不要这个中心了。每个人的账本都公开,人人都可以看——这就叫"去中心化的电子记账系统"。
$ k3 M2 s( R) I$ o S, N- d* |- r
5 i+ R$ H P- ^! o/ M
比如 A、B、C、D 四个人互相交易。A 付给 B 10 个比特币,这事不能光俩人知道,A 得把这条账单广播给所有人:"A 付了 B 10 个比特币!"过一会儿 B 付 C 5 个、C 付 D 2 个,也都要广播。这样,每个人手里的账单都是一样的。
; ?) {+ z$ R2 B9 p5 y
% i `/ O) y# `& V$ k这些账单攒着攒着,就要打包。打包成一"块",一个区块大约 1MB,能装 4000 条左右的交易记录。打完一个包,再把它接到之前的记录上——块连着块,串成一条链,所以叫区块链。
2 @4 m/ _2 {- S; s
- B, j& Q$ {/ c' P, o4 b2 D- c02 系统一跑起来,三个问题就来了
3 D/ @3 _0 E. w: f8 D" ^/ `5 S- p
7 J @- ]' Q" U( J" S
人人记账、人人公开,听着很美好,但马上冒出三个问题:
* s# X- ]# L6 j5 g4 x* v" a ^, l5 ~% k$ c3 Z. U6 L* m: K
① 账单以谁为准?网络有延迟,A 先记"付 B 10 个",D 那边可能先记的是"付 C 5 个",顺序都对不上,听谁的?
?( q2 u9 n/ n% B+ O/ |
& s5 Z5 z" Q1 _5 D* {& {4 z② 凭什么要记账?广播来的账跟自己没关系,凭什么让我花电脑、费电去记?
/ |) t6 i9 P3 l
1 Z2 j, G% \; h: W
③ 怎么防伪、防篡改、防赖账?有人伪造账单怎么办?一个人把同一笔钱花两次怎么办?有人偷偷改历史记录怎么办?
e% b( b3 p6 X1 \: i1 g+ x# l$ L9 U, v7 d# c4 o+ L$ n! F' \
有意思的是,先解决问题②,问题①就顺手解决了。咱们先看:记账到底有什么好处?
. J6 Q+ q* o. u
% a/ [! ]6 f! z) S03 记账的奖励:手续费 + 打包大奖
& ~) x$ }8 K6 u( e7 e% @7 ~( G' V ~* t- I7 P4 |
记账有两个好处。第一是手续费:A 付 B 10 个比特币时,得多掏一点点给打包的人,就像银行转账的手续费,只不过比特币的手续费很低。第二是打包奖励:每 10 分钟打一个包,第一个四年,每打一个包奖励 50 个比特币;过了四年,减半成 25 个;再过四年,12.5 个……就这样每四年减半。
! F+ H" L( V1 V: }8 e7 x1 w2 h( E: g, U
" |! N' O y* Z9 @. l, C" l! `算一算比特币总量上限(白皮书的设计)
4 ` i: p: U- G. j, t; y* g; q& q" Y
每小时打 6 个包 × 每天 24 小时 × 每年 365 天 × 第一个四年,奖励 50 个/包;
/ K/ O( M5 z# C) Q2 P+ l
9 X7 x8 R }0 m3 d4 `7 u7 D第二个四年减半、第三个四年再减半……
4 v7 L1 E: a% |8 k1 R& a4 d* C& q* X, u1 t; y$ h' z. F
50 × 6 × 24 × 365 × 4 ×(1 + ½ + ¼ + …)≈ 2100 万枚
# k( ~- i* k( n0 G! T" y# X
- P/ \0 L/ g' i# i
这就是"比特币一共只有 2100 万个"的来历——不是印出来的,是按这个减半公式一点点"发工资"发出去的。
- c9 L0 v0 t \$ t. |! E5 |; Y
' ~8 @4 Z) R& \+ \$ S( |, w
04 以谁为准?——全球最大的一场"解题抽奖"
) i7 d0 b9 z9 y: p% b
/ \: T8 A4 U( a3 b2 i' K
手续费和大奖摆在那,人人都想打包,但奖励只给一个人。中本聪设计的办法叫工作量证明:想打包,先做题。题目非常难,没法巧算,只能一个数一个数地往里代、碰运气——这个碰运气的过程,就是挖矿。
; O* W6 ~0 R/ m3 n8 q$ H, f4 }8 T
题目长什么样?其实很简单:
5 k O7 i) }" S* Z4 ]9 h
7 P/ ]- D$ N v7 i, `' K第一步,拼一串字符:
: d8 ^* c* `1 \9 {- N$ H' ^
9 [ r! D: [/ X7 i% y上一个区块的头部 + 这10分钟的账单 + 时间 + …… + 随机数
+ n: @ k' _% I/ H& A
. u$ N; a+ c; z$ Z第二步,用 SHA256 算法做两次哈希运算,得到一个 256 位的二进制数:
) o7 p5 ?. p- x d5 f1 @& I6 c8 ]7 r$ y, e
10110010……1011(256位)
& x1 v2 A# a- c, o' l5 Z3 R, t. J
$ J, k. V0 _( r; U7 d% \第三步,规则规定:算出来的数,前 n 位必须全是 0:
( A) g5 l" e1 K, ?0 E5 s+ T" x
3 v; U1 [. p# O& y2 Y0000000011010010……(后面随意)
! ?0 F; j9 U1 W7 ~* h
( a$ t# g& f: Y
整串字符里,其他部分都是定死的,唯一能变的就是那个随机数。矿工们就是不停地换随机数、算哈希、看结果——前 n 位是 0 吗?不是?换一个数再来。哈希算法有个特点:正向算很容易,反过来推几乎不可能。所以没人能"巧算",只能暴力硬算,比谁算得快、算得多。
1 s/ e7 _2 _0 H( b8 _( t
6 c6 r. l' ]/ }; i3 s. U谁先算出来,谁就赢得这一轮的打包权,拿到手续费和打包奖励,然后把新块接到链上,向全网广播。其他矿工一验证,没问题,就都以这个新块为准,接着算下一轮。
( u- O2 e8 C# G0 L& N9 G
: j9 ~ d( Y! t b难度会自动调节:算的人多了,系统就把"前 n 位"的 n 调大,题目变难;算的人少了,n 调小。目的只有一个——保证全网大约每 10 分钟稳定出一个块。所以,你没办法让自己的运气变好,能做的只有一件事:买更多矿机,算得更快。
( B$ O$ C/ w3 f* F4 q
/ c: ?4 `6 r$ s! f05 怎么防伪造?——签字没法冒充的"电子签名"
! P7 T' i3 V$ ^: ]/ p" f0 X$ f1 q4 A0 s/ E$ ?
现实中确认"这确实是你本人",靠签字、按手印、刷脸。但在电子世界里,这些东西都能复制粘贴,全不管用。比特币用了一套数学办法:电子签名。
0 A( B. P8 n7 p1 [8 i6 T& A# z9 D% ? b& g
每个比特币用户注册时,系统先生成一个随机数,推出一个叫私钥的字符串,私钥再推出一个公钥,公钥对应一个地址。这三样的重要程度完全不同:
: c+ u( h# @& p# R' \9 s
% H; ~- s. Q& K$ o: b6 q! `0 C私钥——绝对保密。丢了私钥,币就全没了。所以有人把它存在不联网的电脑里,甚至干脆背下来。
3 A% o- X$ a5 ]& T; A
$ d" m3 p& A; a' D6 \* ?/ I/ x公钥——随便公开。别人给你打钱时,你就把公钥和地址发过去。
% @* G, P% ^! A0 W4 _' U! o I' G+ X+ X& y$ R) z
地址——相当于银行卡号,收钱用。
$ e# l% G( n$ Z7 d+ X* f* i+ _7 h( N1 { \9 y
数学上,私钥能推出公钥,公钥却推不出私钥——因为背后的哈希算法只能正着算。这种"加密和解密用不同钥匙"的方式叫非对称加密(最典型的是 RSA),比特币签名的原理就靠它。
( p' n0 s: K8 U1 k
, M7 F t# @; a( ]! N签名验证的完整流程是这样的:
9 G7 Q0 |5 j! ~) ] i, l% `
7 a' n' |8 n; `$ W① A 写下账单:"A 付给 B 10 个比特币";
! ?, {7 c$ a6 E" h; }; c! Q g
: W. T& X ^0 ^/ E4 q# p, R② A 对账单做哈希运算,得到一份"摘要";
& S2 w3 l* L8 E! Q* v1 @
: d6 G3 h# S9 P" F( a1 a/ P③ A 用自己的私钥加密这份摘要,得到一个"密码";
& X, W% w$ d8 e! O9 I1 u: C2 P7 s
# V' e4 x. Q' `2 [3 T) L% L
④ A 向全网广播三样东西:账单、自己的公钥、这个密码;
: u n( }: K4 i1 z/ |8 Y# f: p5 h/ p I6 ^& R3 i' C
⑤ 收到的人用 A 的公钥解密密码、还原摘要,再自己对账单算一遍摘要——两边对得上,说明账单真是 A 发的、一个字都没被改过。对不上,全网拒绝。
4 V* s0 O) V7 H. r7 p8 r! d1 r! i2 t; c' _& r# a
只有握着私钥的 A 本人才能"签"出这个密码,任何人想伪造都没门。这就是电子签名,你银行卡的很多签名验证,用的也是差不多的原理。
8 `6 U% F$ \, i2 `0 U8 {
- d* s; m. b$ J
06 余额怎么查?"一钱两花"怎么办?
2 q8 l! k" A+ E4 k+ V+ l; l- S# X
* e: f1 W# R5 B' f1 z
先说查余额。每个参与比特币网络的用户,都会把从第一个区块开始的全部账单下载下来。A 广播说"我付 B 60 个比特币",大家就往回翻账:他挖矿得过 50 个,花掉过 20 个,现在还剩 30 个——不够,拒绝,这笔消息永远上不了链。
! O% ?9 e' {0 }8 w0 W1 H
" [6 O. M! [! w* ^6 B& k2 c. t再看更有意思的"双重支付",俗称双花:同一笔钱花两次。生活中就像有人卖房,同时跟两个买家签约。假设 A 只有 10 个比特币,却几乎同时发出两条消息:"付 B 10 个"、"付 C 10 个"。
8 p- f+ O% x" h0 V( h
; c; S0 r, c: C7 |% `! d* [9 G. v先收到哪条的人就记哪条、拒另一条;也有人先收到另一条。此时两条消息都还没被确认。直到某个幸运儿解出数学题、打包了新块——如果他的块里装的是"付 B 10 个",这条就被确认,另一条直接作废。反过来也一样。
5 K3 U1 p% M4 u$ B# x! d
% J0 }; z: G- R* W( p
所以收比特币别急着发货:对方说"转了转了",你先别当真——要等这条交易被真正打包进区块、记到主链上,钱才算真的到账。
% N/ O( o# C; B, E1 v2 [9 x" W4 s( p
* j5 U! w5 d1 G* |: c+ T07 历史记录能改吗?——最长链原则
2 _0 V- L1 m; h: m
: \# D" |' H$ M% e有人动歪心思:我不伪造签名,但我把已经记上的账偷偷删一条行不行?
$ x/ } z5 |7 h/ O& a) T6 T- |/ K8 J, m4 U
比特币有个原则:全网只认最长的链。实际情况是这样的——偶尔几乎同时有两个矿工算出了新块,链就分叉了,一拨人跟着这条,一拨人跟着那条,两边各挖各的。很快,某一边先挖出下一个块,链变长了,全网一看到更长的那条,立刻倒戈过去,短链上的所有工作作废。
1 ^/ [3 q4 r- h; C2 W
+ ~/ x& P7 h5 E. X9 ?8 ^9 R X O
这就意味着:想篡改历史记录,你就得在自己那条分叉上,算得比全世界其余所有人加起来还快,把链造得比主链还长——理论上可行,实际上概率极低,而且越往后的区块,改动难度越大。所以大额交易一般要等 6 个区块确认,基本就万无一失了。
0 J6 t5 P9 A/ B$ X! w7 K. L6 `3 S1 H7 G5 F \9 h0 O5 v; p8 \/ G, K5 U
一道有趣的算术题:假设真有个坏人控制了全世界 50% 以上的电脑算力,他干嘛不用这算力老老实实挖矿?挖矿收入比篡改一条记录划算多了。有那么多钱的人,往往不愿意当小偷——这套机制妙就妙在这,它让作弊在利益上不成立。
+ e9 I7 O, n2 F/ e4 g
6 q( o3 \6 ~/ F5 J; W$ W+ c08 最后聊聊:这东西到底怎么看?
2 ~! j& I) b8 o. ~$ [
0 \# h3 _0 ~! R7 U2 [+ K; o
作为一项技术,比特币确实漂亮:没有中心发行机构,不用担心滥发;总量固定在 2100 万枚;天生防伪、全程可追溯;转账手续费还低。因为设计得太精巧,甚至有人提议给中本聪颁一个诺贝尔经济学奖。
# F8 P: X6 s. x3 V7 X3 B$ k- K. u- M5 ~' ]. c: M" W
但它有个天生软肋:匿名。转账只认公钥和地址,谁也不知道背后是谁,于是敲诈勒索、洗钱、贩毒都拿它当工具,也因此受到各国监管部门的打击。
/ y) w7 X- u/ U( x
+ X, l0 M7 c0 f7 V/ }0 u2 q! B# L2 B还有价格。暴涨让一些人一夜暴富,暴跌也让一些人倾家荡产。看懂了原理你就会明白:它的核心技术价值是那套"人人记账、数学保证公平"的机制,而不是K线图。另外按中国现行监管要求,虚拟货币相关业务活动属于非法金融活动,普通人格外要捂好钱包。
; I' i C0 B8 [
3 H$ T6 `9 n3 h- |4 ~- _) |一句话总结
1 B4 Z4 ^9 {& Z1 L
) S9 F2 v0 x; v' v, f比特币 = 一本人人可查、无法篡改的公开账本;挖矿 = 全网矿工拼算力抢"记账权"的解题比赛;你手里的币,本质上不是一枚硬币,而是账本上属于你的那条记录。