本文是一篇深度介紹比特幣和區塊鏈知識的文章,筆者按照「自頂向下、逐次求精」的原則,用剝洋蔥的方式將比特幣和區塊鏈知識一層一層地深入剖析下去,讓讀者每剝下一層都有完整的知識收穫。

去中心化

區塊鏈原本是一種基於互聯網的信息編碼、傳輸、加密、解密、驗證技術,但在我看來,現在已經上升到了一種「去中心化」的理念,本質上是一種理念上的革新。而比特幣就是這種理念的一個具體應用。

所以,我們要理解什麼是區塊鏈,必須先理解什麼是去中心化。我舉兩個例子來幫助你理解:

第一個例子:是從網上下載電影。早期,我們下載電影都是到一些知名的電影網站進行下載,這些網站會把電影文件存放在一台或者一組伺服器上,大家都訪問這台(組)伺服器下載影片——這叫中心化。

在這個遊戲規則中,電影網站的伺服器就是中心,每一個下載電影的人只不過是這個中心拉出來的線而已。在中心化的遊戲中,每個玩家的地位是不平等的,網站主佔據絕對強勢地位,他想讓你下載就下載,想給你限速就限速。後來,一種去中心化的下載模式出現了——這就是BT下載,也叫P2P(peer to peer)下載。現在我們講到P2P,就是個人到個人,點到點。BT下載的原理與電影網站完全不同,影片並不是存在某個伺服器上,而是大家互相從網路上的臨近的用戶那裡去下載這個影片的一小部分,最後拼成一個完整的文件。

在這個遊戲中,所有玩家的地位是完全平等的,任何一個玩家都可以隨時離場、隨時加入,只要還有人在線,整個遊戲就能正常運行,沒有人擁有特別的權力。這就叫去中心化。

第二個例子,就是我們每天都在使用的銀行卡或者支付寶、微信這些人民幣支付手段,現金我們先拋開不談。我們用無現金的方式支付人民幣買東西,就是一個中心化的遊戲,它的中心有好多級,比如說,支付寶的伺服器是第一級中心,支付寶資金的託管銀行如工商銀行、中信銀行的伺服器就是第二級中心,這些銀行的再上一級中心就是央行——中國人民銀行的伺服器。

在這個遊戲中,不同級別玩家的權力、地位是不平等的,最大的Boss當然是央行,它甚至能發行貨幣,它的權力可以大到分分鐘就把我們的錢全部搶光,很簡單,它只需要突然增發貨幣就可以了,物價突然上漲一百倍,我們的錢就等於被搶光了。那貨幣遊戲能不能像下載電影一樣去中心化呢?也是可以的,比特幣系統就是這樣一個去中心化的貨幣遊戲系統,你可以把它看成是一個大型的貨幣實驗。

比特幣的遊戲是這麼玩的,就兩條核心規則。第一,它的貨幣發行不是由某個機構說了算,而是公開一套演算法,每算出一個符合要求的數字,就相當於挖到了若干個比特幣。誰都可以去算,絕對公平,誰也作不了弊,因為演算法本質上就是一個個數字去湊,湊出一個滿足條件的數據。第二,比特幣的交易信息不是記在某一台伺服器上的,而是所有參與這個遊戲的玩家電腦中一人一份,同步記錄,這種交易記錄在理論上幾乎是無法篡改的。這就是「去中心化賬本」。

這樣一來,所有遊戲玩家的地位和權力就完全平等了,幾乎沒有任何一個玩家是特殊的。為什麼要加上「幾乎」兩個字呢?因為,畢竟能夠有能力挖比特幣的那些礦主還是有點特殊的,但這種特殊性並不是太大,而且礦主也沒有任何壁壘,只要你買得起好電腦,誰都可以當礦主。

不得不說,比特幣的這個「去中心化」設計非常之妙。

理解了去中心化,就等於理解了區塊鏈。一個真正的區塊鏈項目,就是通過合理的遊戲規則設計,輔以信息技術,來踐行去中心化理念的項目。比特幣系統就是去中心化理念和區塊鏈技術的一個優秀示範項目。

不誇張地說,我覺得這是一場互聯網的理念革命,是人類的又一次平等化革命。上一次革命是打破了人與人之間在身份地位上的不平等,這一次則是打破了遊戲規則本身的不平等。正因為這樣,區塊鏈才能激發人們如此大的熱情,這是一個聽上去可以顛覆一切舊規則的新生事物。

