比特幣的發明人中本聰留下過一篇關于比特幣算法的論文。本文解析這篇論文,介紹比特幣的密碼學基礎。
比特幣是近年來互聯網金融創新最引人注目的現象之一。比特幣不需要第三方信用支撐,直接把P2P的信用基礎建立在密碼學協議之上。在經濟學上,它實踐了哈耶克提出的設想:流通貨幣應該由市場起決定性作用,優勝劣汰。在密碼學上,它解決了數字貨幣重復支付的難題。在社會學上,它已經開始形成了全球互聯網金融生態圈。在未來學上,它給我們提供了以下可能性和發展機遇:可能通過互聯網P2P形成全球貿易的“超主權”貨幣體系,可能在一些通脹異常嚴重的國家出現通縮性數字貨幣救市的現象,可能大幅度降低全球貿易的信用成本。
中本聰(Satoshi Nakamoto)在創建比特幣時,需要解決三個核心問題:
第一,交易確認,利用互聯網P2P協議,防止貨幣的重復支付(即防止造假幣)。
第二,比特幣的發行。
第三,保護比特幣系統不受惡意攻擊。通過研究中本聰關于比特幣的文獻《比特幣:P2P電子現金體系(Bitcoin: A Peer-to-Peer Electronic Cash System)》,我們可以發現,中本聰設計的比特幣,通過挖礦、記賬、算力保護,從而“一石三鳥”地解決了上述三個核心問題。
據清華大學密碼學專家王小云教授介紹,比特幣的發行(俗稱“挖礦”),是建立在SHA-256密碼系統之上的。SHA是Secure Hash Algorithm的縮寫,意思是基于哈希(Hash)函數算法的加密系統。以下我們通過解析SHA-256密碼學系統,來分析展示中本聰解決問題的方法和思路。
哈希函數是一種加密算法,一般寫為:h=hash(m),h代表哈希值,m代表對應這個哈希值的解(message)。哈希函數的特點:一是已知m,通過h=hash(m)很容易驗證出它對應的哈希值h,但反過來很難,就是已知哈希值要求出對應的解m很難。正是由于哈希函數有這樣運算的不對稱性,或者說不可逆性,所以它特別適合為密碼學所用。比如哈希值就適合當加密的“公鑰”,可以完全公開,但是人們即使得到了公鑰,也幾乎不可能一下子算出它的“私鑰”,也就是哈希函數的解m。但是反過來,如果我們已知私鑰m,卻很容易驗證它對應的公鑰就是哈希值h,這就是所謂“不對稱加密算法”。
哈希函數的第二個“寶貴”特性是:如果“解”(即私鑰)稍有不同,那么它對應的哈希值就會有很大不同,這叫雪崩效應(avalanche effect)。哈希函數所具有的這個優秀特性,保證了不同的私鑰(哪怕只有一點點差別),都不會和對應的公鑰搞混!進一步我們可以了解:SHA-256是基于十六進位制的加密系統,也就是每一位上允許有十六個比特幣的不同信息,一般用十個阿拉伯數字和前六個英文字母表示,即0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f。所以,你要是看到這樣一個十六進位的哈希
值:Hash:00000000000000004cf3aa249551432fa84da4de05e9cfc3e6d95a5ce8bed5f7,這是比特幣世界2014-02-08T 03:06:30美東時間,剛挖出的一個比特幣區塊(block)對應的哈希值,不要覺得奇怪!
之所以叫SHA-256,就是因為其哈希值有64位,每一位上有十六比特也就是二的四次方種選擇,這樣總的哈希值就可以有2的256次方個比特。
真是天文數字!中本聰把SHA-256加密算法選為比特幣的挖礦算法,因為哈希值前面每增加一個零,尋找其解m的難度就會增加二的四次方倍。因為SHA-256還沒有像王小云教授的SHA-1那樣被破解,所以任何一個六十四位的哈希值,要找到其解m,都沒有固定算法,只能靠計算機隨機的hash碰撞。一個挖礦機每秒鐘能做多少次hash碰撞,就是其“算力”的代表,單位寫成hash/s,這就是所謂工作量證明機制POW(Proof Of Work)。
正是基于SHA-256這種十六進位制的加密算法,中本聰在他最原始的比特幣論文中寫道:“工作量證明過程包括掃描SHA-256的哈希數由多少個0開頭,每增加一個0,平均工作量都會有指數級的增加,就是二的四次方,增加了多少個零就是多少個二的四次方乘在一起倍數的工作量增加,這些將在解一個哈希數(也就是挖一個比特幣區塊過程)中得到證明。”
比特幣系統就是靠對于挖礦的哈希值前面加零來控制挖幣的總量,不管全網算力如何增加,都能通過在哈希值前面加零來保證平均每十分鐘每個區塊目前都只能挖出25個幣(前四年是每十分鐘50個幣),這樣建立礦工,就自然解決了第二個問題,即比特幣發行的問題。
那么比特幣是怎樣利用密碼學挖礦系統來防止重復支付呢?就是靠這些“挖礦”的計算機算力來同時“記賬”和蓋時間戳(time stamp),每十分鐘挖出一個區塊,必須記錄這十分鐘全網的比特幣交易和給每一個交易蓋上時間戳,每一筆交易必須通過全網產生區塊的節點(node)六次確認,才能算合法交易,這樣一個龐大的記賬和蓋時間戳系統,保證了重復支付的不可行(因為每個時間戳都要檢驗再次交易之前這些比特幣沒有支付過,才會蓋上“戳”,這樣也保證原比特幣持有者無法再支付給此次交易之外的第三方了。)所以,整個比特幣系統的“挖礦”,既保證了比特幣的正常發行,也保證了它的記賬,從而避免了重復支付的可能。所謂“礦工”,同時也應該叫記賬員,特別是等到2040年比特幣大部分已經被挖出,礦工們的工作獎勵主要靠收取“交易費”時,他們就更應該被稱為“記賬員”了。
第三個問題
即保護比特幣系統不受惡意攻擊的問題,中本聰是怎么設計的呢?其實“礦工”對于比特幣世界還有一個重要的功能就是“保護”,按照中本聰最初的比特幣系統協議,必須持有全網51%算力的人,才有可能攻擊比特幣系統,并造成重復支付(也就是造假幣)。據比特幣挖礦資深人士透露,當前算力成本每年維持1G hash/s約需要240元人民幣,即現在比特幣全網算力的年成本是9.6億美元,這是保護比特幣系統的基礎力量,也是它現有價值的支撐
鏈信也作為比特幣的一種,比特幣所具有的的所有特點,鏈信CCT也是具有的,鏈信作為一家負責的公司,希望通過社交產生價值,目前已有上千萬的用戶,鏈信的成功不是一蹴而就,每一滴水加一起 可以成為一片大海 鏈信的明天會更好
-
互聯網
+關注
關注
54文章
11148瀏覽量
103224 -
P2P
+關注
關注
0文章
152瀏覽量
26714 -
比特幣
+關注
關注
57文章
7005瀏覽量
140507
發布評論請先 登錄
相關推薦
評論