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