然而,筆者認為,比特幣系統並不是一個成功的區塊鏈應用,甚至先天不足。為什麼這麼說呢?因為,看前面介紹的兩條比特幣核心遊戲規則就知道,它有以下這些天生的缺陷:

第一,比特幣客戶端軟體需要巨大無比的存儲空間,因為每一個節點都必須記錄下從比特幣系統誕生的第一天起所有的交易記錄,而且只會增加不會減少。

第二,為防止有人作弊,比特幣系統有一套很複雜的遊戲規則來確保交易記錄是真實的,這樣就導致每一筆交易的確認時間一般需要一個小時甚至幾天。

第三,最多只有2100萬枚比特幣,而且,無論有多少人在挖礦,系統規則決定了平均每十分鐘才能產出若干枚比特幣(2018年是每十分鐘12.5枚)。矛盾正如那句話:人民群眾日益增長的比特幣需求與比特幣總量不足之間的矛盾。

但比特幣不能代表區塊鏈,區塊鏈也不是比特幣。區塊鏈在未來可以有哪些應用呢?

實際上,區塊鏈解決的核心問題是信任問題。所有的金融機構,銀行、保險、券商等等,讓它們賴以生存的根本是信用,我們之所以會放心地買股票、買期貨、買紙黃金,都是因為我們信任充當交易中介的機構,而這些交易中介,就是金融活動的中心,我們寧願為此付出一定的手續費、交易費,金融機構也因此掙得盆滿缽滿。

但是,當區塊鏈在人們的觀念上和技術上都成熟後,這種中心化的金融機構是有可能被顛覆掉的,因為我們可以利用區塊鏈的理念和技術來改寫遊戲規則,讓所有的金融產品交易都不再需要一個中心,而全部以點對點的方式完成,並且從理論上能夠保證信用問題。到了那時,一定會有很多商業金融機構受到區塊鏈的衝擊。

比特幣基本原理

數字指紋和非對稱加密

去中心化的賬本還是很容易理解的,只要把所有的交易記錄都記在每一台電腦的賬本上,然後就可以用計算機的強大計算能力,隨時隨地查出每個人的餘額是多少。

但是大家不要忘了,在網路上記賬與線下記賬不同。網路上都是消息來消息去的,大家根本不見面。如果你收到一條信息,上面寫著「A支付5元錢給B」。這時,你不禁要問:

第一,如何確保這條信息內容的完整性?

第二,如何確保信息的真實性?

這兩個問題不解決,去中心化賬本的理想就無法實現。解決辦法是有的。我們先來看怎麼解決第一個問題:確保記賬信息的完整性。任何原始信息都可以轉換成一串數字,有了數字就可以做數學運算,玩出各種花樣了。

現在,我們給數學家提出一個要求:請設計一個演算法,將任何一條信息,不論長短,都計算出一個唯一的「數字指紋」與它對應。但有兩個附加條件:一、指紋的長度必須固定;二、只能從「原始信息」計算出「指紋」,誰也無法從「指紋」反向計算出「原始信息」。

有了數字指紋,就可以解決第一個問題:確保記賬信息的完整性。怎麼做?很簡單,我們只要做出一個規定,任何發出信息的一方,必須同時發出原始信息的指紋。那麼收到信息的一方只需要用公開的SHA-256演算法把原始信息也生成一個指紋,和收到的指紋比對一下,如果一致,就說明收到的信息是完整的;如果不一致,說明收到的原始信息由於某種原因被修改過了,這個原因可能是數據傳輸過程中的錯誤,也可能是被人篡改了等等。

不過,你可能也想到了,還有一種可能性,就是黑客惡意篡改。因為SHA演算法是公開的,如果有一個黑客攔截了原始信息和指紋,他把原始信息修改掉,比如把「A支付5元錢給B」改為「A支付5元錢給C」,同時生成新的指紋發送給你。這該怎麼辦呢?這就是我們要解決的第二個問題:如何確保信息的真實性?解決這個問題,等於也解決了信息發送方想抵賴的問題。

解決第二個問題的關鍵就是給指紋加密,但是,這種加密還不能是我們在諜戰劇里看到的那種電報加密的方式。大家不妨回憶一下看過的諜戰劇,我地下工作者收到一封電報,上面寫著2352,於是他從書架上拿出一本書,翻到第23頁,再數到第52個字,寫著一個「撤」字。這就是組織上通知這位同志馬上撤退,有人叛變了。這種加密方式的壞處在於,只要敵人也掌握了密碼本,不但可以破譯電報,還能發送假電報釣魚,原因就在於加密和解密的方法是完全一樣的,能解密就能加密,所以,這種加密方法被叫作「對稱加密」,解密的過程只不過是加密的逆過程而已。

