【學習筆記,不為投資參考】
Cardano is a decentralised public blockchain and cryptocurrency project and is fully open source. Cardano is developing a smart contract platform which seeks to deliver more advanced features than any protocol previously developed. It is the first blockchain platform to evolve out of a scientific philosophy and a research-first driven approach. The development team consists of a large global collective of expert engineers and researchers.
Cardano是一個旨在通過學習和改進比特幣和以太坊社區的經驗教訓,創建下一代智能合同平台和生態系統的項目。該項目聲稱是“第一個從科學理念演變出來的區塊鏈平台,是一個以研究為先導的方法”。該項目的目標包括改進的可擴展性,安全性,治理以及與傳統金融系統和法規的互操作性。鑑於Cardano的設計重點和實現這些目標的方法與以太坊有所不同,Cardano的創新可以直接與以太坊的創新進行比較。
像以太坊一樣,Cardano擁有一個資助的非營利組織Cardano Foundation,它支持協議的研究和開發以及社區發展。這項研究和開發的大部分目前都是由營利科技公司IOHK領導,與多所大學的研究人員一起工作。Charles Hoskinson和Jeremy Wood早期都參與了Ethereum項目,但在2014年離開後發現了IOHK。大部分IOHK的資金來自與區塊鏈應用程序公司Emurgo簽訂的為期五年的合同,該公司正在尋找一個更好的平台支持監管。
Cardano的Ada Token籌集了大約6200萬美元。Ada Token以Ada Lovelace的名字命名,Ada Lovelace是一位19世紀數學家,被認為是詩人Lord Byron的第一位電腦程序員和女兒。Cardano的第一個主要版本,Bryon (詳Roadmap),於2017年9月29日上線,啟動了Cardano主網。
儘管擁有一個活躍的主網絡,使得Cardano在迄今為止所有的Ethereum挑戰者中領先一步,但Cardano在部署技術方面仍然落後於Ethereum。Cardano網絡仍然處於引導狀態,所有共識節點都在IOHK和合作夥伴的控制之下,沒有智能合同支持,還有許多重要的創新仍在開發中。但是,這些創新在IOHK廣泛的研究圖書館,在線文檔以及同行評審的學術期刊中都有詳細記錄。這給了我們一個比較Cardano和Ethereum的極好的基礎,讓我們來深入細節。
性能和可伸縮性
到目前為止,我們所看到的所有平台都利用某種形式的權益證明(PoS)共識來實現快速,確定性的封鎖時間,Cardano也不例外。Cardano中使用的Ouroboros協議是一個基於鏈的PoS協議,在每個時隙中,從一個利益相關者池中隨機選擇的一個領導者生成下一個鏈接,鏈接到鏈中的前一個鏈接。與BFT風格的PoS算法不同,在驗證者完成(即永久同意)塊生成時,塊越來越可能成為規範,因為在它們之上建立了更多塊(如工作證明方案)。
任何利益相關者被選為領導者的可能性與他們的股權規模成正比 - 他們控制的所有硬幣的百分比,無論是直接擁有還是通過授權。由於交易是以塊形式記錄的,因此用於領導者選擇的利益分配(即利益相關者集合及其各自的股份)變化。為了處理不斷變化的利益分配問題,Ouroboros將一個時代的概念定義為固定利益分配的一些時段。它是硬編碼的(在最初的引導階段)或(在後來的階段)從區塊鏈的快照計算出來的,在一個足夠深的塊中。在每個時代開始時,選擇一組領導者,並且每個領導者都被賦予在特定位置產生一個組的權利。
為確保領導者獲得激勵,始終遵守協議,Ouroboros通過交易批准引入了對塊生產的檢查。在每一個時期,一組輸入代言人被分配到每個時隙的基礎上。投入代言人負責批准交易,包括在領導者製作的塊中。領導者的區塊只有在其中包含的所有交易已經由合格的投入代言人認可的情況下才有效。每個時代都會獎勵領導者,投入支持者和MPC參與者,以確保當所有參與者都是理性的時候遵循協議是一個均衡。
這種經濟回報結構使得協議作者能夠開發出關於系統性質的多個證明,這導致IOHK將Ouroboros作為“第一個可證明的關於證據的證明算法”。所提出的安全性和活性證明基於部分假設同步網絡,誠實的節點可能離線的時間上限。這些假設對於Emurgo設想的許可區塊鍊和商業應用程序來說可能效果不錯,但對於無權限的世界計算機來說也許不是那麼好(批評)。The assumptions underpinning Ouroboros security have been criticized as “unrealistic”, “impractical for a global blockchain”, and “way too convenient”.
上面最後一個批評來自 Vlad Zamfir ,他是領導以太坊Casper正確建造(CBC)協議研究的。與Cardano的做法相反,Casper CBC旨在解決可能發生在公開區塊鏈上的錯誤,而不是做出可能只適用於許可鏈的假設。
鑑於Ouroboros和Casper CBC都採用經濟回報來實現安全和活躍,卡斯帕還納入基於錯誤歸因的處罰。 Casper 被證明是安全的,沒有任何同步的假設,它可能被證明生活在部分同步。此外, Casper 不受任何限制地處於離線狀態,並處理來自多數聯盟的攻擊。卡斯帕CBC的設計考慮到可能發生在開放的公共區塊鏈上的錯誤,而不是做出可能只適用於許可鏈的假設。Ouroboros和Casper CBC都沒有被部署在一個開放的公開區塊鏈上,並且有重要的資產。
Cardano希望用Ouroboros來擴大規模的另一種方法是把交易分成不同的選舉領導人。根據Cardano的願景文件,這是“微不足道”的事情。然而,目前似乎還沒有任何關於來自不同分區的塊如何配合在一起的附加信息,或者輸入支持者將如何協調以防止跨分區的雙重花費。以太坊的EIP 648描述了一種並行化事務處理的機制,該機制在現有塊結構中起作用,因此可以在Cardano完成之前部署。
Cardano的願景文件暗示使用類似的技術來實現分片,但還不清楚在這方面已經取得了多少進展(如果有的話)。Sharding正在Ethereum社區進行積極的研究,但距離生產還有幾年的時間。對Cardano和以太坊來說,Sharding是如此之遙,以至於目前這兩個項目都沒有明顯的優勢。
由於期望交易吞吐量非常高,Cardano希望建立一個可擴展的網絡,不要求每個節點都處理每個事務。他們的計劃是使用遞歸網絡架構(RINA)技術來實現這一點,儘管迄今為止還沒有提供太多細節。
目前來說,可擴展性和性能是以太坊的主要問題,其擴展解決方案處於研究和開發的不同階段。雖然Cardano已經提出了一些擴展的想法,但實現還有很長的路要走。部署了Byron版本的Ouroboros的第一個版本是完全集中的,只有IOHK控制的節點參與達成共識。通過授權的社區參與將從Shelley發布(2018年)開始,縮放的工作將持續到2019年和2020年。所以目前還不清楚Cardano是否能夠在Ethereum上獲得實用的性能和可擴展性優勢,以及在未來2 - 3年內如何發展。
治理
Cardano項目旨在學習和改進比特幣和以太坊的治理機制。我們的目標是創建一個更正式的流程,減少比特幣流程的僵局,而不會形成以太坊社區分裂所指責的集中治理。對比特幣和以太坊的非正式治理過程的批評是非常主觀的,但是由於未能就治理問題達成一致,兩者都經歷了艱難的分歧和社區分裂。
像Tezos,DFINITY和其他試驗分散治理流程的平台一樣,Cardano打算提供上鍊機制來做出有關協議未來的決定。我們的目標是防止社區分裂,並通過制定明確的決策流程來跟上創新的步伐,讓每個人都能接受。假設是,如果用戶覺得代表一個公平的“法治”系統,他們可能不太可能訴諸於簡單的協議變更,更有可能保持投入,即使他們沒有得到他們的方式。Cardano計劃通過制定一個章程,詳細闡述協議更新機制,以及以透明和無審查方式創建和投票Cardano改進建議的計劃。
Cardano希望實現自動化的一個關鍵治理問題是平台可持續性 - 分散式Cardano社區可以繼續支付所需物資的機制。現在Cardano和Ethereum都有資金充足的基金會,為特定的發展和社區建設項目提供資金。如果證明一次性ICO籌集的資金沒有為這些組織提供永恆的資金來源(我知道是不可想像的),Cardano有一個計劃。這個並不新鮮的想法是建立一個由交易費資助的財務系統,以支持未來的發展。利益相關者通過對擬議項目進行投票決定如何使用國庫資金(即Cardano改進建議)。
Cardano希望實現一個長期的願景,表達Cardano改善建議方面的機器可理解的規格,可以使用軟件工具進行測試和驗證。隨著Shelley發布平台,一個不那麼雄心勃勃的治理流程就開始了,IOHK提出了所有的改進建議,並演變為提供“越來越好的機制來獲得他們的同意”。
一般而言,民主進程中有一些眾所周知的問題,尤其是在鍊式投票方面。無論投標書是機器可以理解的還是只讀的,它們都是高度技術性的,不太可能被普通利益相關者完全理解。利益相關者的投票將通過抽象的解釋,從一個小技術的少數民族,了解如何提案真正的工作。獲得足夠的用戶參與,使任何投票的結果是整個社區的代表也是一個挑戰。如果採用某種形式的委託投票,它可以給代表(如股份庫)的小卡特爾太多的權力來改變規則,以犧牲其他用戶的利益為代價。
以太坊的PoS研究員 Vlad Zamfir (Vlad Zamfir )闡明了PoS中以股權為基礎的投票之間的區別,該投票提供的權力最小,濫用權力受到嚴厲處罰,以及以投標方式進行以股權為基礎的投票,提供最大的權力,基本上不負責任。他認為,在鍊式投票是危險的,因為它迫使整個節點的規則變化,消除了由知情節點操作員提供的重要的檢查和平衡。同樣,以太坊創始人Vitalik Buterin 認為,由於這些已知的問題,利益相關方投票系統不應該成為所有治理的單一機制,而只是一個由礦工投票,用戶投票,核心開發人員,並建立了規範。
Cardano提出的基於利益相關者投票的鏈上機制是否可以克服這些挑戰,以促進協議演進並將社區綁定在一起,這仍有待觀察。在短期內,以太坊不那麼正式的外鏈程序似乎不會妨礙創新,也不會為了使用戶完整而製定有爭議的硬性分支。當Ethereum創始人兼思想領袖Gavin Wood創立的Parity公司發布了一個硬分叉的建議,通過刪除的合同重新啟動了超過50萬個被凍結的ETH,這些建議遭到了知名成員的強烈 抵制以太坊社區。以太坊治理已經演變,並可能正在擺脫隨意救助的聲譽。
Cardano的長期管理願景包括“創建模塊化法規DAO,可以定制與用戶書面的智能合同交互,以增加可變性,消費者保護和仲裁”,但是他們最大的和最直接的優勢可能來自消除首先需要救助。Parity的硬分支建議的爭論,以及實際上導致社區分裂的Ethereum硬分叉的根本原因在於Solidity代碼中的漏洞的利用,完全可以通過更好的軟件開發語言,工具,和進程。卡達諾似乎準備在這些領域取得重大進展。
智能合同安全
Cardano智能合約平台Cardano Computation Layer(CCL)的設計主要集中在提供保證,使智能合約的行為如同沒有隱藏的脆弱性一樣。CCL由兩層組成:一個正式指定的虛擬機和語言框架,以及正式指定的語言,便於自動驗證人類可讀的智能合同代碼。
最低層稱為IELE,它提供了一個虛擬機,用於簡化構建形式化驗證工具,以及將智能合約從高級語言轉換為可執行指令的通用語言框架。IELE的研究和開發由IOHK資助,由UIUC教授和Runtime Verification創始人Grigore Rosu領導。Rosu和團隊正在應用他們對KEVM(Ethereum虛擬機K框架中的正式語義)和LLVM中K的正式語義KLLVM的研究中的見解,構建一個更安全,更高效的虛擬機。
與基於堆棧的機器EVM不同,IELE將是基於寄存器的機器,如LLVM。IELE將擁有無限數量的寄存器,並將支持無限的整數。避免使用有界堆棧,而不必擔心堆棧或算術溢出,這將使得智能合約的規範和驗證變得更容易。像以太坊一樣,IELE將使用天然氣來限制資源使用並防止DoS攻擊。這對正式驗證提出了一些挑戰,被認為是“棘手但可管理的”由研究小組。IELE利用K框架簡化驗證智能合約匹配規範的自動化工具的開發。這允許IELE支持以任何在K中具有正式語義的編程語言編寫的智能合約。
一種這樣的語言可能是西蒙。在Cardano願景文件中簡要描述,Simon是一個高度受限的,特定於領域的交易語言,它提供了一組精確指定的基本金融交易原語,可以將這些交易原語組合在一起,創建具有可驗證屬性的更複雜的合同。關於西蒙並沒有太多的書面報導,但據報導,這是由西蒙·佩頓·瓊斯(Simon Peyton Jones)及其同事撰寫的“撰寫合同:金融工程的冒險 ”一文的概念所啟發的。
Simon Peyton Jones是Haskell的主要設計師之一,Haskell是靜態類型的純功能語言,經常用於運行時錯誤成本高的應用程序(用於實現Ouroboros)。Haskell的設計使得它可以使用自動化的驗證工具,在軟件開發過程的早期就能識別並消除缺陷。Haskell的另一位設計師兼ACM研究員Phil Wadler是IOHK的編程語言顧問,所以Cardano的主要高級通用智能合同語言Plutus包含了Haskell背後的許多概念也就不足為奇了。
Plutus是一種靜態類型的函數式語言,具有人類可讀的Haskell式語法。像Haskell一樣,Plutus轉化為更簡單的語言Plutus Core,這使得形式化驗證變得更容易。正式的驗證工具可以幫助開發人員推理合同,並證明有關智能合約行為的某些性質。這些證明可以成為突出和消除合同漏洞的主要來源的有力工具,例如處理無效輸入,類型不匹配,非顯而易見的代碼路徑,範圍的混淆,錯字,溢出等。例如,屬性證明沒有可以改變合同所有者的代碼路徑可以防止導致這兩個 漏洞的漏洞Parity multisig錢包。事後看來,這個具體的屬性是顯而易見的; 重要的屬性完全有可能被排除在正式的規範之外,從而使漏洞在被利用後才變得明顯。所以,雖然形式驗證是一個非常強大的工具,但是只有在創建規範時人類才能覆蓋所有的基礎。
Cardano計劃支持其他高級語言,包括Solidity。然而,它支持Solidity “用於低保證應用[和Plutus]用於需要正式驗證的更高保證應用”。雖然很難想像任何一位智能合約作者選擇低保證選項,但對Solidity的支持將使以太坊開發者更容易,也許現有的一些合同可以遷移到Cardano。然而開發人員和合同遷移到Cardano的主要原因並不是它支持Solidity,而是它減少風險的能力,使資金面臨風險。如果IELE,Plutus和支持性驗證工具可以使智能合約的開發成為沒有困擾Solidity代碼的脆弱類型,那麼Cardano可能成為部署需要更好安全性的合約的平台,即所有的智能合約)
為了讓以太坊繼續成為主導的智能合約平台,需要通過升級智能合約語言和工具鏈來適應以前的更好選擇。以太坊社區正在開發新的編程語言,如Bamboo和Viper,它們更適合形式驗證,並且受到限制,因此編譯器可以發現許多漏洞,而不是黑客。這些語言編譯為EVM代碼,因此有必要正式驗證高級代碼以及生成的EVM字節代碼(和/或生成字節代碼的編譯器)。目前在以太坊社區有 多個 項目正在對智能合約的正式驗證進行調查以太坊虛擬機本身。以太坊正在競相取消在競爭平台之前經常發生的高利用率Solidity合約。
結論
Cardano項目承諾將為智能合約平台空間帶來多項創新。它正在與世界各地的大學的教授合作,將同行評議的學術研究納入其設計,而不是我們迄今為止所看到的任何平台,包括以太坊。它已經開發了一個“可證實的安全”的利益協議證明,該協議應該能夠在許可的網絡中運行良好,並且可以用於公共的,全球的,無混淆的區塊鏈。它試圖改善比特幣和以太坊治理方面的缺陷,同時藉鑑來自其他區塊鏈的治理理念。其以智能合約平台為核心的設計可以為以太坊提供明顯更安全的替代方案。
也許Cardano對以太坊所帶來的最大威脅是,它在語言和虛擬機設計方面的創新解決了以太坊的致命一擊所帶來的安全隱患。由於固體脆弱性的破壞,導致了以太坊社區資金的大量流失和危機。只要Solidity仍然是Ethereum寫作智能合約的唯一可行方案,所有以太坊合約都將面臨被利用的風險,而社區將被限制於被動解決方案,例如依靠白帽黑客來拯救資金並進行艱難的救助叉子。這種情況是可以接受的,因為現在還不存在提供預防性解決方案的替代平台。與IELE,Simon和Plutus一樣,Cardano也是從頭開始設計的,能夠在部署之前消除漏洞的正式驗證工具。如果以太坊無法解決其脆弱性問題,Cardano提供更好的替代方案,它可能會失去其占主導地位的一個更安全的平台。然而,Cardano在被認為是一個可行的替代平台之前還有很多工作要做,所以還有足夠的時間適應以太坊。
一個平台的安全性與其最薄弱的環節一樣安全,Ouroboros PoS協議是否能夠保護一個具有重大利益的全球性,無權限的網絡仍有待觀察。如果沒有,Cardano可能會在許可的網絡上提供高保證應用。Cardano將計算層(IELE +語言)與結算層(Ouroboros)嚴格區分的一個優點是每個都可以獨立變更。如果基於Ouroboros的結算層不適用於全局區塊鏈,那麼在計算層完成的重大工作就可以移植到不同的結算層。可以想像,以太坊可以將Cardano在語言和虛擬機設計方面的創新結合起來,解決其智能合同安全問題。無論如何,由於來自Cardano項目的研究。
【Roadmap】
【原文出處】https://medium.com/on-the-origin-of-smart-contract-platforms/on-the-origin-of-cardano-a6ce4033985c
【學習筆記,不為投資參考】
Cardano is a decentralised public blockchain and cryptocurrency project and is fully open source. Cardano is developing a smart contract platform which seeks to deliver more advanced features than any protocol previously developed. It is the first blockchain platform to evolve out of a scientific philosophy and a research-first driven approach. The development team consists of a large global collective of expert engineers and researchers.
Cardano是一個旨在通過學習和改進比特幣和以太坊社區的經驗教訓,創建下一代智能合同平台和生態系統的項目。該項目聲稱是“第一個從科學理念演變出來的區塊鏈平台,是一個以研究為先導的方法”。該項目的目標包括改進的可擴展性,安全性,治理以及與傳統金融系統和法規的互操作性。鑑於Cardano的設計重點和實現這些目標的方法與以太坊有所不同,Cardano的創新可以直接與以太坊的創新進行比較。
像以太坊一樣,Cardano擁有一個資助的非營利組織Cardano Foundation,它支持協議的研究和開發以及社區發展。這項研究和開發的大部分目前都是由營利科技公司IOHK領導,與多所大學的研究人員一起工作。Charles Hoskinson和Jeremy Wood早期都參與了Ethereum項目,但在2014年離開後發現了IOHK。大部分IOHK的資金來自與區塊鏈應用程序公司Emurgo簽訂的為期五年的合同,該公司正在尋找一個更好的平台支持監管。
Cardano的Ada Token籌集了大約6200萬美元。Ada Token以Ada Lovelace的名字命名,Ada Lovelace是一位19世紀數學家,被認為是詩人Lord Byron的第一位電腦程序員和女兒。Cardano的第一個主要版本,Bryon (詳Roadmap),於2017年9月29日上線,啟動了Cardano主網。
儘管擁有一個活躍的主網絡,使得Cardano在迄今為止所有的Ethereum挑戰者中領先一步,但Cardano在部署技術方面仍然落後於Ethereum。Cardano網絡仍然處於引導狀態,所有共識節點都在IOHK和合作夥伴的控制之下,沒有智能合同支持,還有許多重要的創新仍在開發中。但是,這些創新在IOHK廣泛的研究圖書館,在線文檔以及同行評審的學術期刊中都有詳細記錄。這給了我們一個比較Cardano和Ethereum的極好的基礎,讓我們來深入細節。
性能和可伸縮性
到目前為止,我們所看到的所有平台都利用某種形式的權益證明(PoS)共識來實現快速,確定性的封鎖時間,Cardano也不例外。Cardano中使用的Ouroboros協議是一個基於鏈的PoS協議,在每個時隙中,從一個利益相關者池中隨機選擇的一個領導者生成下一個鏈接,鏈接到鏈中的前一個鏈接。與BFT風格的PoS算法不同,在驗證者完成(即永久同意)塊生成時,塊越來越可能成為規範,因為在它們之上建立了更多塊(如工作證明方案)。
任何利益相關者被選為領導者的可能性與他們的股權規模成正比 - 他們控制的所有硬幣的百分比,無論是直接擁有還是通過授權。由於交易是以塊形式記錄的,因此用於領導者選擇的利益分配(即利益相關者集合及其各自的股份)變化。為了處理不斷變化的利益分配問題,Ouroboros將一個時代的概念定義為固定利益分配的一些時段。它是硬編碼的(在最初的引導階段)或(在後來的階段)從區塊鏈的快照計算出來的,在一個足夠深的塊中。在每個時代開始時,選擇一組領導者,並且每個領導者都被賦予在特定位置產生一個組的權利。
為確保領導者獲得激勵,始終遵守協議,Ouroboros通過交易批准引入了對塊生產的檢查。在每一個時期,一組輸入代言人被分配到每個時隙的基礎上。投入代言人負責批准交易,包括在領導者製作的塊中。領導者的區塊只有在其中包含的所有交易已經由合格的投入代言人認可的情況下才有效。每個時代都會獎勵領導者,投入支持者和MPC參與者,以確保當所有參與者都是理性的時候遵循協議是一個均衡。
這種經濟回報結構使得協議作者能夠開發出關於系統性質的多個證明,這導致IOHK將Ouroboros作為“第一個可證明的關於證據的證明算法”。所提出的安全性和活性證明基於部分假設同步網絡,誠實的節點可能離線的時間上限。這些假設對於Emurgo設想的許可區塊鍊和商業應用程序來說可能效果不錯,但對於無權限的世界計算機來說也許不是那麼好。支撐Ouroboros安全的假設被批評為“不切實際”,“對全球區塊鏈不切實際”以及“太方便”。
上面最後一個批評來自 Vlad Zamfir ,他是領導以太坊Casper正確建造(CBC)協議研究的。與Cardano的做法相反,Casper CBC旨在解決可能發生在公開區塊鏈上的錯誤,而不是做出可能只適用於許可鏈的假設。
鑑於Ouroboros和Casper CBC都採用經濟回報來實現安全和活躍,卡斯帕還納入基於錯誤歸因的處罰。 Casper 被證明是安全的,沒有任何同步的假設,它可能被證明生活在部分同步。此外, Casper 不受任何限制地處於離線狀態,並處理來自多數聯盟的攻擊。卡斯帕CBC的設計考慮到可能發生在開放的公共區塊鏈上的錯誤,而不是做出可能只適用於許可鏈的假設。Ouroboros和Casper CBC都沒有被部署在一個開放的公開區塊鏈上,並且有重要的資產。
Cardano希望用Ouroboros來擴大規模的另一種方法是把交易分成不同的選舉領導人。根據Cardano的願景文件,這是“微不足道”的事情。然而,目前似乎還沒有任何關於來自不同分區的塊如何配合在一起的附加信息,或者輸入支持者將如何協調以防止跨分區的雙重花費。以太坊的EIP 648描述了一種並行化事務處理的機制,該機制在現有塊結構中起作用,因此可以在Cardano完成之前部署。
Cardano的願景文件暗示使用類似的技術來實現分片,但還不清楚在這方面已經取得了多少進展(如果有的話)。Sharding正在Ethereum社區進行積極的研究,但距離生產還有幾年的時間。對Cardano和以太坊來說,Sharding是如此之遙,以至於目前這兩個項目都沒有明顯的優勢。
由於期望交易吞吐量非常高,Cardano希望建立一個可擴展的網絡,不要求每個節點都處理每個事務。他們的計劃是使用遞歸網絡架構(RINA)技術來實現這一點,儘管迄今為止還沒有提供太多細節。
目前來說,可擴展性和性能是以太坊的主要問題,其擴展解決方案處於研究和開發的不同階段。雖然Cardano已經提出了一些擴展的想法,但實現還有很長的路要走。部署了Byron版本的Ouroboros的第一個版本是完全集中的,只有IOHK控制的節點參與達成共識。通過授權的社區參與將從Shelley發布(2018年)開始,縮放的工作將持續到2019年和2020年。所以目前還不清楚Cardano是否能夠在Ethereum上獲得實用的性能和可擴展性優勢,以及在未來2 - 3年內如何發展。
治理
Cardano項目旨在學習和改進比特幣和以太坊的治理機制。我們的目標是創建一個更正式的流程,減少比特幣流程的僵局,而不會形成以太坊社區分裂所指責的集中治理。對比特幣和以太坊的非正式治理過程的批評是非常主觀的,但是由於未能就治理問題達成一致,兩者都經歷了艱難的分歧和社區分裂。
像Tezos,DFINITY和其他試驗分散治理流程的平台一樣,Cardano打算提供上鍊機制來做出有關協議未來的決定。我們的目標是防止社區分裂,並通過制定明確的決策流程來跟上創新的步伐,讓每個人都能接受。假設是,如果用戶覺得代表一個公平的“法治”系統,他們可能不太可能訴諸於簡單的協議變更,更有可能保持投入,即使他們沒有得到他們的方式。Cardano計劃通過制定一個章程,詳細闡述協議更新機制,以及以透明和無審查方式創建和投票Cardano改進建議的計劃。
Cardano希望實現自動化的一個關鍵治理問題是平台可持續性 - 分散式Cardano社區可以繼續支付所需物資的機制。現在Cardano和Ethereum都有資金充足的基金會,為特定的發展和社區建設項目提供資金。如果證明一次性ICO籌集的資金沒有為這些組織提供永恆的資金來源(我知道是不可想像的),Cardano有一個計劃。這個並不新鮮的想法是建立一個由交易費資助的財務系統,以支持未來的發展。利益相關者通過對擬議項目進行投票決定如何使用國庫資金(即Cardano改進建議)。
Cardano希望實現一個長期的願景,表達Cardano改善建議方面的機器可理解的規格,可以使用軟件工具進行測試和驗證。隨著Shelley發布平台,一個不那麼雄心勃勃的治理流程就開始了,IOHK提出了所有的改進建議,並演變為提供“越來越好的機制來獲得他們的同意”。
一般而言,民主進程中有一些眾所周知的問題,尤其是在鍊式投票方面。無論投標書是機器可以理解的還是只讀的,它們都是高度技術性的,不太可能被普通利益相關者完全理解。利益相關者的投票將通過抽象的解釋,從一個小技術的少數民族,了解如何提案真正的工作。獲得足夠的用戶參與,使任何投票的結果是整個社區的代表也是一個挑戰。如果採用某種形式的委託投票,它可以給代表(如股份庫)的小卡特爾太多的權力來改變規則,以犧牲其他用戶的利益為代價。
以太坊的PoS研究員 Vlad Zamfir (Vlad Zamfir )闡明了PoS中以股權為基礎的投票之間的區別,該投票提供的權力最小,濫用權力受到嚴厲處罰,以及以投標方式進行以股權為基礎的投票,提供最大的權力,基本上不負責任。他認為,在鍊式投票是危險的,因為它迫使整個節點的規則變化,消除了由知情節點操作員提供的重要的檢查和平衡。同樣,以太坊創始人Vitalik Buterin 認為,由於這些已知的問題,利益相關方投票系統不應該成為所有治理的單一機制,而只是一個由礦工投票,用戶投票,核心開發人員,並建立了規範。
Cardano提出的基於利益相關者投票的鏈上機制是否可以克服這些挑戰,以促進協議演進並將社區綁定在一起,這仍有待觀察。在短期內,以太坊不那麼正式的外鏈程序似乎不會妨礙創新,也不會為了使用戶完整而製定有爭議的硬性分支。當Ethereum創始人兼思想領袖Gavin Wood創立的Parity公司發布了一個硬分叉的建議,通過刪除的合同重新啟動了超過50萬個被凍結的ETH,這些建議遭到了知名成員的強烈 抵制以太坊社區。以太坊治理已經演變,並可能正在擺脫隨意救助的聲譽。
Cardano的長期管理願景包括“創建模塊化法規DAO,可以定制與用戶書面的智能合同交互,以增加可變性,消費者保護和仲裁”,但是他們最大的和最直接的優勢可能來自消除首先需要救助。Parity的硬分支建議的爭論,以及實際上導致社區分裂的Ethereum硬分叉的根本原因在於Solidity代碼中的漏洞的利用,完全可以通過更好的軟件開發語言,工具,和進程。卡達諾似乎準備在這些領域取得重大進展。
智能合同安全
Cardano智能合約平台Cardano Computation Layer(CCL)的設計主要集中在提供保證,使智能合約的行為如同沒有隱藏的脆弱性一樣。CCL由兩層組成:一個正式指定的虛擬機和語言框架,以及正式指定的語言,便於自動驗證人類可讀的智能合同代碼。
最低層稱為IELE,它提供了一個虛擬機,用於簡化構建形式化驗證工具,以及將智能合約從高級語言轉換為可執行指令的通用語言框架。IELE的研究和開發由IOHK資助,由UIUC教授和Runtime Verification創始人Grigore Rosu領導。Rosu和團隊正在應用他們對KEVM(Ethereum虛擬機K框架中的正式語義)和LLVM中K的正式語義KLLVM的研究中的見解,構建一個更安全,更高效的虛擬機。
與基於堆棧的機器EVM不同,IELE將是基於寄存器的機器,如LLVM。IELE將擁有無限數量的寄存器,並將支持無限的整數。避免使用有界堆棧,而不必擔心堆棧或算術溢出,這將使得智能合約的規範和驗證變得更容易。像以太坊一樣,IELE將使用天然氣來限制資源使用並防止DoS攻擊。這對正式驗證提出了一些挑戰,被認為是“棘手但可管理的”由研究小組。IELE利用K框架簡化驗證智能合約匹配規範的自動化工具的開發。這允許IELE支持以任何在K中具有正式語義的編程語言編寫的智能合約。
一種這樣的語言可能是西蒙。在Cardano願景文件中簡要描述,Simon是一個高度受限的,特定於領域的交易語言,它提供了一組精確指定的基本金融交易原語,可以將這些交易原語組合在一起,創建具有可驗證屬性的更複雜的合同。關於西蒙並沒有太多的書面報導,但據報導,這是由西蒙·佩頓·瓊斯(Simon Peyton Jones)及其同事撰寫的“撰寫合同:金融工程的冒險 ”一文的概念所啟發的。
Simon Peyton Jones是Haskell的主要設計師之一,Haskell是靜態類型的純功能語言,經常用於運行時錯誤成本高的應用程序(用於實現Ouroboros)。Haskell的設計使得它可以使用自動化的驗證工具,在軟件開發過程的早期就能識別並消除缺陷。Haskell的另一位設計師兼ACM研究員Phil Wadler是IOHK的編程語言顧問,所以Cardano的主要高級通用智能合同語言Plutus包含了Haskell背後的許多概念也就不足為奇了。
Plutus是一種靜態類型的函數式語言,具有人類可讀的Haskell式語法。像Haskell一樣,Plutus轉化為更簡單的語言Plutus Core,這使得形式化驗證變得更容易。正式的驗證工具可以幫助開發人員推理合同,並證明有關智能合約行為的某些性質。這些證明可以成為突出和消除合同漏洞的主要來源的有力工具,例如處理無效輸入,類型不匹配,非顯而易見的代碼路徑,範圍的混淆,錯字,溢出等。例如,屬性證明沒有可以改變合同所有者的代碼路徑可以防止導致這兩個 漏洞的漏洞Parity multisig錢包。事後看來,這個具體的屬性是顯而易見的; 重要的屬性完全有可能被排除在正式的規範之外,從而使漏洞在被利用後才變得明顯。所以,雖然形式驗證是一個非常強大的工具,但是只有在創建規範時人類才能覆蓋所有的基礎。
Cardano計劃支持其他高級語言,包括Solidity。然而,它支持Solidity “用於低保證應用[和Plutus]用於需要正式驗證的更高保證應用”。雖然很難想像任何一位智能合約作者選擇低保證選項,但對Solidity的支持將使以太坊開發者更容易,也許現有的一些合同可以遷移到Cardano。然而開發人員和合同遷移到Cardano的主要原因並不是它支持Solidity,而是它減少風險的能力,使資金面臨風險。如果IELE,Plutus和支持性驗證工具可以使智能合約的開發成為沒有困擾Solidity代碼的脆弱類型,那麼Cardano可能成為部署需要更好安全性的合約的平台,即所有的智能合約)
為了讓以太坊繼續成為主導的智能合約平台,需要通過升級智能合約語言和工具鏈來適應以前的更好選擇。以太坊社區正在開發新的編程語言,如Bamboo和Viper,它們更適合形式驗證,並且受到限制,因此編譯器可以發現許多漏洞,而不是黑客。這些語言編譯為EVM代碼,因此有必要正式驗證高級代碼以及生成的EVM字節代碼(和/或生成字節代碼的編譯器)。目前在以太坊社區有 多個 項目正在對智能合約的正式驗證進行調查以太坊虛擬機本身。以太坊正在競相取消在競爭平台之前經常發生的高利用率Solidity合約。
結論
Cardano項目承諾將為智能合約平台空間帶來多項創新。它正在與世界各地的大學的教授合作,將同行評議的學術研究納入其設計,而不是我們迄今為止所看到的任何平台,包括以太坊。它已經開發了一個“可證實的安全”的利益協議證明,該協議應該能夠在許可的網絡中運行良好,並且可以用於公共的,全球的,無混淆的區塊鏈。它試圖改善比特幣和以太坊治理方面的缺陷,同時藉鑑來自其他區塊鏈的治理理念。其以智能合約平台為核心的設計可以為以太坊提供明顯更安全的替代方案。
也許Cardano對以太坊所帶來的最大威脅是,它在語言和虛擬機設計方面的創新解決了以太坊的致命一擊所帶來的安全隱患。由於固體脆弱性的破壞,導致了以太坊社區資金的大量流失和危機。只要Solidity仍然是Ethereum寫作智能合約的唯一可行方案,所有以太坊合約都將面臨被利用的風險,而社區將被限制於被動解決方案,例如依靠白帽黑客來拯救資金並進行艱難的救助叉子。這種情況是可以接受的,因為現在還不存在提供預防性解決方案的替代平台。與IELE,Simon和Plutus一樣,Cardano也是從頭開始設計的,能夠在部署之前消除漏洞的正式驗證工具。如果以太坊無法解決其脆弱性問題,Cardano提供更好的替代方案,它可能會失去其占主導地位的一個更安全的平台。然而,Cardano在被認為是一個可行的替代平台之前還有很多工作要做,所以還有足夠的時間適應以太坊。
一個平台的安全性與其最薄弱的環節一樣安全,Ouroboros PoS協議是否能夠保護一個具有重大利益的全球性,無權限的網絡仍有待觀察。如果沒有,Cardano可能會在許可的網絡上提供高保證應用。Cardano將計算層(IELE +語言)與結算層(Ouroboros)嚴格區分的一個優點是每個都可以獨立變更。如果基於Ouroboros的結算層不適用於全局區塊鏈,那麼在計算層完成的重大工作就可以移植到不同的結算層。可以想像,以太坊可以將Cardano在語言和虛擬機設計方面的創新結合起來,解決其智能合同安全問題。無論如何,由於來自Cardano項目的研究。
【Roadmap】
【原文出處】https://medium.com/on-the-origin-of-smart-contract-platforms/on-the-origin-of-cardano-a6ce4033985c