文章閱讀頁通欄

從比特幣和以太坊的編程模型中吸取的教訓

來源: 區塊網 作者:考拉
有了分層的架構,就可以創建負擔得起的通用基礎設施,在我看來,這是區塊鏈驅動世界唯一可行的未來。通過我的工作,我意識到人們很難理解Cell模型的......
有了分層的架構,就可以創建負擔得起的通用基礎設施,在我看來,這是區塊鏈驅動世界唯一可行的未來。通過我的工作,我意識到人們很難理解Cell模型的概念。本文試圖以一種簡化的方式來解釋Cell模型,以便于大多數人都能訪問。 

首先,從比特幣開始,向前推進是很重要的。比特幣被稱為點對點電子支付系統,使用一種名為UTXO的編程模型。
 

將UTXO看作一個盒子是最簡單的方法。(沒錯,不是賬本,是箱子。)該框包含一個表示貨幣價值的數字,并有一個鎖。只有拿著相應鑰匙的人才能打開盒子。當進行轉賬時,持有鑰匙的所有者/個人使用鑰匙解鎖鎖,找到另一個空盒子,將新面值放入新盒子中,并附加一個新所有者的鎖。

比特幣的工作原理就像一個鎖著的盒子,里面有一些錢:一個拿著鑰匙的人可以打開盒子花一些錢。每次取出錢的時候,舊的盒子就會被銷毀,剩下的錢就需要一個新的盒子來存放。
整個交易可以概括為打開盒子,取出里面的錢,毀掉原來的盒子,然后把它放進另一個盒子里。
 
總而言之,盒子表示存儲數據的UTXO模型,鎖表示所有權。密碼學是一項偉大的發明,它將物理世界中的鎖的概念映射到虛擬世界。
 
除了UTXO模型,還有account模型。這個模型最著名的例子是以太坊。除了數據,以太坊賬戶模型中還有計算邏輯。你可以把ERC20合約想象成一個盒子,里面不是錢,而是一組復雜的邏輯和數字。
 
與UTXO不同,account模型的框總是被重用,并且不能在其生命周期內打開。一套規則會被寫進盒子里,當它們被制作出來的時候,一些按鈕會被放置到位,這樣人們就可以和盒子互動了。例如,規則可能會這樣說: 如果一方想轉賬,那么她或他或它需要出示身份證明的一種形式,并輸入密碼。一旦完成前面的步驟,就需要以下信息: 轉賬金額、收件人和其他信息。輸入后,她或他或它需要按下transfer按鈕來完成傳輸。在接收到信息后,它會從您的金額中扣除,并對另一方的賬戶進行更改,然后更新所有內部數據。熟悉編程的人很快就會發現,account模型類似于現實世界中的面向對象編程,按鈕的概念類似于API。)我妻子說,聽起來像自動取款機。她是對的。)

如果我們擴展盒子的比喻,以太坊的功能更像是一臺ATM機。
在account模型中,該框保存邏輯和數據。在將邏輯寫入工廠設置的方框后,永遠不能更改它。您只能在需要修改數據時使用外部按鈕。每個人的錢都記錄在盒子里。要進行交易只需要輸入交易信息。該框根據規則處理請求并更新數據。

在cell模型中,我們也可以將cell看作一個盒子,因為它與UTXO模型非常相似。您可以對該框執行一些魔術,并編寫一組規則來指定該框可以存儲什么。通過這種方式,單元內的數據可以表示貨幣和/或加密貓之類的資產。此外,UTXO中的鎖也是相同的。但是在cell格模型中,用戶可以自由地更改和使用定制的鎖。(你可以想想簡單的掛鎖vs指紋鎖或數字鎖)

Cell就像一個盒子,可以包含具有任意鎖的任意對象。
總的來說,cell模型是一個廣義的UTXO模型,具有以下兩個意義:第一,鎖是可定制的;其次,盒子可以存儲用戶定義的數據。Nervos的CKB有一個結合了比特幣編程模型和以太坊編程模型優點的編程模型。
 