「對稱加密」用在我們想要的去中心化賬本系統中就不好使了,因為我們既要讓網路上的每一個信息接收者能夠解開密文知道原始信息,又要讓黑客即使拿到密文也只能幹瞪眼,無法篡改密文。

個中關鍵,在於加密和解密的方法必須不一樣。所以,就要求數學家搞出一種全新的加密演算法,這種演算法是非對稱的,加密、解密不是互逆的過程。

能不能搞出這樣一個巧妙的加密演算法呢?當然是能的,否則就不會有比特幣了嘛。下面我用一個簡化版的非對稱加密演算法模擬一下我們想實現的效果。

原始信息是一組數字:269。

現在,我用一種只有我自己才知道的加密演算法得到一個密文:24479。

然後,我把24479告訴所有人的同時,還宣布:解開我這條密文的鑰匙就是數字11(後面我們就把這個公開的鑰匙稱為公鑰),任何人只要用24479乘以11,取結果的後三位,就能得到我想要告訴大家的原始信息。不信嗎?我們試試看:

24479×11=269269

哇,好有意思,不單後三位,連前三位都是原始信息。我是怎麼加密的呢?很簡單,我把原始信息乘以91就是密文,而這個91就可以叫「私鑰」,我私人的加密鑰匙。這樣就實現了加密和解密是完全不一樣的兩種演算法。

你可以試試看,用任意一個三位數字乘以91,得到的結果再乘以11,最終得到的結果一定是原始三位數寫兩遍。例如:218×91×11=218218。

如果用任意一個二位數字乘以91,得到的結果再乘以11,最終得到的結果後二位數字也一定與原始數字相同。例如:18×91×11=18018,至於它背後的數學原理,稍微琢磨一下就能想明白了。

但是請記住,我舉的這個例子只是讓你體會一下什麼叫非對稱加密,因為這個例子的演算法太過簡單,所以知道了公鑰是11的人,很容易猜出私鑰是91。但是比特幣系統採用的演算法比這個複雜多了,那個演算法確保了任何人即使知道原文、密文、公鑰,也無法猜到私鑰。也就是說,黑客只能解密,但不會加密,無法修改密文。

這麼牛的演算法,就是聲名遠播的「橢圓曲線演算法」,簡稱為ECC演算法。

有了這個演算法,就能確保去中心化的記賬系統中,每條交易記錄的真實性。我們來演示一下比特幣的去中心化記賬系統如何利用SHA和ECC演算法確保賬本的完整性和真實性(以下是簡化後的原理說明,真實過程還要複雜很多,但原理不變)。

例如:

需要記賬的原始交易信息:A支付5元錢給B(以下簡稱「原文」)。

第一步:利用SHA將原文生成數字指紋:

f7bb29badf05d41e60b1036d749f134a901c7a97daef7a1fe4e1e14471bd4833

第二步:隨機生成一個私鑰,它的格式與指紋是完全一樣的,例如:

18E14A7B6A307F426A94F8114701E7C8E774E7F9A47E2C2035DB29A206321725

第三步:利用ECC將第一步得到的數字指紋通過私鑰加密,得到密文:

869ac57b83ccf75ca9da8895823562fffb611e3c297d9c2d4612aeeb32850078

第四步:根據私鑰生成一個公鑰:

600FFE422B4E00731A59557A5CCA46CC183944191006324A447BDB2D98D4B408

第五步:將原文、密文和公鑰廣播到整個比特幣網路中。信息發送步驟到此結束,以下是信息接收步驟。

第六步:接收方利用ECC將密文通過公鑰解密,得到指紋1。

第七步:利用SHA將原文生成數字指紋,得到指紋2。

第八步:比對指紋1是否等於指紋2。

第九步:如果相等,則確認該條信息是合法交易信息,添加到自己的賬本中。如果不相等,則拋棄該信息。至此全部結束。在真實的比特幣網路中,交易雙方都是完全匿名的,交易者A或者B都是賬號(有些文章中稱「地址」,含義一樣),賬號背後的主人信息是沒有任何記錄的,可以是一條狗,也可以是一個人工智慧,而賬號則是根據公鑰,通過一定的演算法生成的。

