區塊鏈科普系列——比特幣白皮書|標準共識

Overview 概述

2010 年比特幣的價格從最初 10,000 個比特幣只能買 2 個披薩(大約 30 美金),到 2017 年最高 20,000 美金一個比特幣。8 年,比特幣已經漲了 6,666,667 倍 。如此的投資收益是每個人都想獲得的,但如何抓住這樣的機遇?

Report 報告

區塊鏈設計的初衷

區塊鏈是一個綜合新興事物。需要計算機科學、密碼學、經濟學、金融學、數學、博弈論等背景知識才能理解以比特幣爲代表的各種區塊鏈項目。

當今世界我們要和其它人達成一筆交易通常需要信任第三方纔能完成交易。比如我們信任銀行,所以我們給其它人轉賬是通過銀行完成的。我們信任淘寶所以在淘寶上買東西會用支付寶支付。但淘寶、銀行這樣的第三方並不直接參與交易,只是輔助完成交易並且由於不信任,纔會在交易過程中使用銀行、淘寶。但是我們付出的代價就是增加了交易成本,付一定的費用給銀行、淘寶這樣的第三方。能不能沒有第三方參與也能安全的完成交易避免支出冗餘的成本呢?

區塊鏈設計之初就是解決此類問題。區塊鏈通過各種技術手段,建立了龐大的網絡體系,讓每個人可以在無信任的情況下安全的交易。

區塊鏈不等於通證(TOKEN)、不等於數字貨幣、不等於比特幣。比特幣這裏是指在市場上交易的有價格的,它的符號是 BTC。

通證(TOKEN)就像航空公司給大家的里程積分,每乘坐一次航班就得到對應數量的里程積分。每個航空公司都會發自己的積分,相當於每個航空公司都發行了自己通證(TOKEN)。數字貨幣相當於,你用積分換了機票,或者其它商品,這時使用的積分就相當於數字貨幣。那個最大的航空公司比如國航,它發行了最多的積分 / 通證(TOKEN),國航的積分就相當於比特幣。現在你有國航的積分,只能換國航的機票,但是你想換海航的機票那該怎麼辦呢?於是有人提供了一個地方讓把持有國航積分和海航積分的人弄到一起,幫助把國航的積分換成海航的積分。這個地方就是數字貨幣交易所。比特幣網絡或比特幣系統是指那個去中心化,不斷產生比特幣(BTC)的網絡系統。比特幣(BTC)是區塊鏈技術的第一個應用的產物。

區塊鏈技術的創造目的並不是爲了產生比特幣(BTC),更不是爲了將這東西拿到市場上出售。比特幣最初來源於一篇論文《Bitcoin: A Peer-to-Peer Electronic Cash System》。很明顯最初的目的是建立一個點對點的去中心化的交易系統。BTC 是這個系統對於各個參與節點計算交易確認的獎勵。正是因爲這個去中心化的交易系統是建立在密碼學技術上,所以交易的結果和獎勵是可信的無法被篡改,才導致了大衆媒體所過分渲染的稀缺性。纔開始了各種金融概念、貨幣概念、物流追溯。原本這比特幣系統的目的很簡單,就是建立一個總體成本更低,不需要傳統的信任基礎,不需要信任的第三方機構(如:銀行)就可以完成交易的系統。當然隨着技術發展,該技術也確實在很多地方產生了一些革命性的變化。從每人都最關心的錢 / 價格 / 投資收益看,BTC 確實從一文不值到 20,000 美金一枚,實在令人驚歎。

比特幣網絡交易過程

一旦一筆比特幣交易被髮送到任意一個連接至比特幣網絡的節點,這筆交易將會被該節點驗證。如果交易被驗證有效,該節點將會將這筆交易傳播到這個節點所連接的其他節點;同時,交易發起者會收到一條表示交易有效並被接受的返回信息。如果這筆交易被驗證爲無效,這個節點會拒絕接受這筆交易且同時返回給交易發起者一條表示交易被拒絕的信息。

比特幣網絡是一個點對點網絡,這意味着每一個比特幣節點都連接到一些其他的比特幣節點(這些其他的節點是在啓動點對點協議時被發現的)。整個比特幣網絡形成了一個鬆散地連接、且沒有固定拓撲或任何結構的「蛛網」——這使得所有節點的地位都是同等的。比特幣交易相關信息(包括交易和區塊)被傳播——從每一個節點到它連接的其他節點。一筆剛通過驗證且並被傳遞到比特幣網絡中任意節點的交易會被髮送到三到四個相鄰節點,而每一個相鄰節點又會將交易發送到三至四個與它們相鄰的節點。以此類推,在幾秒鐘之內,一筆有效的交易就會像指數級擴散的波一樣在網絡中傳播,直到所有連接到網絡的節點都接收到它。

區塊鏈科普系列——比特幣白皮書|標準共識

涉及名詞解釋

加密:公鑰和私鑰。公鑰加密,私鑰解密;私鑰簽名,公鑰驗籤。

私鑰:實際上是一組隨機數。

公鑰:對私鑰進行橢圓曲線加密算法生成,但是無法通過公鑰倒推得到私鑰。公鑰的作用是在和對方交易時,使用自己的私鑰加密信息,然後對方使用自己的公鑰解密獲得原始信息,這個過程俗稱簽名。

