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

買賣虛擬貨幣
有了分層的架構,就可以建立負擔得起的通用基礎設施,在我看來,這是區塊鏈驅動世界唯一可行的未來。透過我的工作,我意識到人們很難理解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 模型最適合分層區塊鏈體系結構的需求。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;