一個私鑰幾乎可以生成無數個不同的對應公鑰,也就意味著可以生成幾乎無數個不同的對應賬號。誰掌握了私鑰,誰就是賬號的主人。

到此為止,我們去中心化賬本的理想只實現了一半,並沒完全實現,為什麼呢?因為還有兩個重大的問題沒有解決。

第一個問題:賬本同步問題。比特幣網路中有那麼多台電腦,一條交易信息發送出來的時候,當然不可能所有的電腦都開機,必然有一些處於離線狀態,開了電腦也未必開著比特幣客戶端,所以總有一些電腦無法立刻收到這條信息。這樣就會導致不同電腦上的記錄不同步,到底以誰的電腦記錄為準呢?

第二個問題:如何防止同一個比特幣被重複使用?假如有一個黑客,他只有一個比特幣,但是他卻同時把這個比特幣付給A和B(雖然理論上無法真正同時,但可以做到間隔時間極短),於是就會在網路上廣播兩條信息,一條是支付給A的信息,一條是支付給B的信息,因為網速的關係,必然有的電腦先收到信息1,有的電腦先收到信息2,這就產生了矛盾,如何確定哪一條信息是有效的呢?

為解決上面這兩個難題,區塊鏈技術橫空出世。

中本聰的論文真正在全世界掀起大風大浪,不是因為上一節介紹的比特幣基本工作原理——數字指紋和非對稱加密都是成熟的技術,真正讓他一戰成名的是區塊鏈技術。但請記住:比特幣不是區塊鏈,它只是區塊鏈技術的一個具體應用。

到底什麼是區塊鏈?它怎樣巧妙地解決了賬本同步和信息不重複的問題呢?

中本聰的總體思路是這樣的:比特幣網路中的所有電腦都只認可唯一的一個賬本,任何一台電腦在接入比特幣網路時,首先要同步這個唯一的賬本,任何一台電腦想要往這個賬本上寫入新的信息,必須完成一套繁瑣的「手續」,這套手續複雜到幾乎不太可能被同時完成兩次,即便真的發生了巧合,被同時完成了兩次甚至多次,也有一個規則可以判定哪條信息是合法的,哪條信息該被拋棄。

讓我一步步為你揭開區塊鏈技術的面紗。

為什麼要叫「區塊鏈」?因為中本聰把這個賬本設計成了由一個個「信息包」首尾相連而成的長鏈,每一個信息包被稱為一個「區塊」,這些區塊每一個都有唯一的編號——在比特幣系統中,編號被稱為高度(height),這些編號就是自然數1、2、3、4……一直往下排,不允許跳躍,也不允許中斷和重複。

下面講解區塊的具體規則。

第一個區塊當然是由區塊鏈的發明人中本聰親自創建的,那是北京時間2009年1月4日,在芬蘭赫爾辛基的一台小型伺服器上,第一個區塊誕生了,這也被稱作「創世區塊」(genesis block)。

從第二個區塊開始,以後每個區塊就必須嚴格按照比特幣系統的規則來創建了。區塊的規則有(至少包含以下信息):

前一個區塊的數字指紋+固定信息+收到的交易記錄+一個隨機數

區塊鏈的一個奧妙之處在於尾巴上加的這個隨機數(nonce),因為它實在太奧妙,讓我等凡夫俗子只能大呼過癮,所以後面我就把它稱為「奧數」,以方便講解。

區塊鏈的一個奧妙之處在於尾巴上加的這個隨機數(nonce),因為它實在太奧妙,讓我等凡夫俗子只能大呼過癮,所以後面我就把它稱為「奧數」,以方便講解。

中本聰規定:這個新區塊的數字指紋(一個256位的二進位數)的前72位必須全部為0。

回憶一下我們前面介紹過的數字指紋的知識。因為SHA算出來的指紋是毫無規律可循的一組數字,所以,想要滿足中本聰的這個變態規定,唯一的辦法就只能憑運氣湊奧數,從0開始不斷地去嘗試,直到滿足要求為止。這是一個純粹的概率問題。我們來算一下要滿足這個要求的概率是多大。

因為二進位數,每一位只有兩種可能性,0或者1,所以,湊出一個奧數的可能性是2的72次方分之一,也就是:

1/4722366482869645213696

這個數字已經長到看花眼了吧,它大約就是4.7萬億億分之一。換句話說,就是平均要進行4.7萬億億次SHA計算,才可能得到一個奧數,可見每一個奧數的金貴。

