比特幣深入淺出原理講解(比特幣小課堂)

獵訊君最近發現大家不怎麼了解比特幣及其基本知識,只知比特幣這個東西存在,而且價格飛漲,所以做了這個比特幣小課堂系列,這期講的是比特幣為何出現和以及它的幾個基本屬性。

一、貨幣的演化過程

先簡單回顧一下人類貨幣的演化過程,大概有以下階段:

a. 1.0版本:自然貨幣(貝殼、牲口、金銀……)

這個階段,貨幣基於一般等價物的稀有性或者實用性,貨幣不可能出現人為操縱的超發。

b. 2.0版本:早期紙幣、銀票到本位紙幣

當貿易量越來越大,實物貨幣太不方便了,而且大家發現其實並不在意貨幣本身有什麼價值,在意的只是這麼多的貨幣能不能交換到足夠的物品,於是紙幣這種信用貨幣逐步誕生,由錢莊、地方政府逐步到中央銀行負責發行和規劃。

而紙幣本身其實是沒有任何價值的,這個階段,貨幣信心是基於國家信用或者說國家暴力,我們相信貨幣價值是能夠穩定的,雖然事實往往並不如此,但也不得不被迫接受。

c. 2.5版本:刷卡時代

這個階段其實和紙幣時代沒有本質的差別,只是現金被數字化了,國家發行貨幣也越來越簡單,只需要在人民銀行的資料庫中加幾個零,然後轉到各大銀行的賬戶上就好了。

d. 3.0版本:密碼學貨幣

可是當國家信用被刷爆,我們還可以相信什麼?事實上,凡是依賴人參與決定的事情,必然無法杜絕黑幕和私心。

其實真正可以相信的東西確實有一個,就是數學!可是,即使我們都認為數學足夠可信,可是怎樣依據數學創造出一種貨幣呢?在沒有互聯網的時代,這個問題依然無解。而現在,真正意義上的第三代貨幣確實已經誕生了,雖然還處於大多數人無法理解的概念階段。

二、比特幣到底是什麼

a. 本質:基於密碼學的公開記賬系統

百度百科是這樣寫的:比特幣是一種由開源的P2P軟體產生的電子貨幣,是一種網路虛擬貨幣。比特幣不依靠特定貨幣機構發行,它通過特定演算法的大量計算產生,比特幣經濟使用整個P2P網路中眾多節點構成的分散式資料庫來確認並記錄所有的交易行為。P2P的去中心化特性與演算法本身可以確保無法通過大量製造比特幣來人為操控幣值。

一眼看去全是黑話,非專業人士大概很難讀懂。簡單來說,比特幣系統的本質就是一個公開記賬系統。每個帳號的每一筆數額流動都被記錄在案。而且每個人手上都有一份完整的賬本,可以統計出有史以來每個帳號的每一筆流動,當然,也就能算出特定賬號當前餘額是多少。

這裡最關鍵的一點在於:每人手上都有完整的賬本,這個系統里沒有任何人有唯一決定權。這意味著沒有任何人可以決定向這個系統增加貨幣或者改變規則,因為個體的修改會被整個網路否決掉。除非有人可以修改50%以上人手上的賬本,這就是比特幣系統里所謂的51%攻擊,顯然這並不太可能出現,而且隨著網路的增大難度也隨之遞增。

b. 挖礦是在幹什麼

伴隨著比特幣發行的關鍵詞是挖礦。這實在是太讓人費解了,挖礦是在幹什麼?比特幣是從哪裡挖出來的?這著實是很科幻的一件事!

其實挖礦的本質是在爭奪記賬權。在比特幣的世界里,每大約十分鐘會向公開賬本上記錄一個數據塊,這個數據塊里包含了這十分鐘內全球被驗證的交易。但是由誰負責記提交這個記錄,是需要搶的,怎麼搶會在後面的數學部分解釋。為什麼要爭奪記賬權?因為搶到記賬權的人被允許向自己的賬戶增加一筆金額,當前的數額是25比特幣。

c. 怎麼限制發行數量

前面說到,在比特幣被創造的時候就在規則中限制大約每十分鐘只發行50個給搶到記賬權的人,而且這個數額每四年會減半,現在已經減到25個。用數學求極限,可以算出到2140年,一共會發行2100萬個,目前的發行量大概是1100萬。要改變規則,依然需要51%攻擊。當前發行量可以到這裡查詢:http://blockchain.info/charts/total-bitcoins

d. 礦池是什麼

隨著整個網路計算能力越來越強大,普通電腦的計算力幾乎沒有機會搶到記賬權了。那麼大家就組隊吧,組成一個礦池,如果礦池搶到了記賬權,那麼錢按照計算貢獻來分配。