地址:由於公鑰太長,在交易中不方便使用,就對公鑰哈希進行 SHA256、RIPEMD160、Base58 算法加密生成地址。

對稱加密,比如:小 A 要將信息傳給小 B,但是通訊的網絡是有可能被竊聽的,爲了解決這一問題,小 A 和小 B 事先商量好一個祕鑰,小 A 用祕鑰將信息加密傳給小 B,小 B 收到信息後再用這個祕鑰進行解密,因爲加密解密用的是同一個祕鑰,所以稱爲對稱加密。但是這樣做的前提是小 A 小 B 之間要有足夠安全的通信渠道,來保證祕鑰的傳輸,顯然這是對稱加密的一個不足之處。

非對稱加密:用公鑰加密,用私鑰解密。小 A 傳信息給小 B 時,需要用小 B 的公鑰對信息進行加密,小 B 收到信息後用自己的私鑰進行解密。也就是加密和解密用的都是接收方的公鑰和私鑰。由於公鑰是公開的,發信息時只需要知道對方的公鑰,而私鑰不需要彼此透明,因爲它是用來解密的。

假設這樣一個場景:某一天,小 A 轉了 10 個比特幣給小 B,然後廣播到區塊鏈上,那其他人怎麼知道這筆交易確實是小 A 操作的呢,會不會是有其他人冒名頂替?這時候就需要用到公私鑰了,爲了解決這個問題,小 A 需要在發佈交易的時候用自己的私鑰對這筆交易進行簽名,其他人收到交易的信息之後用小 A 的公鑰驗證這筆交易簽名的正確性,來確定這筆交易就是小 A 操作的。

使用『私鑰』對交易進行簽名

比特幣錢包間的轉賬是通過交易(Transaction)實現的。交易數據是由轉出錢包『私鑰』的所有者生成,也就是說有了『私鑰』就可以花費該錢包的比特幣餘額。生成交易的過程如下:交易的原始數據包括“轉賬數額”和“轉入錢包地址”,但是僅有這些是不夠的,因爲無法證明交易的生成者對「轉出錢包地址」餘額有動用的權利。所以需要用『私鑰』對原始數據進行簽名。生成“轉出錢包公鑰”,這一過程與生成『錢包地址』的第 2 步是一樣的。將「轉出簽名」和「轉出公鑰」添加到原始交易數據中,生成了正式的交易數據,這樣它就可以被廣播到比特幣網絡進行轉賬了。

區塊鏈科普系列——比特幣白皮書|標準共識

區塊鏈科普系列——比特幣白皮書|標準共識

區塊鏈科普系列——比特幣白皮書|標準共識

比特幣關鍵技術——賬戶體系

UTXO 模型:Unspent Transaction Output (未花費交易輸出)

比特幣並不是基於賬戶的方案,而是基於 UTXO 方案。比特幣規定每一筆新的交易的輸入必須是某筆交易未花費的輸出,每一筆輸入同時也需要上一筆輸出所對應的私鑰進行簽名,並且每個比特幣的節點都會存儲當前整個區塊鏈上的 UTXO,整個網絡上的節點通過 UTXO 及簽名算法來驗證新交易的合法性。這樣,節點不需要追溯歷史就可以驗證新交易的合法性。

這個和傳統銀行賬戶的思維完全不一樣。張三擁有 10 個 BTC,其實就是當前區塊鏈賬本中,有若干筆交易的輸出(UTXO)收款人都是張三的地址,而這些 UXTO 的總額爲 10。這個地址一共收了多少 UTXO,則是要通過比特幣錢包代爲跟蹤計算,所以錢包裏顯示的餘額其實是有多少價值 BTC 的輸出指向你的地址。

支付系統賬戶模型中,會遇到常見的「雙花攻擊」,在比特幣交易系統中,沒有賬戶餘額概念,但是有某地址的淨未花費交易輸出個數,這個數值計算,從上到下掃描一遍同一地址所有的進進出出,立等可取。你只要等上 6 個區塊的確認時間,就能確保不被雙重支付,因爲這筆交易得到了全網的確認。

區塊鏈科普系列——比特幣白皮書|標準共識

Conclusion 結語

區塊鏈(Blockchain)是比特幣的一個重要概念,該概念在中本聰的白皮書中提出,區塊鏈是一串使用密碼學方法相關係產生的數據塊(稱爲「區塊」,block)。新增的數據塊總能鏈接到上一個區塊,即整條區塊鏈的尾部。比特幣點對點網絡將所有的交易歷史都存儲在「區塊鏈」(blockchain)中,所以區塊鏈可以看作記錄着比特幣交易的賬本。所以,自比特幣以來,才正式誕生了區塊鏈的概念。在系列的下篇,我們會具體探討如何抓住區塊鏈概念中的機遇。

風險提示:

  • 警惕打着區塊鏈和新技術的旗號進行非法金融活動。標準共識堅決抵制利用區塊鏈進行非法集資、網絡傳銷、ICO 及各種變種、傳播不良信息等各類違法行爲。

區塊鏈科普系列——比特幣白皮書|標準共識

來源鏈接:mp.weixin.qq.com