一個所有人都必須信任的數字
想像一下你的銀行餘額。它不過是銀行自己擁有的資料庫裡的一個數字。你看不到那個資料庫,你看到的只是銀行展示給你的一塊螢幕。絕大多數時候,這個數字是對的——銀行謹慎、受稽核、也受監管。但請留意這種安排的形態:只有一個機構保存著唯一權威的副本,而你不得不信任它。如果它的記錄說你的錢比你以為的少,需要費力去爭辯的人是你。
只要有中間人握著那份主記錄,同樣的形態就到處可見:一個說房子歸誰的土地登記處、一個說你的座位是真的的票務公司、一個說你賺到了那些點數的平台。每一個都是單一的真相來源——運轉良好時很方便,一旦出問題就是單點故障。
只有一個守護者,會出什麼差錯
記錄的單一守護者會以平常的、人性化的方式出錯——根本不需要什麼壞人。伺服器可能當機,把所有人都擋在門外。一個失誤可能悄悄地把數字弄亂。守護者可以更改規則、抬高費用,或者乾脆關門。而由於其他所有人手裡只有一張拍下來的截圖,沒有第二本帳可以用來核對第一本。
眾多副本,一套規則
核心思想就在這裡。與其只有一本主帳本,不如給每個人都發一份內容完全相同的同一本帳本。當有人想添加一筆記錄——“阿娜付給阿本 5”——他就向整個人群宣布這件事。每一位副本持有者都用同一套約定好的規則去核對它,如果通過,所有人就把那一行一模一樣地寫進自己的副本。這正是去中心化的核心:一份由人群而非老闆保管的記錄。以這種方式維護的共享帳本,就叫作分散式帳本。
副本持有者彼此直接對話,機器對機器,中間沒有任何總部——這就是點對點網路。現在再問一遍那些關於故障的問題。一台電腦當機了?還有成千上萬台依然握著這本帳本。有人在自己的副本裡亂塗一行假帳?它和其他所有人的對不上,於是人群乾脆無視它。要想改寫歷史,你得同時收買大多數素不相識的陌生人——這比施壓一個守護者難得多。
announce: "Ana pays Ben 5"
|
+-----------+-----------+
v v v
copy #1 copy #2 copy #3 ... (thousands more)
check ok check ok check ok
| | |
write line write line write line <- every book now identical“無需信任”究竟是什麼意思
人們把這類系統稱為無需信任的,而這個詞大大言過其實了。它並不意味著信任消失了。它的意思是,你不再需要去信任某個特定的人或公司會規規矩矩。取而代之,你信任的是更可核驗的東西:所有人都在執行的規則,以及成千上萬份各自獨立的副本彼此一致這個樸素的事實。信任的是系統,而不是守護者。
讓這一切得以成立的深層竅門,是讓一群陌生人在沒有裁判的情況下,就同一行新記錄、以同樣的順序達成一致。這套達成一致的程序有一個名字——共識機制——它是每一條區塊鏈的引擎。你會在下一個篇章裡正式認識它;眼下,只需記住這幅畫面:一條讓人群得以落定在同一份共享真相上的規則。
誠實地說說代價
在成千上萬個地方做同一份工作並不是免費的,假裝不是這樣並不誠實。讓整個人群去核對並複製每一筆記錄,比讓一台快速的伺服器蓋個章要更慢。它耗費更多能量與精力,因為這份工作是被重複做的,而不是只做一次。所以對日常事務來說,一個受信任的單一中間人通常更快也更便宜。
你用這份額外代價換來的,是中間人永遠無法給你的東西:一份誰也無法悄悄關停、審查或改寫的記錄。這筆交易划不划算,完全取決於這份記錄是用來做什麼的。對於一份陌生人必須在無人主管的情況下依賴的共享真相,許多人認定:值。