摘要:區塊鏈技術比傳統互聯網技術好在哪里它的實現原理優是什么呢筆者希望通過本文,解答大家心中的疑問。也就是說區塊鏈記賬機器完成記賬功能的基本原理是狀態機。總結區塊鏈技術的本質是通過公開的加密的不可篡改的技術手段,為解決多方信任問題提供了一個方案。
隨著比特幣、以太坊等數字貨幣的暴漲,數字貨幣的底層技術,區塊鏈技術,開始進入大眾的視野。姚勁波說:區塊鏈有可能和互聯網一樣偉大。區塊鏈技術比傳統互聯網技術好在哪里?它的實現原理優是什么呢?筆者希望通過本文,解答大家心中的疑問。
信任問題信息在互聯網上的復制和傳播成本近乎為零,這讓大家可以很輕易地發布和獲取信息。但是資產和信息是不一樣的,資產本應是不應該被隨意復制的。如果人民幣可以被隨意復制,那么人人都是億萬富翁了 :-)。
現在的互聯網和金融技術,通過搭建中心化服務器,解決了資產傳播的問題,但是成本居高不下。原因在于,當今的金融市場是建立在不同的服務提供商組成的龐大網絡上的。在這個龐大的網絡中,存在著各種互相孤立的數據系統及運作體系,這極大地影響了金融市場效率的進一步提升。在 2012 年歐洲央行的一份報告中,估計除了每個人都支付的直接費用外,間接成本高達 GDP 的 1%,大概每年 1300 億歐元。在世界銀行的報告中,跨國匯款的成本接近 8%。[1]
金融機構之間不能夠無條件地信任對方,造成了金融領域數據孤島的現象,進而導致了數字資產在互聯網上流通成本居高不下。如果金融機構能夠相互信任,那么所有的資產數據就可以在互聯網上自由流通了,也就不存在數據孤島的現象了,進而降低數字資產的流通費用。從道德上對信用的呼吁很難落到實處,有沒有解決信任問題的技術手段呢?區塊鏈技術的出現為解決信任問題帶來了一絲曙光。現在區塊鏈技術正在,除金融領域外的更多領域中進行應用,解決著這些領域內的信任問題。
信任機器利用區塊鏈技術,可以創造出一種信任機器[2]。比特幣系統就是基于區塊鏈的記賬機器;以太坊就是基于區塊鏈的智能合約機器等等。而信任秘訣在于區塊鏈的加密、公開且不可篡改的特性:
加密區塊鏈技術是以密碼學和數學為基礎的,這是信任的根本。包括,橢圓曲線數字簽名算法、非對稱加密、哈希函數、梅克爾樹等等。這些算法是密碼學、數學上公認的窮宇宙之力都難以破解的算法。區塊鏈上的數據是公開的,但這并不意味著你的秘密,可以被任何人知曉。利用這些加密算法可以保障你的數字權益,比如你的上網隱私,你的網絡文章的所有權,還有你的數字錢包里的 Token。
公開公開是贏得信任的最好手段。基于區塊鏈技術的系統的規則(程序)和數據都是公開的。任何參與方都可以通過運行區塊鏈的程序的方式加入進來,進而對數據進行驗證。從程序可靠性的角度出發,信任既可以建立在一個黑盒程序之上,又可以建立在一個開源的程序之上。從交易雙方的角度看,信任既可以建立在一個值得被信賴的第三方之上,又可以建立在自己親自驗證的基礎之上。在自己能驗證,也能依靠第三方進行驗證情況下,自己驗證更可靠;如果自己不能驗證,那就只能選擇一個值得被信賴的第三方。區塊鏈提供了一個更公開、更透明且能夠自己親自驗證的機制,因此基于區塊鏈技術的系統比黑盒和第三方更容易贏得大家的信任。
不可篡改區塊鏈技術不可篡改的特性,是數字資產不可復制的基礎。技術上來說,我們可以對任何的數據進行:增、刪、改、查。但是在基于區塊鏈技術的系統上,刪、改的操作的可行性幾乎為零。
核心原理加密技術是在區塊鏈出現之前已有的技術,本文不詳細展開。區塊鏈的最大創新,在于公開且不可篡改。本文接下來會剖析區塊鏈的核心原理,幫助大家理解為什么它是公開且不可篡改的。
狀態機我們先從最簡單的區塊鏈記賬機器開始,比如以太坊系統(比特幣系統的原理稍微繞一些,但本質一樣),實際上就是多個節點維護同一個賬本。記賬機器會在賬本上記錄每筆交易的信息。通過初始時各個賬戶的余額和已記錄的信息,就可以推斷出任意時刻的各個賬戶的余額。也就是說區塊鏈記賬機器完成記賬功能的基本原理是:狀態機[3]。舉個例子:在 state1 時,A B 都有 100;A 發起了一筆交易,支付 100 給 B,而這筆交易會被區塊鏈系統記錄下來。我們可以通過 state1 的賬戶余額和區塊鏈上的交易記錄,計算出 state2 時 A B 的賬戶余額:A 有 50,B 有 150。同理只要我們知道初始化的狀態(Genesis),并將使用區塊鏈系統記錄每筆交易,就可以算出任意時刻的任意賬戶的余額了。
雙重支付在區塊鏈技術出來之前,一直沒有很好的方法解決去中心化記賬過程中遇到的雙重支付的問題。中心化記賬指的是,一個節點(比如一臺計算機)維護一個賬本;去中心化記賬指的是,多個節點維護同一套賬本。
顧名思義,雙重支付就是同一筆錢可用于兩次支付。具體的說,就是在同一時間點,A 將 100 元,既支付給 B,又支付給 C。如果出現這種情況,A 就相當于把 100 元錢,當做 200 元錢來花了。但 B ,C 和記賬機構三者之一就會因此遭受 100 元的損失。在中心化的記賬系統中,雙重支付的事情顯然是不可能的。因為無論這兩筆交易是否同時進行,中心化的記賬系統處理這兩筆交易一定會有一個先后順序。中心化的記賬系統會先處理第一筆交易,并在 A 的賬戶中扣除 100 元,再處理第二筆交易,如果此時 A 的賬戶中沒有余額,第二筆交易就會失敗。
在去中心化的記賬系統中,會有多個記錄交易信息的節點。在上述例子中,去中心化的記賬系統中的一些節點會先收到 B 的交易信息;另一些節點會先收到 C 的這筆交易信息。在去中心化的記賬系統中,所有節點都是平等的。不存在一個統籌的節點,來決定是先處理 B 的交易還是先處理 C 交易。這就產生了去中心化記賬系統中雙重支付的問題。
解決去中心化記賬系統的雙重支付問題,可以分成兩步來討論:第一步,確定交易信息的先后順序;第二步,需要一個共識機制,來保證所有節點都認可這個順序。
第一步,確認順序的原理很簡單,就是給交易排序。確定交易順序的數據結構就是區塊鏈。“區塊鏈”中的“區塊”,指的是在同一段時間內的交易信息及相關數據的集合。“鏈”就是把區塊按產生的先后順序連接在一起。
共識機制共識機制是區塊鏈系統上獨立節點們通過遵守一套相同的規則,自發地對區塊的先后順序達成共識。這套規則可以簡單的描述為以下 3 步[4]。
所有節點質押成本(如:算力)競爭記賬權,由勝利者產出并廣播區塊(記賬信息),并獲得收益(如,比特幣)獎勵。
每個節點獨立的對新區塊進行驗證,并組裝進區塊鏈。
每個節點對區塊鏈進行獨立選擇,選擇長度最長的區塊鏈。
這個規則是如何讓獨立節點們自發地參與到區塊鏈系統的記賬之中呢?又是如何規避節點搗亂的問題呢?
第 1 步,保障了每個節點都會出于“自私”的目的,“誠實”地參與到區塊鏈系統中來。“自私”指的是,節點都是為利潤(收益 - 成本)而來。“誠實”指的是,遵循區塊鏈的共識機制。但是有利潤就會有作弊,如何防止作弊呢?這就要依靠后面兩步。
第 2 步,保障了每個節點都可以對競爭勝出的節點的記賬信息進行校驗。即便有“搗亂”節點搶到了記賬權,并記了假賬,其他節點,包括你的節點,都可以通過驗證得知是否作假。區塊(賬本)做不了假,那么有沒有可能在鏈(順序)上作假呢?也就是通過顛倒交易的先后順序,進行雙重支付。
第 3 步,保障了顛倒交易的先后順序在經濟上是不可行的。既然每個誠實的節點都選擇的是最長的鏈,那么搗亂節點能不能制造一個最長的鏈呢?當搗亂鏈的長度,超過誠實鏈的長度的時候,整個交易的順序就被顛倒過來了。在區塊鏈上,父節點只能有一個,但是子節點可以有多個,多個子節點就會有分叉,稱為 Fork。 搗亂節點可以在某個節點 Fork 原先的鏈,再用比誠實節點更快的速度,制造出一個最長搗亂鏈。這有沒有可能呢?答案是,在技術上是有可能的,但是經濟上是沒有可能的。
總結區塊鏈技術的本質是通過公開的、加密的不可篡改的技術手段,為解決多方信任問題提供了一個方案。現在區塊鏈技術離可大規模應用,還有很長的一段路要走。其中最關鍵原因是每秒確認交易的筆數太少、確認交易的時間又太長[5]。但是,換個角度思考一下,問題即機會。現在的區塊鏈就像 98 年的互聯網,未來充滿挑戰,也充滿希望。
本文首發于 58無線技術 公眾號
本文由【區塊鏈研習社】優質內容計劃支持,更多關于區塊鏈的深度好文,請點擊【區塊鏈研習社】簡書專欄:http://www.jianshu.com/c/b17f...
參考文章:
中國區塊鏈技術和應用發展白皮書
http://www.199it.com/archives...
經濟學人《The trust machine》
https://www.economist.com/new...
How does Ethereum work, anyway?
https://medium.com/@preethika...
喬延宏譯《精通比特幣(第二版)》
http://book.8btc.com/books/6/...
Fundamental challenges with public blockchains
https://medium.com/@preethika...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/23969.html
摘要:戴嘉樂去年月參與了的眾籌,從而了解到技術,獨立開發了兩款基于的開源應用,一個是與有關的系統,另一個是相關的地理位置檢索系統。現在支持的數據結構,支持比特幣以太坊的區塊數據。 戴嘉樂是前百度高級研發工程師,ipfser.org&巴比特專欄作者。戴嘉樂去年8月參與了FileCoin的眾籌,從而了解到IPFS技術,獨立開發了兩款基于IPFS的開源應用,一個是與IPFS有關的wiki系統,另一...
摘要:課程概述本課程適合希望開發自己的專有區塊鏈的語言工程師,課程內容如下第一章課程簡介簡單介紹的定位特點以及對于開發者而言與以太坊的區別。課程地址區塊鏈開發詳解 簡介 tendermint是一個開源的完整的區塊鏈實現,可以用于公鏈或聯盟鏈,其官方定位 是面向開發者的區塊鏈共識引擎: showImg(https://segmentfault.com/img/remote/1460000016...
摘要:對于區塊鏈和傳統數據技術,我認為區塊鏈技術的未來發展,主題是融合。同時數據庫在日志中更會包括事務控制等企業級能力,是區塊鏈數據結構所不具備的。因此,從安全策略上數據庫比當前的區塊鏈完善很多。 原文地址:https://www.admin5.com/articl... 作為一個數據庫行業的老兵,我看到在區塊鏈技術的熱潮下,傳統的IT技術同學們保持了十分理性,甚至是排斥的態度。其實不管是熱...
閱讀 2061·2021-09-22 15:43
閱讀 8616·2021-09-22 15:07
閱讀 1078·2021-09-03 10:28
閱讀 2052·2021-08-19 10:57
閱讀 1061·2020-01-08 12:18
閱讀 2972·2019-08-29 15:09
閱讀 1521·2019-08-29 14:05
閱讀 1639·2019-08-29 13:57