三、比特幣的數學基礎

a. 收款地址是什麼

剛接觸比特幣的人印象最深的大概是那一串亂碼般的地址。那是什麼東西?會和別人的重複嗎?很多文章上說的私鑰是什麼?

這裡要引入第一個重要密碼學概念: 非對稱加密演算法。

通常大家概念里的加密和解密是只有一個密碼的,比如壓縮一個文件時候加上密碼,那麼解壓的時候輸入同一個密碼就可以解開了。事實上,一直到上世紀70年代,密碼學都停留在這個層面上,學名叫做對稱加密演算法。

直到70年代,兩位出色的數學家出現,他們提出了一種新的密碼學思想,就是加密和解密要用不一樣的密碼。通過數學辦法,產生一對密鑰A和B,當使用A加密一份數據,必須使用B來解密;而使用B來加密數據,必須用A才能解開;而且根據A可以很容易計算出B,反過來則不行。A就叫私鑰,B叫做公鑰。顧名思義,A是保密的,B是公開的。聽起來好像也沒有什麼特別的不是么!

仔細思考一下,就會發現這裡解決了兩個問題:

1)任何人想發一個加密文件給我,只需要用我的公鑰B加密后公開放到網路上,而且不用同時從某個隱秘渠道告訴我密碼是什麼,因為只有掌握了私鑰A的我才可以解密。

2)當我要證明一件事情確實是我發布的,只需要用私鑰A加密,然後公布出去,大家發現用我的公鑰B可以解密出來,就足以相信這確實是我公布的,因為私鑰只有我擁有。這個過程也叫數字簽名。

