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