什麼是比特幣(上)

https://www.zhihu.com/video/942710742319939584

Hi 大家好,我是王可樂。今天我們來聊一個最近火的一塌糊塗的話題:數字貨幣。

提起貨幣,你可能覺得再熟悉不過了。你的錢包里放著現金,銀行里有儲蓄,還有各種理財、投資。生活中的方方面面,似乎都離不開貨幣。

從人類發明貨幣那天至今,它的樣子發生過許多重大的變化,從原始粗糙的貝殼、金屬塊,到工藝精美的銅板、金幣,再到印刷考究、凝結著無數現代科技的防偽紙幣,這些都是看得見摸得著的實體貨幣。

而到了科技日新月異的今天,貨幣早已擺脫了實體形態,成為了一串虛擬的數字,也就是數字化的貨幣。比如早晨買早點,你用微信掃碼,付給賣早點的大媽 12 塊 8;再比如上個月你借給小張兩萬二買數碼產品,中午支付寶提示你收到了小張的還款,還附言說周末要請你吃飯;下午銀行發來簡訊,說你本月的房貸已經扣除,這個月又要吃土了呢。

數字化的貨幣凝結了現代科技的諸多成果,然而它仍然只是傳統貨幣的一個替代品。自從人類政府取得了貨幣的鑄造權,大部分貨幣本身的價值和它代表的價值就不再是一個概念了。例如,一張100美元紙幣的生產成本大約是7.8美分,而數字化貨幣的成本則可能更低。

在傳統的貨幣體系里,實體貨幣的價值由中央銀行的信譽來保證。例如在金本位貨幣體系里,你相信政府的承諾,用你的紙幣可以兌換等值的黃金。而數字化貨幣的價值則和實體法定貨幣掛鉤,你相信你在銀行、支付寶、微信里的賬戶餘額,可以在相應的服務機構里兌換成實體的法定貨幣。也就是說,傳統貨幣,包括數字化的傳統貨幣,其價值基於人們對於中央銀行這種權威中心機構的信任

然而信任,並不是一件很容易達成的事情呢。如果沒有一個可信的中心機構,除了靠人品,還有什麼辦法來達成信任呢?

答案就是:多年以來,一直沒有太好的答案……

直到 2008 年,一位化名中本聰的神秘人士發表了一篇論文:《比特幣:一種點對點式的電子現金系統》,提出了一個基於區塊鏈技術的"去中心化"數字貨幣系統,它就是今天大名鼎鼎、人氣爆棚的比特幣。

比特幣不是世界上第一個不依賴權威中心機構的,所謂"去中心化"的貨幣系統,但它絕對是迄今為止世界上最成功的一個。從 2009 年比特幣系統正式啟動,到今天(2018年1月),它已經成為一個總市值超過兩千億美金的巨大體系了。

講到這裡,可能很多朋友腦子裡已經冒出了一大堆關於「比特幣」的問題。比如:

  1. 沒有一個權威中心機構,你擁有的比特幣保存在哪裡?
  2. 如何確保你的錢不會被別人拿去花?
  3. 如何保證你的賬戶餘額不會被黑客篡改呢?
  4. 比特幣怎麼發行,如何避免比特幣數量暴增帶來的通貨膨脹呢?

帶著這些問題,可樂帶你來探索比特幣系統巧妙的設計和背後的技術。

事實上,在比特幣系統中,並不直接記錄每個賬戶的餘額,而只是記錄交易流水。

例如,你的賬戶流水顯示,從古至今,你收到過一筆來自小 A 的 10 比特幣,以及一筆來自小 C 的 20 比特幣,並且這兩筆交易的收入都沒有被你花掉。那麼你就擁有來自小 A 的 10 比特幣和來自小 C 的 20 比特幣這兩條記錄。只有把這兩筆交易收入加起來,你才能知道自己總共擁有 30 個比特幣。

而假如你打算使用 25 個比特幣買套房,並且付出 0.001 比特幣的手續費。那麼你需要創建這樣一筆交易,它的輸入為來自小 A 的 10 比特幣和來自小 C 的 20 比特幣,輸出為付給房主小 D 的 25 比特幣,以及付給你自己的 4.999 比特幣找零。

現在你已經在自己的賬本上記錄下的「支付25個比特幣給小D」,那小D認不認可這筆交易呢?當然不認可。要知道,所有比特幣的參與者都可以保存一份賬本副本,如果你無法說服所有的人都幫你記這筆帳,那麼這筆賬不會受到大家的認可。

