免費分類信息發布,從九九分類網開始!
免費發信息
九九分類網 > >

掃盲區塊鏈: Corda不是區塊鏈的分布式賬本

2019/6/30 15:09:24發布4次查看發布人:
r3和corda
說起corda,不得不提r3。r3的全名是r3cev。是一家成立于2015年9月的一家創業公司。
其中:
c 即加密技術。代表全球金融市場中加密技術和分布式總賬智能協議。e 即交易平臺。代表創新的資產交易解決方案。v 即風險投資,代表區塊鏈早期創業投資機會。以此來看,金融市場、交易所、投資,都是它要做的事情。r3最終目標是利用區塊鏈技術,解決金融領域的實際問題,來完成區塊鏈的應用落地和商業化。
說是創業公司,但是它背后的創始機構可是大有來頭,公開資料顯示,r3共有9家創始機構:
barclays,巴克萊銀行bbva,西班牙對外銀行commonwealth bank of australia, 澳洲聯邦銀行credit suisse, 瑞士信貸銀行goldman sachs,高盛j.p. morgan,摩根大通royal bank of scotland, 蘇格蘭皇家銀行state street, 道富銀行ubs,瑞銀可以說這些高大上的名字,個個如雷貫耳,聽起來也都是富得流油。實際上,到目前為之,所謂的r3聯盟已經吸引了300多金融機構入駐。其中,有23家屬于全球系統重要銀行(g- sib),也就是俗稱的“大到不能倒的銀行”。仔細研究g- sib列表會發現除了中國的幾家宇宙大行不在r3中,剩下的世界頂級銀行幾乎都加入了r3聯盟。我們國家的中國平安、友邦保險、招商銀行、民生銀行等也加入到了r3聯盟中。可以說,r3聯盟儼然成了全球金融領域的行業聯盟,勢頭格外強勁。
r3背后的金融機構
r3創始人、首席執行官david rutter有30年華爾街從業經驗,曾經是電子經紀商icap的老大。聯合創始人、首席財務官jesse edwards曾是一個投資銀行家,在投行生涯中,服務了多家大型國際金融機構和金融技術公司。聯合創始人、首席運營官 todd mcdonald在渣打銀行有14年工作經驗。三位創始人都是在傳統金融信息化行業老資歷。r3能有今天的成績,創始人的背景和人脈也是重要原因之一。
r3成立之初,最主要的工作是調研現有的區塊鏈技術怎么跟金融領域的業務特點相結合,于是做了很多區塊鏈測試的工作,測試的對象包括以太坊、chain、 eris industries、 ibm 和intel的產品。但是經過大量的測試之后,r3認為現有的區塊鏈技術,并不能適應金融業務的特點,所以著手研發自己的區塊鏈技術和產品,于是就有了corda.
為什么會有corda
corda首先是一個分布式賬本,分布式賬本是區別于中心化賬本的提法。中心化的賬本,顧名思義,所有賬本存儲在一個邏輯上的中心服務器上(中心化的服務器并不是只有一個臺機器,實踐中服務器也是集群化的、分布式的,但是邏輯上歸一方所有)。理論上,這個賬本可以被中心服務器的所有者隨意刪改。分布式賬本則不同,交易總賬是存儲于系統參與者各自的服務器上。這就使得市場中的一部分不完全信息博弈將變成完全信息博弈,沒有任一一方可以隨意篡改賬本,監管機構將可以根據總賬進行審計。從更高級的層面來說,可以打通各個金融機構之間的壁壘,使得賬本互通,所有金融機構使用同一個賬本。這就使得離柜市場和場內交易的邊界將變得模糊。運營數據分析將會更加高效可靠。
corda
在技術層面上,corda首先定位為一個“去中心化數據庫”,這一點對于理解corda的設計和實現理念是非常重要的。
首先,在概念層面,去中心化數據庫與傳統的分布式數據庫有著重要的區別:分布式數據庫仍然是一個中心化的系統,其服務目標是接收客戶端的消息來存儲數據,重點關注的是解決系統內部各個節點之間數據同步的問題。去中心化數據庫,則是相互獨立的參與方各自的私有數據庫,在一定前提條件下同步某一方面的數據,如果參與方可能有造假的可能,則無法使用分布式系統中標準的數據同步算法。因此,兩類系統的關注點、設計和實現模式完全不一樣。。
其次,在實現層面,去中心化數據庫并不限于一種特定的技術:比特幣使用的pow式的區塊鏈技術,可以認為是去中心化數據庫的一種實現方式,也是現階段獲得最多認可的一種方式,但不是唯一的方式。從這個角度講,corda通過一系列的設計,給我們帶來了去中心化數據庫的另一種實現方案,這種實現方案是為了金融業專門設計的“類區塊鏈”系統。所謂“類區塊鏈”的意思,就是corda并沒有區塊鏈的結構,但這卻是corda系統的核心價值。
交易的可見性與隱私性
corda中,每一個節點并不是像比特幣那樣保存賬本的完整副本,節點只能看到網絡中與自己相關的交易,這無疑意味著比傳統的區塊鏈更好的隱私。具體地說,節點能看到自己直接涉及的交易,以及需要驗證這些交易的前置交易。舉例來說,如果小麗創建了一個交易,消耗了她15元,同時轉給小明10元和轉給小強5元。在小麗向小明發送此交易后,小明可以檢查交易的正確性和授權,驗證輸入和輸出是否平衡以及小麗的簽名,也就說這筆交易對小明可見。僅可見這筆交易本身還不夠。小明還需要驗證小麗的10元輸入狀態是否確實存在,這意味著我需要查看創建此交易狀態的其他交易,并檢查這些交易是否正確和授權。具體來說,如果小麗的這10元錢來自于小芳轉給她的20元,那么小明也可以看到小芳轉給小麗的20元交易。依此類推,一直回到創建資產的原始“發行”交易。同時還需要驗證的交易數量取決于資產轉手的次數和向后分支的程度。
當corda節點處理交易時,它必須下載并驗證該交易的所有祖先。因此,如果交易“樹大根深”,新的交易可能需要驗證大量的祖先,從而觸發corda的可伸縮性問題。此外,如果交易包含高度雜交,則新交易的祖先可能包括網絡中的許多或大多數過去的交易。在這種情況下,corda在隱私方面幾乎沒有什么優勢。
相比之下,如果交易的歷史很“淺”,并且包含許多不相互影響的斷開的交易鏈,corda的優勢就凸顯出來了。節點永遠不需要同時驗證大量交易,并且可以對與其自身無關的大多數交易保持沉默。如果用作財務分類賬,我們可能會說corda非常適合高度分散的市場,其資產很少易手。
樹大根深的corda交易并沒有什么隱私優勢
可見,corda還遠遠沒有解決交易的機密性問題,因為節點仍然會看到一些與他們并不直接相關的交易。corda的開發人員已經意識到了這個問題,提出了一些簡單的策略。例如每個實體使用多個公鑰或通過將資產返還給發行人進行重新發布來降低可追溯性(類似于加密貨幣“硬幣混合器”)。它還提到了更先進的未來可能性,例如使用類似tor的匿名化網絡來隱藏參與者的ip地址,并利用零知識證明或英特爾的安全區域來驗證交易而不泄露其內容。雖然所有這些建議都是有效的,但它們也可以使用輸入輸出模型應用于常規區塊鏈,并且確實存在于加密貨幣中,例如dash,zcash和verge。因此,corda在機密性方面唯一獨特的優勢仍然是降低了交易可見性 ——而不是消除的交易泄露的風險—— 這是一個不完整的解決方案。
公證人機制
公證人是corda網絡交易驗證和確認的核心機制,這個機制避免了交易信息在全網廣播,這主要是為了支撐交易信息“適度可見”的能力。另一個目的是將共識機制與交易流程分開,變成一種標準服務,從而可以采用不同形態的共識實現方式,而非綁定到某種特定算法上。
公證人是有一個獨立的、交易雙方(多方)都信任的角色,可以確認交易的有效性。交易的有效性是指某項輸入數據沒有曾經或正在成為其他交易的輸入,也就是保證沒有發生“雙花”。從這個角度講,公證人機制就是比特幣的共識機制——區塊鏈——的替代物。從根本上來說,,公證人機制能夠替代區塊鏈的pow共識機制,還是corda的定位所決定的。corda并不是一個開放式的網絡,而是一個半信任的網絡,參與方和節點的加入都是可以事先經過審核的,這就很大程度上降低了攻擊發生的概率。即使存在惡意攻擊,參與方也需要付出聲譽的成本和相應的法律風險,這跟比特幣這種完全開放式的匿名網絡是完全不同的。
事實上,基于公證人進行交易確認的方式,最早是interledger提出的——由于interledger的目標是跨賬本的交易,一個“類區塊鏈”賬本系統內部的節點共識算法是無法應用在不同賬本之間的,為此必須有賬本間認可的(半)信任中介來承擔交易確認的職責,corda的技術白皮書中也確認其公證人的概念來自interledger。
公證人的具體實現機制比較簡單,交易參與方將交易發送給公證人。公證人接收到交易后,根據自己以往記錄的所有交易的輸入,查詢這個交易的輸入是否曾經出現在另一個交易的輸入項當中。如果確認這個交易的輸入項都沒發生過“雙花”,則可以簽署交易,此時交易就達到了最終生效(finality)的狀態,也就完成了。如果公證人判斷交易無效(其實就是發生了“雙花”),就會返回異常,交易也就終止了。從這里也可以看出,使用公證人來做交易確認,本質上是要把交易的所有輸入項發給他——由于系統的狀態都是不可變的,所以只發輸入項就夠了。corda網絡也要求一個交易的輸入項必須指向同一個公證人,也就是這個交易要提交驗證的公證人。如果有些狀態不是指向這個公證人,則首先要對這些狀態執行公證人變更交易來實現轉移。
此外,所謂的公證人服務,完全可以是一個集群式的網絡,其中有多個公證人節點,但是他們依賴同一個數據庫來存儲信息,或者依賴一個能保證一致性的分布式數據。換句話說,只有各自獨立運作,并不依賴一套數據存儲的公證人,才能被認為是不同的公證人服務。上面提到的狀態在公證人之間轉移,指的是真正各自獨立公證人之間的關系。
共識機制
某個公證人本身作為一個分布式系統,節點之間受到網絡的影響,可能存在拜占庭失效,這是一個技術問題。各個節點之間需要達到狀態同步或者數據一致,需要一個bft的算法,corda的共識機制討論的是這個問題。目前區塊鏈領域討論最多的共識問題實際上指的多個真正相互獨立的公證人,如果要共同參與某個交易,由于各自的信息掌握并不完整, 如何來達成共識即這個交易沒有發生“雙花”?這是一個很明顯的歧義。網上有個精彩評論從另一個角度談到了這一點:corda網絡的公證人可以有很多實現,其中比特幣就可以作為公證人機制的實現——一個全球唯一的、相對低速的notary;反過來也可以說,區塊鏈就是比特幣網絡的全局唯一公證人。
由此可見,在corda網絡中,人機制的有效性是嚴格限定在其覆蓋范圍內的,更大范圍的交易驗證,必須依賴于一個更廣范圍的人的建立,或者多個原本無關的人的協同作業。而這一點,目前在corda網絡中沒有給出參考實現或者實現方面的指導意見,因此corda網絡中人的使用、遷移和共識機制在實現層面仍有未解決/論述的問題。
數據存儲
corda數據存儲方面的架構可以說是傳統java程序員的福音,它支持通過orm的方式,將交易數據存儲到標準關系型數據庫中,并且是通過標準jpa接口。具體實現方面,corda允許通過配置jdbc連接到任何標準數據庫上。
從底層架構的角度看,corda基本就是為了方便企業應用,完全開放了底層數據結構。一個金融機構完全可以通過把corda的數據和自身業務數據放在一個數據庫里的方式,實現數據層面的直接打通——通過sql join的方式對兩部分數據進行統一查詢。corda的技術白皮書中對這種數據整合方式也是完全支持和鼓勵的,明顯是作為系統設計的一個目標,這與corda的總體目標確實是一致的,也說明corda的設計者們對于企業在采納一個新的系統時所關注的應用整合場景非常了解。
corda當中的“錢包”稱為vault(保險箱),就是存儲了所有交易的實際資產信息的地方。如上所述,保險箱作為節點的一部分,也是完全基于這個jpa機制實現數據存儲的。這樣做的好處就是上面所說的,企業完全可以在數據層面將內部信息系統與corda的保險箱打通,通過各種成熟的sql查詢模式,來實現應用整合,提升整個業務流程的開發效率,降低數據轉移、核對等成本。
corda 的優勢
第一是性能好。在區塊鏈領域,大家在絞盡腦汁比拼tps時,corda因為沒有采用區塊鏈的鏈式結構,很多“類區塊鏈”系統一樣,具有很高的tps。查詢和寫入性能也會相應高出很多。
第二是對金融業務的支持性高。corda設計的時候考慮到了適配金融領域的多項典型業務,包括但不限于銀行間轉賬,衍生品交易,貨幣基金,資產轉移等。這種對業務場景的深刻考慮,使得開發者在面對具體業務的時候,可以快速部署corda的應用。
corda 存在的問題
第一是與實際的業務需求耦合度過高。corda是專門為金融領域的業務而設計的,這種設計某種程度上屈從于現有金融業的業務模式,是一種“根據很多客戶提出需求進行設計”產生一種奇怪的產品。這種設計理念不能說它不好,但是不可否認的是,可能會因為外部環境的變化而失去生命力,開發過程中也容易糾結于無法統一各種復雜情況而陷入停滯,優劣參半。
另一方面的問題是:相較于其宏偉的藍圖,corda很多具體實現的細節層面還略顯初級。比如上文提到的隱私性的保護。當然,我們了解,除了以太坊之外,其他的類區塊鏈系統的實現也都還處于非常初級的階段,并不一定比corda更完善。但是,由于corda在去中心化數據庫的核心理念——共識機制(公證人)方面的“創新”,使得其這方面的實現必然更加為人們所關注。而恰恰是由于公證人機制,導致corda面對了很多“公證人”權力過大的質疑。“如果公證人節點作惡怎么辦”這個問題一直是corda無法直面的質疑。
最后,corda中的保險箱是存儲在傳統的數據庫中,如果保險箱數據丟失,如何恢復將是一個特別大的難題。不同于開放的公鏈系統,corda是一個準入式的網絡,如果一個節點的保險箱出現問題,整個網絡的穩定性和健壯性將會面臨很大的考研。
corda存在的意義
盡管對corda的批評聲音不絕于耳,但是我更愿意以一種積極的心態來看待這一技術。我們可以把corda看做金融業務的一次漸進式升級,而不是專注于與區塊鏈的比較。我們可以將“公證人”視為一個新型的“托管人”,這一切就看起來很有進步意義了。 在傳統的金融業務中,中介機構扮演了一個重要的角色,我們的資產托管在中介機構之中,也在中介機構之間進行流轉。實際上,從我們把錢存到中介機構到以現金形式取出來,中介機構對我們的資產具有支配權。corda的出現改變了這一點,我們仍然需要一個托管人,但是這個托管人沒有權力支配我們的資產,只對參與方之間的交易有簽署的權力。這是一個巨大的進步,讓資產的所有者不需要向中介機構讓渡資產的支配權來進行資產的流轉。
這是corda帶給我們的進步。
總結
如果我們想要持懷疑態度,我們可能會說corda的團隊設定了一項不可能完成的任務,設計一種適合銀行資的區塊鏈。但是區塊鏈相對于集中式數據庫的主要好處是去中介,這是以降低機密性為代價的。對于通過充當中間人賺錢并且對隱私高度敏感的金融機構而言,這種權衡怎么能有意義呢?從這個角度來看,人們可能會稱頌corda是一個英雄但最終不能令人滿意的妥協,即r3成員要求做區塊鏈的事情,以及它們存在的商業和監管限制。
一個好的類區塊鏈/去中心化數據庫系統,應該適度設計,具有一定的簡單性:最主要的是將p2p網絡、交易簽名驗證、拜占庭容錯與補償等核心機制進行整合,形成一個邊界清晰的系統。在此基礎上,如果特別關心性能、信息適度可見等特性,則可以引入corda或者其他系統在這方面的設計理念進行擴充。重要的是,將上述特性在系統內部給出完善的實現。通過這樣的方式,將可以構建出新一代面向價值轉移的互聯網基礎設施,將分布式計算的能力發揮到一個新的層次。
該用戶其它信息

VIP推薦

免費發布信息_免費發布供求信息 - 九九分類網
北京单场几点开奖