有些人可能會好奇在什么意義上cell模型是高級的,以及如何使用它的編程模型。

首先理解區塊鏈系統的演化是很重要的。比特幣誕生了p2p支付系統,后來又誕生了更廣義的分散式應用平臺以太坊。區塊鏈的進一步發展帶來了各種各樣的新項目,而且越來越多樣化。

由于需要全網絡一致同意和存儲成本高昂,區塊鏈不可避免地將采用一種架構,這種架構允許在一致同意的范圍內實現靈活性,允許它們大規模交付低成本的交易。

兩個主要的障礙

繼續阻礙區塊鏈開發的一個障礙是可伸縮性問題。如果我們不能緩解這個問題,區塊鏈的能力將是有限的,我們將不會看到開發健壯的高級應用程序,從而釋放分散式經濟的真正潛力。
 
可伸縮性是“區塊鏈三重困境”的一部分,其中還包括安全性和分散性。
 
第二個障礙是交易成本問題。一個社會整體交易成本的降低是衡量一項技術在規模上可行性的最有力指標之一。由于需要全網絡一致同意的交易和存儲成本高昂,區塊鏈不可避免地將采用一種架構,這種架構允許在一致同意的范圍內實現靈活性,允許它們大規模交付低成本的交易。
 
解決方案: 分層架構

計算機愛好者知道他們的設備包含一個復雜的分層架構,包括內存、硬盤、多級緩存和各種寄存器。這種體系結構允許普通大眾以低成本使用,以及可伸縮的能力,以滿足不斷增長的計算挑戰。
 
我們可以將相同的設計原則應用于區塊鏈。有了分層的架構,就可以創建負擔得起的通用基礎設施,在我看來,這是區塊鏈驅動的世界唯一可行的未來。隨著Lightning、Plasma和state/payment通道的興起,我們已經可以看到這種體系結構的出現,以及它所促進的用例。
 
在接近這個分層的區塊鏈架構時,研究區塊鏈系統的三個不同數據模型之間的關系非常重要:比特幣的UTXO模型、 account模型和我們的貢獻——cell 模型。
 
驗證與計算模型

Cell單元模型由UTXO模型派生而來,因此是一個驗證模型。相反,帳戶模型是一個計算模型。
 
當前的第2層解決方案,如閃電網絡,在資產從第2層返回到第1層時,使用一個提交證明和驗證機制。由于第1層扮演的是驗證角色,而不是計算角色,我們可以看到UTXO或cell模型是這種構造的合適方法。
 
解決方案

目前,以太坊和“下一代”區塊鏈面臨著國家規模不斷增長的嚴峻挑戰。雖然大規模采用仍然遙遙領先,但全節點的數據存儲成本已經很高,包括各種僵尸帳戶,這讓情況變得更糟。
 
使用 account模型,所有用戶的資產都存儲在一個合約中。如果沒有為每個用戶劃分狀態的直接方法,就很難根據每個用戶占用狀態的容量和持續時間向他們收費。
 
這對收費的實施提出了挑戰,目前在以太坊,交易費用是一次性支付,授予永久的州存儲。考慮到區塊鏈是公共基礎設施,這種模式是不可持續的。我們可以看出,連續支付倉儲空間租金是一種更加合理的方式。
 
在cell模型中,每個用戶的數字資產分別存儲在各自的單元中。如果用戶不想繼續持有資產,則可以釋放單元中的數據,并將存儲容量出售或借給其他用戶。這種設計確保了第1層不會無限期地存儲廢棄的資產,并為狀態存儲開辟了新的可能性。
 
結論

總的來說,很明顯,當考慮到存儲和驗證需求時,cell 模型最適合分層區塊鏈體系結構的需求。

關鍵詞: 比特幣  以太坊  
0/300
? 小霸王曾道人