在比特幣系統中,所有參與系統的人通過網路互相連接,以平等的身份組成了一個錯綜複雜的網路,稱作點對點網路。你要做的,就是把你的交易進行簽名 ,並且廣播到這個網路里去。

那麼,問題來了。該如何給交易數據簽名,來證明這筆交易是你本人發出的呢?

在日常生活中,一個獨一無二的簽名可以證明你對一筆交易做了授權,除了少數天才,很少有人能夠精確仿製出一個簽名;而在數字的世界,複製是一件及其容易的事情,如何保證你的簽名不被別人複製,從而被用於偽造你的授權呢?

這裡可樂給大家介紹一下,計算機世界裡的數字簽名是如何進行的。首先,數字簽名技術基於一種被稱為"非對稱加密"的技術。在使用這種技術時,你擁有兩個鑰匙,一個稱作公鑰,一個稱作私鑰。在計算機的世界裡,公鑰和私鑰其實是兩個數字,這兩個數字是配對使用的。公鑰,顧名思義,是可以公開給別人的,而私鑰則是需要使用方嚴格保密的。

使用私鑰,可以對一塊特定的數據 進行一個計算,得出一個獨一無二的數字簽名。數據不同,輸出的數字簽名也不同。使用公鑰,可以對的消息,進行驗證。如果公鑰和私鑰是配對的,那麼驗證通過,否則驗證不會通過;通過私鑰可以很容易計算出配對的公鑰,而只知道公鑰卻極難推導出私鑰;正是由於公鑰私鑰這樣的性質,才使得我們可以用這種機制來進行數字簽名。

私鑰是你務必要妥善保存的,因為任何人掌握了你的私鑰,就意味著掌握了你的錢包,以及裡面的資產。而你的公鑰,事實上就是你的比特幣收款地址,其他人需要知道你的地址,才能轉賬給你。由於公鑰是一個又長又難記的數字,因此比特幣系統使用了一系列的編碼轉換,將公鑰表示成類似這樣(1NE5ZK9H4TBopmbq3jwin8uCjo1ZKZQNGx)的錢包地址。儘管仍然很難記,但是比原始的數字短了很多呢。

在真實的比特幣系統中,使用私鑰為一筆交易的輸入進行簽名,並且交易的輸出要綁定收款人的公鑰。例如,你之前收到來自小A 的10比特幣收入,小A使用了你的錢包地址,也就是公鑰來綁定這10比特幣,要求必須用這個公鑰對應的私鑰進行簽名,才可以花這筆錢。

當你打算花掉這10比特幣時,必須使用你的私鑰為它簽名。這樣,當網路中的其他節點收到你的交易信息,就可以用這10比特幣上綁定的公鑰,來檢驗你簽名的合法性。而你指定你的交易輸出為房主小D,也就意味著你使用小D的公鑰綁定了付給他的25比特幣。另外還有一筆找零,當然是綁定上你自己的公鑰了。

製作出一筆合法的交易記錄,然後簽名之後,需要廣播到比特幣網路中。那什麼又叫廣播到網路里去呢?簡單地說,就是把你的交易發送給網路中和你相鄰的計算機節點,然後這些節點驗證了你的交易簽名,又把它發送給他們相鄰的其他節點,一傳十,十傳百,最終你的交易就會被傳遍全網。

如果全世界都知道了這筆交易,那你就無法賴賬了。

這時,如果你再試圖創建一筆交易,把已經花掉的10比特幣和20比特幣當作輸入付給別人,網路中的所有人都會拒絕接受。不過,聰明的你可能會想,如果把買房的交易發給網路中一部分節點,而又用同一筆錢創建另一筆交易買豪車,發給網路中另一部分節點,那會產生什麼樣的結果呢?

這個問題就留到下個視頻再給大家解答,感興趣的朋友們,趕快掃描屏幕中的二維碼,關注我們的公眾號「可樂編程」。

那麼,下回見咯!

下期預告:《什麼是比特幣?(下)》


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


推薦閱讀:

比特幣是不是對大部分人的財富洗劫?
中本聰有能力用一句話毀滅比特幣嗎?
區塊鏈會導致銀行的消失嗎?
如何看 Google Venture 投資的比特幣交易所 Buttercoin 的關閉?
比特幣突破一萬八了,小白很想跟一把,大神們有何建議嘛?

TAG:比特币Bitcoin | 数字化货币 | 区块链Blockchain |