最巧妙的是,奧數並不是某一個方程的解,解出一個少一個,因為每一個區塊的字元串都不同,所以,每一次尋找奧數都需要從0開始,任何一個數字都有可能成為新的奧數,完全沒有規律可循。

一旦成功找到一個奧數,就獲得了一次記賬權力,可以給賬本上新增加一個區塊。那麼,為什麼要花時間找奧數,去給賬本記賬呢?因為好處實在太大了。

比特幣系統規定,每成功增加一個區塊,這台記賬的電腦(實際上是某個賬號)就能獲得12.5個比特幣的獎勵(截止到本文寫作時的獎金額),以及這個區塊中所有交易的手續費,總額取決於交易頻繁程度(平均約2比特幣)。這樣一來,相當於每找到一個奧數,可以獲得14.5比特幣獎勵,按照本文寫作時的比特幣市場價,相當於12萬美元。這麼豐厚的獎勵,自然就會吸引大量的電腦去搶奪記賬權。

尋找奧數就是搶記賬權,搶記賬權也就是挖比特幣。因此,尋找奧數也被形象地稱為「挖礦」。挖礦的電腦就叫「礦機」,一個裝滿礦機的房間當然就可以叫「礦場」了,礦場的主人就是「礦主」,他們是比特幣江湖中的弄潮兒。

但是,我需要給你解釋一下挖礦的難度,讓你打消去挖礦的衝動。個人電腦的運算速度大約是每秒可以進行60萬次SHA計算,也就意味著,一台個人電腦平均需要花一千萬年才有可能湊出一個奧數。當然,這是一種概率計算,我不能從理論上排除某人的人品超新星爆發,只算一次奧數就中了4.7萬億億分之一概率的獎。但我還是想勸你不要相信自己有那個命。

給你看看人家專業的礦場是怎樣的:

大規模的礦場據說有幾萬甚至幾十萬台礦機同時運行。我在《看看新聞》2017年6月17日的一則新聞中看到,記者採訪了一個位於中國四川的礦場,根據報道,這個礦場有5000多台礦機,屬於小規模,平均每天耗電超過20萬度,當地的電價是每度3毛,一天光是電費就6萬多元,平均每天可以挖出大約50個比特幣,一年左右回本,之後能做到20%左右的利潤。

不過我覺得這個報道中的數據前後矛盾,便查了一下,當時比特幣的市場價是大約每個2500美元,美元兌人民幣的匯率大約是6.8,所以,每天的收入大約是85萬人民幣,一年的收入大約3.1億元,一台礦機的成本均價在一到兩萬元,礦場的礦機總成本是5000萬到1億元,即使算上電費等,一年起碼有兩億的利潤。

在充分的市場競爭下,出現這種暴利的可能性很低。所以,不是記者搞錯了,就是被採訪對象吹牛不打草稿。由於比特幣的價格和全網算力的波動很大,所以投資比特幣礦場很難做長期預測,不確定因素太多。

根據我們前面掌握的比特幣知識,50個比特幣,相當於找到了4個奧數,搶到了4次記賬權。目前,整個比特幣網路的所有礦機,加起來的總算力能達到的水平,大約平均每10分鐘可以找到一個奧數,也就意味著平均每10分鐘生成一個新的區塊。當然,這個10分鐘是平均數,快一點的話三四分鐘生成一個區塊,慢一點的話15分鐘左右。

正因為奧數太難找,每個區塊平均要10分鐘才能生成一個,所以就能基本解決本節開頭提出的第一個問題「如何同步賬本」,只要有個三四分鐘的時間,足以讓所有在線的電腦同步到這個區塊了,那些不在線的電腦或者第一次運行客戶端的電腦,上線以後必須先做一件事情,就是從相鄰的節點上獲取最新的賬本。

請注意,我用了「基本解決」這個詞,也就意味著,並沒有完全解決「賬本同步」的問題。這是因為總會有極小的概率兩台礦機恰好同時(只要在網路上所有在線的節點沒有完成區塊鏈同步之前都可以算同時)找到奧數,也就意味著同時搶到了記賬權。因為礦機實在太多了,這樣的小概率事件時不時也會發生一次,同時搶到記賬權的礦機都能將自己生成的新區塊廣播到比特幣網路中。

遇到這種情況,比特幣系統怎麼處理呢?

