區塊鏈技術:密碼學、可伸縮和共識

買賣虛擬貨幣
在以前的文章中, 我們看到了一個簡單的連結串列概念如何演變為複雜的分散式系統。顯然,這是區塊鏈簡單的概念演進,但它不是分散式系統出現的唯一方式。分散式系統需要協調、容錯、協商一致和多層技術管理(在系統和協議的意義上)。
分散式系統還有許多其他複雜的問題。當分散式系統中的節點也是分散的(從所有權和控制的角度來看)時,安全性就變得至關重要。這就是複雜密碼機制發揮作用的地方。巨大的事務量使得有必要處理任何共享或複製資料的效能,從而為擴充套件、分片和驗證分散式資料的概念鋪平了道路,以確保它不會失去同步 功能或受到損害。在本節中,我們將討論一下並不新鮮的蓋簾;它們已經為人所知,並且已經研究了幾十年。密碼學分散式系統中的一個重要需求是資料和參與者的安全性。這促使了密碼技術的引入。例如,Ralph Merkle在1979年引入了雜湊值二叉樹(現在稱為Merkle樹)的概念。塊的加密雜湊值是由Stuart Haber & W. Scott Stornetta在1991年實現的。1992年,他們將Merkle樹納入他們的效率方案中。雜湊值函式是經過充分研究的標準技術,為許多現代加密技術提供了基礎,包括眾所周知的SSL證書和http協議。在SHA-1和SHA-2中使用了Merkle雜湊值函式,現在稱為merker - damgard構造。Hashcash使用SHA-1(1993年最初使用SHA-0, 1995年使用SHA-1),現在使用更安全的SHA-2(實際上由SHA-256和SHA-512組成)。更安全的SHA-3是下一步升級。
分割槽、縮放、複製和分片由於區塊鏈的核心是分散式分類賬形式的資料庫,如何處理資料庫規模快速增長的問題變得越來越緊迫。分割槽、複製、縮放和分片都是密切相關的概念。這些技術過去用於企業系統,現在被用於區塊鏈以解決效能限制。和區塊鏈一樣,這些也不是什麼新概念,因為大公司幾十年來一直在努力解決這些問題。對於不斷增長的資料庫來說,直觀而明顯的解決方案是將其分解為多個部分,並分別儲存這些部分。在這個看似簡單的解決方案的背後,隱藏著許多技術挑戰,例如,應用層如何知道將在哪個“塊”找到任何特定的資料記錄,如何在資料的多個分割槽之間管理查詢,等等。雖然這些可伸縮性問題在企業系統或已經知道並允許參與者的生態系統(例如,相當於被許可的塊鏈)中易於處理,但在公共區塊鏈中會變得更加棘手。惡意策略的排列似乎沒完沒了,而實際上也不可能事先列舉出來。需要保持合理的匿名性也增加了其解決方案的複雜性。驗證和確認零知識證明(ZKP)是一種技術,用來證明驗證者(另一方,稱為驗證者),而驗證者知道的一些東西,不需要證明者披露什麼是驗證者所知道的。(這聽起來很神奇,但是有許多簡單的例子可以說明這是如何實現的,我將在稍後的文章中介紹。)ZKP最初是在Shafi Goldwasser、Silvio Micali和Charles Rackoff於1985年發表的論文《互動驗證系統的知識複雜性》中描述的(顯然,ZKP早在1982年的時候就開發出來了,但直到1985年才發表)。Zcash是一種基於比特幣的加密貨幣,它使用ZKP(或稱為zknoks的變體,由四名研究人員於2012年首次引入)來確保交易的有效性,同時不洩露任何關於傳送方、接收方或金額本身的資訊。甚至交易本身都可以透過自動化程式碼實現,這通常稱為智慧合約。這是Nick Szabo在1996年首次提出的。儘管名稱不同,但考慮到人工智慧目前相對先進的狀態,這些自動化程式碼是否可以說是智慧合約還存在爭議。同樣,智慧合約也不完全是法律意義上的合同。例如,信用卡交易結合了大量的計算,包括檢查餘額、欺詐、不尋常的支出模式等,以及在複雜的現代金融交易網路中各方之間的服務水平協議和合約繫結,但我們通常不稱之為“智慧合約”。相比之下,當前的“智慧合約”是相當簡單的。
更多區塊鏈資訊:www.qukuaiwang.com.cn/news

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;