比特幣的最少必要知識
現在大家都知道比特幣的底層技術區塊鏈本質上是一個通過分散式維護,實現不可篡改的資料庫,但是要真正理解比特幣,只知道這個顯然不夠,所以這裡整理了比特幣的最少必要知識(也就是最重要的幾個點)供參考。
1.雙重支付(雙花問題)
說明:雙重支付,顧名思義就是一筆錢支付了兩次,這是支付系統絕不允許的,是支付系統必須解決的問題。如果一筆交易被網路上的大多數節點記錄,這筆交易才是合法的,這樣雙重支付就變得不可能了。
解決問題:比特幣其實就解決了防雙花這一個問題,不過是用了一種去中心化的方式解決的,解決的方式結合了多種技術。
2.非對稱加密
說明:公鑰加密,只能用對應的私鑰解密。公鑰對所有人公開,私鑰只有自己知道。
解決問題:這樣就可以放心的公開傳輸用對方公鑰加密後的信息,而不用擔心信息被其他人竊取,因為只有他的私鑰可以解密。
3.哈希演算法
說明:數字世界有0和1組成,所以也叫比特世界。好的哈希演算法可以保證網路里的所有文件都有唯一對應的哈希值。
解決問題:哈希演算法解決區塊信息快速編號和定位的問題,以及防篡改問題。因為一一對應,只要文件信息被篡改,哈希值就會完全不一樣,因為區塊鏈環環相扣,只要一個值變化,後續區塊都會受影響。
4.數字簽名
說明:數字簽名是只有信息發送者才能產生的「簽名」(其實是一串獨有的字元串),因為只能通過發送者的私鑰產生。
解決問題:非對稱加密解決發送給誰的問題,數字簽名解決是誰發送的問題。
5.P2P
說明:這個應該不用講了,既然是分散式的資料庫,自然需要多個節點來維護,"即使沒有中心也能運行的"P2P技術是區塊鏈的根基。
需要說明的是,現在微信、微博、還有一些社區這類互聯網產品被認為是鏈接點對點的去中心化產品,還有支付寶,但這些都不算真正的去中心,都有一個第三方機構在提供中間服務,真正的去中心靠共識維持,動力來自底層節點。
6.工作量證明(POW)
說明:區塊鏈需要很多節點來共同維護,這就需要有激勵,挖礦的幣和手續費就是激勵,誰能拿到這些幣,需要得到大家共同的認同,這就是共識機制,工作量證明是比特幣的共識機制。
解決問題:共識機制解決了token分配的問題。因為工作量證明完全拼算力,所以攻破比特幣系統只能靠極大的算力支持,雖然耗電,但是這也成了比特幣的重要保護機制,保證了比特幣的安全性。
7.UTXO(未花費的交易輸出)
說明:比特幣沒有「餘額」的概念,記錄餘額需要每次更新所有人的餘額表,即便你的賬戶沒有變動,這是為了防止雙重支付。但是這會造成大量信息冗餘,而UTXO只確認交易本身,需要的資料庫小得多。
解決問題:比特幣運行了9年多,全部交易記錄才幾百G,支付寶相同時間多交易記錄至少幾百個T了吧,普通節點根本無法維持。如果早期需要這麼大的資料庫,比特幣是發展不起來這麼多節點的,所以說UTXO是比特幣的一個「必要」應該沒有問題。
8.SPV(簡單支付驗證)
說明:如果確認每次交易都需要下載全部賬本(幾百G),那麼效率有點太低了。礦工把一個區塊所有交易信息的哈希值通過兩兩結合的方式濃縮成最後一個哈希值,形成一個樹狀結構,只需要頂部一個哈希值就包含了該區塊鏈所有交易驗證信息。
解決問題:只需要下載全部區塊頭,差不多40M,就能驗證所有支付。
9.機制設計 vs 51%攻擊
說明:理論上如果一個節點的算力達到51%(據說實際只需要超過30%)就能修改交易記錄使自己受益,比如支付了100個比特幣,然後自己操作抹掉這個交易,是100個比特幣回到了自己的賬上。其實已經有節點的算力可以發起51%攻擊,那麼為什麼沒這麼做呢?
解決問題:我們假設你花了幾百億的資金獲得了可以操控比特幣網路的算力,然後你有兩種選擇:1.發起51%攻擊,使比特幣喪失信任價值歸零;2.用算力去挖礦,賺取更多的利益。答案似乎很明顯。所以,保護比特幣的不是礦工,而是人性。中本聰設計的機制可以讓所有強大的算力機構老老實實的按照他設計的路線執行。
區塊鏈最難的其實不是技術問題,最難的是機制設計,如何讓所有節點可以享受挖礦利益的同時,不會為了利益去作惡。
最後順帶一提,除了雙花問題,還有一種隱性的雙重支付,就是貨幣增發,如果一個人可以發行貨幣,就一定會增發,這是人性。所以比特幣除了解決傳統靠中心化機構才能解決的雙重支付的問題,還解決了傳統貨幣無法避免的通脹問題。
推薦閱讀:
TAG:貨幣 | 經濟 | 比特幣Bitcoin |