在這種情況下,相當於網路上的其他節點收到了兩個合法的新區塊,因為網路節點的地域分布不同,所以,不同的節點收到這兩個新區塊的先後次序就會不同。此時,所有的節點會暫時保留兩個新區塊,並且把區塊鏈做一個臨時的分叉,如下圖所示:

接下來,比特幣網路中必然又會有其中一個節點(礦機)搶到了記賬權,這時該節點就會將生成的最新區塊接到其中的一個分支上,那到底是接到新區塊1,還是新區塊2上呢?系統規則是:這個節點先收到哪個區塊,就接到哪個區塊上,同時放棄另一個區塊,然後全網廣播,如下圖所示:

比特幣網路上的所有節點在收到最新的區塊鏈後,只要發現其中一個分支比另外一個分支多兩個區塊了,就立即也放棄那個短的分支。總之,比特幣網路永遠只承認更長的那條分支。

你可能會想,那如果小概率事件再次發生,在區塊鏈第一次分叉後,又是同時產生了兩個新區塊,而恰好兩個新區塊產生在兩個不同的分支上,這時候,其他節點收到的區塊鏈還是兩個一樣長的分支,那怎麼辦?很好辦,還是同樣的規則,只要分支一樣長就暫時保留,直到出現兩個分支不一樣長時,就放棄短於兩個區塊的,保留長的。那個被放棄的分支中所有交易和比特幣獎勵都會被判定為無效。

因為有了這個臨時分叉的規則,所以,比特幣玩家在完成一筆交易後,不能立即認為這筆交易是成功的,有可能會被取消,必須等到一定數量的新區塊生成後,如果交易依然沒有被取消,這才能放心地認為交易成功了。那到底要等到多少個新區塊產生才能放心呢?

但是小額交易確認的時間往往會更長,甚至長達好幾天。聽到這個你可能會有點兒糊塗,剛才不是還說小額交易一般只要三個新區塊產生就夠了嗎?怎麼確認時間反而會更長呢?比特幣網路剛剛誕生的頭幾年,確實不會出現這樣的怪事,但是這幾年隨著交易量的猛增,就會出現這種怪事了。為什麼?先回憶一下每個區塊的規則:

前一個區塊的數字指紋+固定信息+收到的交易記錄+奧數

你的交易記錄要被寫到區塊鏈上,有一個前提:礦工將你的這筆交易記錄打包到這個區塊上。你可能想問:為什麼會不打包?難道系統規則還允許不打包嗎?打包成功了不是還要給礦工交稅嗎?礦工好不容易搶到一次記賬權,怎麼會有錢不賺呢?

是的,允許不打包。原因不是礦工不想賺錢,而是「不可抗力」,關鍵問題是每一個區塊允許存儲的數據量有限。中本聰當初設計比特幣系統時,規定了每一個區塊最大只能是1MB,一條交易記錄大概是0.25KB,那麼一個區塊最多可以儲存4000多條交易記錄,如果在一個新區塊產生的時段中,發生的交易請求超過4000條,那就肯定存不下了。我們可以算算,這個量大概是一個怎樣的交易頻率,每個區塊的平均產生時間是10分鐘,也就意味著,平均每秒鐘的交易量如果超過7條,那麼就一定會出現排隊等待打包的交易記錄了。這個交易頻率實在很低,要知道支付寶一秒鐘大約要處理上萬筆交易。這一秒鐘七筆交易對於全球來說,實在是太不夠用了。

一般來說,大額交易優先打包,小額交易中手續費越高的交易越優先打包,打包規則礦工有一定的自主權。比特幣交易手續費的規則比較複雜,不同的礦工收的還不一樣,不是三言兩語能說清,但有一點可能會讓你感到詫異,越是大額的交易反而收費越低,甚至免費。交易額越小反而費率越高。這是因為,交易手續費除了鼓勵礦工挖礦,還有一個非常重要的功能,就是防止有人惡意發布大量的小額交易造成信息擁堵。

現在,比特幣交易滯留是非常普遍的現象,很多小額交易甚至等上好幾天都確認不了,因此,很多人不惜附加很高的交易手續費來讓礦工提前替他們打包。

到這裡,有關區塊鏈的核心原理就講完了,關鍵要記住,中本聰利用區塊鏈技術,巧妙地解決了賬本同步和信息不重複的問題,這就使得去中心化賬本的理想最終得以實現。

weixin.qq.com/r/3ihpcXX (二維碼自動識別)


推薦閱讀:
相关文章