- 區塊鏈架構之美:從比特幣、以太坊、超級賬本看區塊鏈架構設計
- 何昊編著
- 1482字
- 2021-07-23 17:31:08
第1章
密碼學基礎
區塊鏈技術最初由中本聰在論文《比特幣:一種點對點的電子現金系統》中提出,區塊鏈技術作為比特幣的底層技術,本質上是一個去中心化的數據庫,是指通過去中心化和去信用化的方式集體維護一個可靠數據庫的技術方案。
區塊鏈技術是一種不依賴第三方,通過自身分布式節點進行網絡數據的存儲、驗證、傳遞和交換的技術方案。因此,有人從金融會計的角度,把區塊鏈技術看作一種分布式開放性去中心化的大型網絡記賬薄,任何人在任何時間都可以采用相同的技術標準加入自己的信息,延伸區塊鏈,持續滿足各種需求帶來的數據錄入需要。
通俗來說,區塊鏈技術是指一種全民參與的記賬方式。在區塊鏈系統中,系統中的每個人都有機會參與記賬。在一段時間內,如果有任何數據發生變化,那么系統中的每個人都可以通過記賬的方式將這種變化記錄下來,系統會評判這段時間內記賬最快、最好的人,把他記錄的內容寫到賬本上,并將這段時間內新增的賬本內容發給系統內其他人進行備份,這樣系統中的每個人都擁有了一份完整的賬本,這種方式,我們就稱它為區塊鏈技術。
區塊鏈技術被認為是互聯網發明以來極具顛覆性的技術創新,它依靠密碼學和數學巧妙的分布式算法,在無法建立信任關系的互聯網上,無須借助任何第三方中心化機構的介入就可以使參與者達成共識,以極低的成本解決了信任與價值的可靠傳遞難題。
從區塊鏈的形成來看,區塊鏈具有如下特點。
? 去中心化,無須第三方介入即可實現人與人之間點對點的交易和互動。
? 信息不可篡改,數據信息一旦被寫入區塊中就極難更改撤銷。例如,比特幣交易信息被寫入比特幣系統中,任何人幾乎都不能再對其進行更改。
? 公開透明,在極短時間內,區塊信息會被發送到網絡中的所有節點,實現全網數據同步,每個節點都能回溯交易雙方過去的所有交易信息。
? 去信用化,區塊鏈使用的非對稱加密技術可實現去信用化,節點之間無須信任也可以進行交易。
本書將從基本的密碼學知識開始,從P2P網絡、智能合約到共識機制逐步介紹構建出值得信賴的價值網絡所用到的技術原理。
中本聰撰寫的《比特幣:一種點對點的電子現金系統》對密碼學在區塊鏈系統中的作用有著很好的詮釋:用戶的賬戶或資產在區塊鏈上使用密碼學中數字簽名算法的公鑰進行表示,擁有這個公鑰對應私鑰的人就對相應的賬戶或資產擁有控制權。當數字資產的所有者需要使用這些資產,轉移給下一個擁有者時,需要使用私鑰對整個交易進行數字簽名,區塊鏈的其他參與節點通過公鑰驗證數字簽名合法性的方式,確認該次轉賬是否經過資產所有者的授權。
例如,在以太坊中,智能合約的地址采用SHA3算法生成,在存儲合約狀態時也用到了SHA3算法,可以說密碼學知識已經滲透到了區塊鏈的方方面面。本章不會深入挖掘各個算法的具體實現,只講在區塊鏈系統中會面臨哪些問題,利用密碼學知識如何解決這些問題。
SHA3(Secure Hash Algorithm 3)是第三代安全散列算法,該算法最開始被稱為Keccak,后來在2015年8月更名為SHA3。
從區塊鏈整體結構來看,通過本章可以了解如何在節點間建立一個安全的物理連接,保證節點間數據的可信傳輸,這是區塊鏈信任機器的基石,同時為后面章節涉及密碼學的技術做鋪墊。
想象一下,如果我們不采用任何技術手段,在一條不加密的網絡鏈路上傳輸信息可能會面臨哪些問題呢?
? 竊聽風險:黑客可能監聽雙方的通信鏈路,偷聽雙方的通信內容。
? 篡改風險:黑客可以隨意修改雙方的通信內容,使得雙方無法正確地傳遞信息。
? 冒充風險:黑客可以冒充任意一個人的身份參與通信。
可以看到,如果在一條不加密的網絡鏈路上通信是無法保證信息的可靠傳輸的,在此基礎上建立的應用也就沒有可信之說。為了解決上面的三個問題,我們需要一個密碼體系。
- 微服務設計(第2版)
- Python數據分析入門與實戰
- 潮流:UI設計必修課
- Learning Apache Mahout Classification
- OpenStack Orchestration
- NoSQL數據庫原理
- 編程可以很簡單
- 零基礎學Python編程(少兒趣味版)
- Elasticsearch Essentials
- Instant jQuery Boilerplate for Plugins
- Application Development with Swift
- 人人都能開發RPA機器人:UiPath從入門到實戰
- Test-Driven iOS Development with Swift
- ANSYS FLUENT 16.0超級學習手冊
- C語言從入門到精通(視頻實戰版)