引言
隨著以太坊上的區塊鏈持續受到關注,適用企業級應用的區塊鏈變得越來越迫需。人們發現基於以太坊的全部潛力,以及應用基於以太坊的平臺作為永久存儲方案,只是時間問題。因此,我們需要找到一種基於以太坊的區塊鏈標準來開發最佳永久存儲的方案。
目前還沒有基於以太坊的永久存儲區塊鏈標準。這限制了開發的寬度和基於以太坊的區塊鏈功能的廣度。儘管已經對基於以太坊的區塊鏈的某些功能做了標準化開發,但這些標準並不符合企業級應用程式所需的永久存儲性能。
ERC-20和ERC-721標準
以太坊上已經有一些標準,這些標準僅僅限於一類的價值轉移應用。例如,諸如ERC-20和ERC-721之類的代幣標準有助於在以太坊區塊鏈創建新的代幣。在這種標準下,以太坊的開發幾乎僅限於創建基於代幣的應用程式。代幣管理只處理一種類型數據:以太坊地址的特定未籤名整數。因此,代幣可以視為一種存儲以太坊地址上未籤名整數的智能合約。每個ERC-20和ERC-721代幣都有效地定義了由其開發人員定義的特定值。我們可以學習ERC-20和ERC-721標準,提出一個更高級的標準設計,這種標準能夠描述和管理分配給以太坊地址的任何類型數據。
設計一個能夠描述和管理任何類型數據的智能合約,需要開發能夠定義數據和數據結構的智能合約。ERC-20和ERC-721標準是使用最廣泛的兩個規範,僅適用於一組功能:代幣和基於coin的應用。如果要在基於以太坊的區塊鏈上開發數據驅動的應用程式,我們需要開發更複雜的智能合約。
永久存儲原則
幸運的是,永久存儲的原則早在20世紀70年代就已經建立了。儘管基於以太坊的區塊鏈架構與其他數據源之間存在許多差異,但我們仍然可以應用這些公認的原則,使基於以太坊的區塊鏈成為能夠處理任何企業級應用的永久存儲方案。我們只需要將這些原則應用於基於以太坊的協議中的去中心化應用程式。為此,我們需要定義智能合約如何分別管理數據和模式。
永久存儲技術的歷史
回顧信息系統的歷史,就能得出經過實踐的數據管理和設計原則。這些過去的存儲技術在今天仍然具有很強的借鑑性,將可能作為本研究的主幹。實現永久存儲,我們必須先回顧過去的技術開發,將其作為指南,思考出基於以太坊的區塊鏈永久存儲方案。
在20世紀60年代,為了適應不斷增長的業務需求,發明了關係資料庫。資料庫技術的大量應用促生了數字時代,公司開始將現有的業務操作和業務模型轉換為數字格式。1970年,E.F資料庫管理關係模型的發明者F Codd提出了資料庫規範化流程,通過消除數據冗餘,提高數據完整性,有效防止數據異常。即使在今天,資料庫規範化仍然是資料庫設計的最佳實踐。50多年來,關係資料庫及其完善的數據建模實踐一直是數字時代轉型的主要動力。
20世紀90年代末,在定義SGML的繼承者XML(可擴展標記語言)方面達成了共識,後者可以更好地適應網際網路。XML的主要作用是作為網際網路中不同伺服器客戶端通信的數據傳輸媒介。隨著XML的廣泛使用,人們創建了服務於不同應用場景的標準,如HTML、SVG、SOAP等。2001年,提出了定義和驗證XML數據模型結構的XML模式。XML模式使開發人員能夠指定自己的XML數據模型,並快速驗證數據模型的正確性。開發人員還進行了各種研究,從而將規範化的資料庫成熟實踐應用於XML。隨著XML的發展需要注意的一件事是,與關係資料庫一樣,XML遵守可靠的數據建模原則,以及數據與模式分離。
2008年全球金融危機,中本聰發表了一篇題為《比特幣:一個點對點電子現金系統》的論文。論文將藍圖設定在如今被稱為區塊鏈的位置,一種不可變的分布式帳本,能夠充當一個安全的點對點交易平臺。使得完全分布式的數據源可以被看作是真實的單一來源,從而消除了第三方驗證,並減少了交易時間。這一發現不僅引發了金融革命,也引發了世界其他地區的革命,因為這意味著人們不再需要依賴幾家中介機構來驗證交易。有了比特幣,貨幣網際網路誕生了,通過網際網路實現了一種高度匿名、快速的新式金融交易。過去的幾年,區塊鏈被認為是web 3.0的催化劑和主要驅動力。
2015年2月,星際文件系統(IPFS)發布。由協議實驗室的Juan Benet發明的IPFS允許用戶在點對點網絡上共享和託管數據。IPFS使用內容尋址和哈希來惟一地標識每個文件的內容。如果文件的內容更新或更改,則會有新哈希關聯到這個文件。
2015年7月,區塊鏈生態系統的重要新成員以太坊正式上線。以太坊是Vitalik Buterin的創意,它支持智能合約,賦予區塊鏈技術「無限」的功能。區塊鏈技術被認為正在成為新的網際網路。用戶現在可以用一種稱為「Solidity」的圖靈完整程式語言來編寫功能。藉助區塊鏈技術的力量和以太坊的可擴展性,任何形式的人類交易現在都可以實現數位化,無需中間人。到目前為止,以太坊是區塊鏈的第一個應用平臺,是區塊鏈生態系統中的一個重大升級——也就是區塊鏈2.0。
2015年11月,Fabian Vogenstellar提出了ERC-20代幣規範。該規範定義了6個基本功能,可以幫助在以太坊網絡中創建新的代幣。這意味著人人都可以訪問以太坊網絡,創造自己的代幣。這就建立了「無限」以太坊平臺成為頭號代幣應用平臺。各種各樣的公司通過遵循ERC-20代幣標準輕鬆地推出了自己的私募ICO。目前,以太坊生態系統的ERC-20代幣標準似乎很有可能成功且高效地將區塊鏈功能從單一加密貨幣平臺擴展到多代幣平臺。然而,以太坊的設計不僅僅是一個多代幣應用平臺,它還是一個圖靈完整且可信的分布式計算平臺,能夠將任何人類交易完全數位化,無需一種中心化機構。
2017年7月,IBM發布了名為Hyperledger的區塊鏈技術。這種區塊鏈技術支持可擴展的數據模型,主要服務於那些想要升級自己的業務,將其放到區塊鏈上的公司。Hyperledger旨在將不斷演變的商業網絡數位化,它使用了一種可升級的商業網絡應用程式,用戶可以很容易地改變其永久存儲層和商業層。Hyperledger和以太坊之間有很多不同之處,但是Hyperledger和以太坊最根本的區別是其許可架構,Hyperledger為不同的實體設置分離的數據和業務邏輯的訪問控制。
2017年10月,JP摩根發布了基於以太坊的區塊鏈Quorum,啟用一個帶有許可架構版的以太坊。私人公司現在可以開發自己的基於以太坊的私有網絡,並將自己系統轉換為基於以太坊的區塊鏈。此外,通過零知識證明保護數據隱私,允許在網絡中生成完全匿名的交易。如今,企業能夠創建他們自己的許可生態系統,以適應任何商業數位化的到來。
在2020年2月,Enigma 主網啟動。Enigma是一種基於以太坊的區塊鏈,它在加密數據上執行計算。它誕生於Guy Zyskind在麻省理工學院的論文,旨在將數據隱私引入公鏈。有了這個,用戶現在可以擁有一個保護隱私的平臺,它可以通過一個enclave(頭等倉:指定位址空間)對數據進行加密和安全處理。
這些技術徹底改變了資訊時代的商業運作方式。有一些原則我們需要注意,這些原則在推動資訊時代發展到今天的過程中發揮了重要作用。我們可以借鑑1970年的經驗,當時非常重視通過標準化過程來高效地組織數據。我們可以嘗試將數據從這個模式中分離出來,以一種鬆散耦合的方式管理資料庫更改。我們可以借鑑ERC-20代幣標準,在管理智能合約的功能方面擁有一套通用的接口,可以應用於任何類型的數據模型和數據模式。目前還沒有將基於以太坊的區塊鏈作為永久存儲解決方案的標準設計,如果需要通過基於以太坊的塊鏈創建複雜的永久存儲,我們必須首先考慮這些原則。
目標
我們可以在基於以太坊的區塊鏈之上設計永久層。特別是:
1.設計能夠強制數據規範化的合約。
2.設計數據層合約,將數據和模式分離。
3.為每個數據層合約設計通用接口。
4.設計的合約是可擴展和可升級的,通過使數據層模塊化,將每次升級的成本降至最低。