沒錯,錢包地址就是那個公鑰!因為公鑰和私鑰要需要使用特殊的演算法成對生成,所以不能像普通密碼一樣人為設置,而且看起來也沒有規律性。通常是安裝了比特幣客戶端後由系統自動生成。而私鑰就隱藏在錢包文件中。想詳細了解比特幣的非對稱演算法請戳:橢圓曲線演算法(http://baike.baidu.com/view/531769.htm)。

那麼地址有多少?會不會和別人碰上?這麼形容吧:如果每粒沙子裡面都有一個地球,那麼地址數大概等於地球上所有沙子裡面的地球的沙子數總和。如果你生成了一個其他人有餘額的地址,那恭喜你真的中獎了!如果願意,這筆錢就歸你了!

b. 比特幣怎麼支付

形象的比喻,比特幣的支付方式其實就是在發微博,私鑰就是微博密碼,微博用戶名就是公鑰。當A要給B付款,只需要在自己的微博上說「我給@B付款1比特幣」,然後挖礦的同學就會驗證你是不是有足夠的金額,如果驗證通過,就把你這條微博和十分鐘內的驗證過的其他微博合到一起轉發一次。當有足夠的人轉發(通常認為6個就足夠了),就認為這一筆支付成功了。

而如果你發微博說「@B支付給我1比特幣」,這顯然是非法的,沒有人會幫你轉發,因為只有擁有B的私鑰才有許可權說這句話。

當然,這個轉發行為是需要滿足一定條件才允許的,以避免你可以自己弄6個號幫自己轉發了,詳細條件見下條。

c. 如何爭奪記賬權

爭奪記賬權的辦法其實就是大家玩一個密碼學遊戲,這個遊戲叫:哈希,再具體一點叫做:SHA-256。

哈希的特點是:可以根據任意一段數據計算出一個很大的值,而且計算結果相當隨機,無法預知大小。大家比的就是在十分鐘內看誰找到一個數字和上一個數據塊的哈希以及十分鐘內驗證過的微博連起來可以算出最小的哈希值。誰算出來的最小誰就搶到了記賬權。同樣至少要小於某個值才被允許有轉發權,這個值越小對應的就是比特幣網路的難度係數越高。

由於計算結果的隨機性,所以沒有辦法優化演算法,只能從0開始一直往上算,這時候比的就是誰算的快誰就有機會先找到這個數字。

如果這十分鐘內沒搶到記賬權,就白算了,重新進入入下一輪。

擔心SHA-256被破解是嘛?事實上,擔心這還不如擔心宇宙毀滅來得靠譜些。

四、比特幣的特點

a. 我的幣在哪裡

這是很多人最困惑最不能理解的問題,我的地址裡面有了一筆金額,可是它在哪裡啊!?在我的電腦里嗎?還是在錢包里?

其實根本沒有這麼「一筆錢」存在!它無處不在實際上又根本不存在!

它存在於所有人的賬單上,大家只是知道你有這麼一筆錢,而不用關心錢在哪裡,實際上確實也並沒有任何形式的存在。好比你在乎銀行卡里的數額對應的現金放在哪嗎?其實只要我的卡能刷就夠了。而使用比特幣時也並沒有把某個幣給對方,只是使用私鑰發一個聲明「微博」。

b. 方便追蹤

因為每個人都維護著賬單,所以可以輕易追蹤到任意帳號上的資金流動。

比如最近的蘆山地震,壹基金接受比特幣捐贈,可以戳這裡(http://blockchain.info/fb/1dumifq)查詢明細,每一筆的到賬時間、數額和支出都可以清晰看到,親,這相當於直接查詢銀行內部原始賬單哦!

c. 隱私保護

雖然我們可以查詢每個帳號的流水信息,但是並沒有辦法將賬號和現實的人對應起來。只要願意,每個人都可以有幾乎無限個地址。

這是在人類歷史上,第一次從技術上保障了私人財產神聖不可侵犯、不可追蹤、不可凍結。

d. 紙錢包和腦錢包

私鑰我們通常藏在錢包文件里,事實上它同樣只是一個字元串,只是比地址略長一些,我們完全可以把它抄寫或者列印到一張紙上,然後鄭重放到保險柜里。那一個字元串就承載了你全部的比特幣財富哦!

基於比特幣更有意思的一個創造是腦錢包,這完全是超乎想象的神奇!在這個網站(http://brainwallet.org/)可以通過一句話來生成一對公鑰和私鑰。只要能記住這句話,你就可以再次根據它生成私鑰,在任何有網路連接的地方提取你的比特幣。但是千萬要選一句可以全球唯一的話,不然碰撞的機會就會大大增加了,當然,這也很容易,比如想一句:張小明和老婆趙小花的第三個兒子叫波波。大概是很難被碰撞到的。

這意味著你可以把所有的財富存在大腦里,是不是覺得足以秒殺一切!

e. 可證明和不可證明

想像一下,當你使用的是腦錢包,這個世界上將沒有任何證據可以證明你擁有這麼一筆錢,除非失憶或者死亡,這筆錢才會丟失。

同樣,也可以輕易證明你擁有某個地址上的財富。只需要使用私鑰加密一條信息發布出來就行了,大家就可以確認你對該賬戶的擁有權,而不必把私鑰公開才能證明。比特幣官方客戶端自帶這個功能。

f. 丟失無法找回

很多人想知道一件事,如果我的錢包文件丟了或者私鑰忘記了,還能找回來這筆錢嗎?

對不起!神仙也幫不了你!這裡可沒有拿身份證找回這碼事,那部分幣就永遠消失了。

其他FAQ:

a. 比特幣和Q幣的差別是什麼?

請把上面的文章重新讀一遍。

b. 比特幣是一個騙局嗎

如果看完了還認為比特幣和龐氏騙局有什麼相似之處,那就當作是騙局好了。

c. 比特幣有哪些挑戰需要面對?

大的來說有4點:政府封殺、山寨幣、黑客攻擊、可能的自身缺陷。

d. 如果網路出問題了,比特幣不就不能用了嗎

如果網路出問題了,刷卡也會不能用的。

e. 國家禁止怎麼辦?

目前的情況下,國家還沒有能力立法禁止一個人在電腦里擁有某個文件,或者禁止你記住某一句話。

f. 為什麼錢包地址的金額和blockchain上查詢的不一致?

這也是很多人困惑的地方,其實在錢包里是生成了一批地址,我們看到的只有一個,其它的是用於找零的地址,從錢包支付會自動從多個地址裡面挑選最合適金額支付的。如果要用紙錢包或者腦錢包保存,全部轉到紙/腦錢包賬號上吧。找零具體細節請參考這裡:https://en.bitcoin.it/wiki/Change

g. 比特幣超越了現有法律

是的,一切都該與時俱進,不是么

h. 比特幣意味著什麼

網路熱炒的所謂升值都是次要的,真正意義在於網路和演算法開始嘗試接管人類在金融方面的職能,可能對未來的社會架構造成深遠影響。建立在足夠連接力和計算力上的自底向上力量足以重構社會!

i. 比特幣有什麼缺點嗎

當然,不過網上談缺點的文章很多了,用一個貨幣實驗的視角去看待更適合。重要的是思想已經出現。

這期的比特幣小課堂講到這裡,相信大家對比特幣多了一些了解和自己的見解,更多小課堂知識可以關注作者,謝謝大家

你可能會喜歡