Coinbase前CTO:區塊鏈的優勢不只是資料
Balaji S. Srinivasan:Coinbase前首席技術官、安德森•霍洛維茨基金(AndreessenHorowitz)董事會合夥人、CoinDesk諮詢委員會成員。
以下文章最初發表在《共識》雜誌上,並獨家分發給CoinDesk 2019年共識活動的參與者。
有一種開發者聲稱,區塊鏈只是糟糕的資料庫。正如所述,為什麼不直接在應用程式中使用PostgreSQL(一個功能強大的開源物件關係資料庫管理系統)呢?
它成熟、健壯、高效能。與關係資料庫相比,持懷疑態度的人聲稱區塊鏈只是緩慢、笨拙且昂貴的資料庫,無法擴充套件。
雖然已經有人對這一批評提出了一些反駁意見,但我想用一句話來反駁:公共區塊鏈對於儲存共享狀態非常有用,特別是當共享狀態代表使用者希望匯出/匯入的有價值的資料(比如他們的錢)時。
(注:本文原名稱為:“Yes, You May Need a Blockchain”。Balaji S. Srinivasan從資料庫的角度出發,依據資料的匯入/匯出問題,將公鏈與傳統的匯入/匯出機制作對比,旨在把公鏈從加密貨幣和金融機制中解放出來,呼籲將公鏈用來表示其他型別的資料,從而擴大公鏈的通用性)
資料匯出/匯入問題
看看Amazon Web Services、MicrosoftAzure或谷歌雲的雲圖,都有用於負載平衡器、譯碼器、佇列和lambda函式的圖示。
Vpc(注:VirtualPrivate Cloud,是公有云上自定義的邏輯隔離網路空間)和各種型別的資料庫都有圖示,包括新推出的託管區塊鏈服務(它與公共區塊鏈不同,但在某些情況下可能有用)。
沒有圖示的是帳戶之間的共享狀態。也就是說,這些雲圖都隱式地假定一個實體及其使用者(即訪問雲根帳戶的實體)是佈局體系結構圖,並從它所支援的應用程式讀取或寫入應用程式的惟一實體。
更準確地說,這些圖通常假定存在一個經濟參與者,即支付雲賬單的實體。
但是,如果我們一次不只為1個而是為100個企業經濟參與者進行視覺化雲圖,就會出現一些直接的問題。這些行動者能相互作用嗎?他們的使用者能否將資料提取出來,並將其帶入其他應用程式?考慮到使用者本身就是經濟參與者,如果這些資料代表了貨幣價值,那麼使用者能確信他們的資料在所有這些匯出和匯入過程中沒有被修改嗎?
當我們把從每個實體的應用程式中匯出和匯入資料作為一級需求時,就會出現這些型別的問題。而且(除了我們會講到的例外情況),總的來說,今天這些問題的答案通常是否定的。
不同的應用程式通常沒有可互操作的軟體,或者允許使用者以標準形式輕鬆匯出/匯入資料,或者讓使用者確信他們的資料,在所有匯出和匯入過程中沒有被故意篡改或意外損壞。
原因歸結起來就是激勵。 對於大多數主要的網際網路服務來說,使用者匯出資料根本沒有經濟上的動機,更不用說讓競爭對手快速匯入資料了。雖然有些人將此稱為資料可移植性問題,但讓我們將其稱為資料匯出/匯入問題,以便將注意力集中在匯出和匯入的特定機制上。
資料匯出/匯入問題的當前方法
儘管目前還沒有為資料匯出/匯入問題的普遍解決辦法提供財力支援,但已經為許多重要的特殊情況建立了機制。這些機制包括api、JSON/PDF/CSV匯出、MBOX檔案和SFTP(可以為傳輸檔案提供一種安全的網路的加密方法)。
讓我們依次通過這些來了解當前的情況。
Api : 匯出/匯入資料的最流行的方法之一是通過應用程式程式設計介面(api) 。有些業務確實允許您提取一些資料,或者允許您將資料寫入帳戶。但這是有代價的。
首先,它們的內部資料格式通常是專有的,不是行業標準。第二,有時api不是他們核心業務的核心,可以關閉。第三,有時api是他們核心業務的核心,價格可以大幅提高。一般來說,如果您正在讀取或寫入托管的API,那麼您將受API提供者的支配。我們稱這種平臺風險為“平臺風險”,隨意去平臺化已經損害了許多初創企業的利益。
JSON : 另一個相關的解決方案是允許使用者或指令碼下載JSON檔案,或將其讀/寫到前面提到的api。就其本身而言,這很好。但JSON是非常自由的形式,幾乎可以描述任何東西。例如,Facebook的Graph API和LinkedIn的RESTAPI處理類似的事情,但是得到的卻是非常不同的JSON結果。
PDF : 另一個非常片面的解決方案是允許使用者匯出PDF。這適用於文件,因為PDF是一個開放的標準,其他應用程式(如Preview、AdobeAcrobat、谷歌Drive、Dropbox等)可以讀取它。但PDF是一種最終產品,供人們閱讀。除了PDF檢視器之外,它不打算作為任何應用程式的輸入。
CSV :逗號分隔值檔案 更接近於我們想要的資料匯入/匯出問題的通用解決方案。與專有API的後端不同,CSV是RFC 4180描述的標準格式。JSON幾乎可以表示任何東西,而CSV通常只表示一個表格。與PDF不同,CSV通常可以由使用者通過電子表格在本地編輯,或者用作本地或雲應用程式的機器可讀輸入。
因為大多數型別的資料都可以在關係資料庫中表示,而且關係資料庫通常可以作為一組可能非常大的csr檔案匯出,所以它也非常通用。
然而,csv在一些方面處於劣勢。
首先,與專有API不同,它們不託管。 也就是說,沒有一個標準的地方可以讀取或寫入表示(比方說)事務記錄或對映元資料表的CSV。其次,csv不具有抗篡改能力。 如果使用者從服務a匯出事務記錄,對其進行修改,並將其重定向到服務B,那麼第二個服務並不會更明智。第三,csv沒有內建的完整性檢查來防止意外錯誤。 例如,CSV的列沒有顯式的型別資訊,這意味著包含一年中的月份(從1-12)的列可以在匯入時自動將其型別轉換為簡單整數,從而造成混淆。
MBOX : 雖然不像CSV那麼為人所知,但是表示電子郵件訊息集合的MBOX格式最接近於為主要平臺和獨立應用程式之間的匯入和匯出構建的標準化資料結構。事實上,已經有論文提議在電子郵件之外的環境中使用MBOX。CSV表示表格資料,MBOX表示一種日誌結構資料。
它本質上是一個巨大的純文字檔案,按時間順序包含電子郵件訊息,但也可以通過MIME表示影象/檔案附件。與CSV一樣,MBOX檔案也是一個開放標準,可以匯出、本地編輯和重新匯入。和CSV一樣,MBOX的缺點是沒有規範的主機或內部資料完整性檢查。
SFTP : 還有一個數據匯出/匯入機制值得一提:安全檔案傳輸協議(SFTP)。雖然很受尊敬,但這實際上是個人之間來回傳送每筆付款的方式 。從本質上講,金融機構使用SFTP伺服器以特殊格式的檔案接收電子交易資料,並每天將其傳輸給美聯儲(fed),以實現每筆借貸的同步。
這些機制都得到了廣泛的應用。但它們不足以支援在任意經濟參與者之間(無論是企業實體、個人使用者還是無頭指令碼)對有價值的資料進行防篡改的匯入和匯出。為此,我們需要公共區塊鏈。
公共區塊鏈通過激勵互操作性來實現共享狀態。公共區塊鏈將許多型別的資料匯入/匯出問題轉換為共享狀態問題的一般類。它們這樣做的部分原因是結合了上述機制的許多最佳特性。
1、公共區塊鏈提供了與託管的公司API類似的讀寫訪問的規範方法,但沒有相同的平臺風險。沒有哪個單一的經濟參與者能夠像比特幣或以太坊那樣,關閉或拒絕為分散的公共區塊鏈的客戶提供服務。
2、它們還允許個人使用者向本地計算機或JSON/CSV/MBOX之類的新應用程式匯出關鍵資料(通過傳送資金或匯出私鑰),同時提供資料完整性的加密保證 。
3、它們為任意的經濟參與者(無論是企業、個人使用者還是程式)提供了無縫互操作的方法 。每一個從公共區塊鏈中讀取資料的經濟參與者都看到了相同的結果,任何一個有足夠資金的經濟參與者都可以以相同的方式向公共區塊鏈寫信。不需要設定帳戶,也不能阻止任何參與者進行讀/寫訪問。
4、或許最重要的是,公共區塊鏈為互操作性和資料完整性提供了財務激勵 。
最後一點值得詳細說明。像比特幣或以太坊這樣的公共區塊鏈通常記錄有貨幣價值的物品的轉移。這個東西可以是鏈上固有的加密貨幣,鏈上發行的令牌(token),或者是另一種數字資產。
因為與公共區塊鏈關聯的資料代表了某種貨幣價值,所以它最終為互操作性提供了財務激勵。畢竟,任何想要接收(比如說)比特幣的網路或移動應用程式都必須遵守比特幣區塊鏈的約定。實際上,應用程式開發人員將別無選擇,因為按照設計,比特幣有一個單一的、規範的最長工作驗證鏈,該鏈中的每個塊都經過密碼驗證。
這就是匯入的經濟動機。
至於匯出的動機,特別是涉及到錢的時候,使用者要求能夠完全忠實地、非常迅速地匯出。這不是之前他們使用的PICS(協議實現一致性說明),他們可能會因為不便或技術問題而失去聯絡。
這是他們的錢,他們的比特幣,他們的加密貨幣。任何持有它的應用程式都必須在想要提取它時將其匯出,無論是支援傳送功能、提供私鑰備份,還是兩者兼而有之。如果沒有,那麼申請一開始就不太可能收到存款。
這就是匯出的經濟動機。
因此,公共區塊鏈在經濟上鼓勵與它互動的每個經濟參與者使用與其他參與者相同的匯入/匯出格式,無論是公司、使用者還是程式。換句話說,公共區塊鏈是繼開源之後的下一步,因為它們提供了開放資料。任何人都可以通過讀取公共區塊鏈來編寫自己的block explorer程式碼,任何人都可以建立自己的錢包,使其能夠寫入公共區塊鏈。
這是一個真正的突破。我們現在有了一種可靠的方法來鼓勵使用共享狀態 ,同時允許數百萬個人和公司訪問相同的資料儲存,同時執行一個公共標準,並保持對資料完整性的高度信心。
這與現狀非常不同。通常不會在網際網路上向資料庫共享根密碼,因為允許任何人對其進行讀寫的資料庫通常會受到破壞。公共區塊鏈使用密碼學而不是許可權來解決這個問題,極大地增加了併發使用者的數量。
的確,今天的公共區塊鏈通常集中在貨幣和金融應用程式上 ,其中底層資料集表示一個僅追加的事務歷史記錄,其中包含不可變的記錄。就處理資料匯入/匯出問題的所有不同版本而言,這確實限制了它們的通用性 。
但是在公共區塊鏈版本上,如開放街道地圖、維基百科和Twitter,以及Filecoin/IPFS等系統,正在進行開發。這些不只是表示需要保持不變的金融交易記錄,還可以表示其他型別的資料(如地圖或百科全書條目),這些資料將定期更新。
如果做得對,這些基於區塊鏈的新型公共系統可以讓任何有足夠資金和/或密碼證書的經濟參與者,不僅可以讀寫自己的記錄,還可以編輯自己的記錄,同時保持資料的完整性。有了這種功能,就沒有理由不將SQL層放在公共區塊鏈之上,以處理它提供的共享狀態,就像老式的關係資料庫一樣。這導致了一種沒有特權所有者的新型資料庫,地球上所有70億人(以及他們的指令碼)都是經過授權的使用者,任何有足夠資金的實體都可以將其寫入資料庫。
那一天還沒到。我們可以在多大程度上推動公共鏈的用例,還有待觀察。規模擴張的挑戰比比皆是。但希望的是,很明顯,雖然公共區塊鏈確實是一種新型資料庫,但它們提供的內容與傳統資料庫截然不同。
作者:BalajiS. Srinivasan
編譯:共享財經NEO 責任編輯:Alian
(本文系共享財經原創,轉載請註明出處及作者)