以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads

硬核:CKB 與 Cell 就是 Bitcoin 與 UTXO 的一般化版本_CEL

Author:

Time:1900/1/1 0:00:00

很多人說Cell模型簡單得令人感到幸福,如果你覺得自己已經理解了Bitcoin和UTXO,那么恭喜你,你也已經理解了CKB和Cell!在本篇文章中,Nervos創始人謝晗劍深入淺出地將CKBCell模型及其驗證做了詳細的介紹。歡迎閱讀,和謝晗劍一起探索CellModel。

原文標題:《理解CKB的Cell模型》原文作者:謝晗劍,Nervos創始人

janx,謝晗劍,Nervos創始人

在設計CKB的時候,我們想要解決三個方面的問題:

狀態爆炸引起的公地悲劇及去中心化的喪失;計算和驗證耦合在了一起,使得無論是計算還是驗證都失去了靈活性,難以擴展;交易與價值存儲這兩個目標的內在矛盾,Layer2和跨鏈的出現將放大這種矛盾,并對Layer1的經濟產生非常負面的影響。對這些問題沒有答案,Layer1就無法長久運行,區塊鏈給我們的種種承諾自然也是無從談起。這三個問題根植于區塊鏈架構和協議設計的最深處,很難通過打補丁的方式來解決,我們必須從最基本的數據結構開始,重新審視問題的根源,尋找更合適的地基。

幸運的是,這個更合適的地基簡單得令人感到幸福,而且一直就擺在我們眼前。

從Bitcoin中我們學到了什么

Bitcoin把整個賬本分割保存在了一個個UTXO里面,UTXO是未花費交易輸出的簡寫,實際上是交易中包含的輸出。CTxOut的結構非常簡單,只有兩個字段:

classCTxOut{public:CAmountnValue;CScriptscriptPubKey;...}

每一個CTxOut代表了一個面值不同的硬幣,其中「nValue」代表這個硬幣的面值是多少,「scriptPubKey」是一段表示這個硬幣所有者是誰的腳本,只有能提供正確參數使這個腳本運行成功的人才能把這個硬幣「轉讓」給另外一個人。

Celsius債權人尋求識別參與去年CEL代幣可疑交易的數十名FTX用戶信息:4月27日消息,Celsius Network LLC債權人委員會周三請求破產法官允許傳喚FTX提供信息,以識別十個加密錢包背后的用戶,他們稱這些錢包在去年4月至8月期間參與了CEL代幣的可疑交易模式。(彭博社)[2023/4/27 14:30:03]

為什么要給「轉讓」打引號?因為在轉讓的時候,并不是簡單地把硬幣中的「scriptPubKey」修改或是替換掉,而是會銷毀和創造新的硬幣。每一個Bitcoin交易,都會銷毀一批硬幣,同時又創造一批硬幣,新創造的硬幣會有新的面值和新的所有者,但是被銷毀的總面值總是大于等于新創造的總面值,以保證沒有人可以隨意增發。交易表示的是賬本狀態的變化。

這樣一個模型的特點是:

硬幣是第一性的;所有者是硬幣的屬性,每一枚硬幣有且僅有一個所有者;硬幣不斷的被銷毀和創建。是不是很簡單?如果你覺得自己已經理解了Bitcoin和UTXO,恭喜你,你也已經理解了CKB和Cell!

Cell

Layer1的關注點在狀態,以Layer1為設計目標的CKB設計的關注點很自然就是狀態。Ethereum將交易歷史和狀態歷史分為兩個維度,區塊和交易表達的是觸發狀態遷移的事件而不是狀態本身,而Bitcoin協議中的交易和狀態融合成了一個維度,交易即狀態,狀態即交易,正是一個以狀態為核心的架構。

同時,CKB想要驗證和長久保存的狀態,不僅僅是簡單的數字「nValue」,而是任何人認為有價值的、經過共識的數據。顯然Bitcoin的交易輸出結構滿足不了這個需求,但是它已經給了我們足夠的啟發:只需要將nValue一般化,把它從一個存放整數的空間變成一個可以存放任意數據的空間,我們就得到了一個更加一般化的「CTxOut」,或者叫Cell:

pubstructCellOutput{pubcapacity:Capacity,pubdata:Vec,publock:Script,pubtype_:Option

Sparkster相關錢包在USDC脫錨期間短線交易ETH賺取165萬美元:金色財經報道,Lookonchain監測數據顯示,兩天前USDC脫錨之前,Sparkster的4個錢包用1558萬枚USDC以1427美元的平均價格買入10921枚ETH。這些錢包在今天上午出售10921枚ETH獲得1724萬枚USDC,成交均價1578美元。Sparkster在2天內賺了165萬美元。[2023/3/13 13:00:18]

在Cell里面,nValue變成了capacity和data兩個字段,這兩個字段共同表示一塊存儲空間,capacity是一個整數,表示這塊空間有多大,data則是保存狀態的地方,可以寫入任意的一段字節;scriptPubKey變成了lock,只是換了一個名字而已,表達的是這塊共識空間的所有者是誰-只有能提供參數使得lock腳本成功執行的人,才能「更新」這個Cell中的狀態。整個CellOutput占用的字節數必須小于等于capacity。

CKB中存在著許許多多的Cells,所有這些Cell的集合形成了CKB當前的完整狀態,在CKB的當前狀態中存儲的是任意的共同知識,不再僅僅是某一種數字貨幣。

交易依然表示狀態的變化/遷移。狀態的變化,或者說Cell內容的「更新」實際上也是通過銷毀和創建來完成的。每一筆交易實際上都會銷毀一批Cells,同時創建一批新的Cells;新創造的Cells會有新的所有者,也會存放新的數據,但是被銷毀的capacity總和總是大于等于新創建的capacity總和,由此保證沒有人可以隨便增發capacity。因為capacity可以轉讓,無法增發,擁有capacity等于擁有相應數量的共識狀態空間,capacity是CKB網絡中的原生資產。Cell的銷毀只是把它標記為「已銷毀」,類似Bitcoin的UTXO從未花費變為已花費,并不是從區塊鏈上刪掉。每一個Cell只能被銷毀一次,就像每一個UTXO只能被花費一次。

mfers創始人:16999個eos NFT持有者可參與新項目的免費鑄造:2月16日消息,NFT項目mfers創始人sartoshi發推稱,在EST時間2023年1月27日下午1:50快照時所有16999個eos(End Of Sartoshi)NFT的持有者將有資格進行20k pfp pixel art project(2萬個PFP像素藝術項目)的免費鑄造,該項目將于2月16日公布。

此前1月消息,sartoshi表示,其此前退圈作品End Of Sartoshi NFT持有者自2月開始將有資格免費鑄造Life Death & Cryptoart策展加密藝術收藏品系列,每件藝術作品限量供應300枚。[2023/2/16 12:10:21]

這樣一個模型的特點是:

狀態是第一性的;所有者是狀態的屬性,每一份狀態只有一個所有者;狀態不斷的被銷毀和創建。所以說,Cell是UTXO的一般化版本。

Verify

僅僅有一塊可以保存任意狀態的空間還不夠。Bitcoin之所以有價值,是因為網絡中的全節點會對每一筆交易進行驗證,使得所有用戶都相信Bitcoin協議中寫下的規則會得到保證。

共同知識之所以能成為共同知識,是因為每個人都知道其他人認可這些知識,區塊鏈之所以能讓知識變成共同知識,是因為每個人都知道其他人都能獨立驗證這些知識并由此產生認可。任何共識的過程都包含了一系列的驗證以及相互之間的反復確認,這個過程正是網絡中共同知識形成的過程。

我們如何驗證Cell中保存的數據呢?這時候就需要Cell中的另一個字段type發揮作用了。type與lock一樣,也是一段腳本,type定義了data字段中保存的數據在狀態遷移過程中必須要遵守的規則,是對狀態的約束。CKB網絡在共識的過程中,會在CKB-VM中執行type腳本,驗證新生成的Cell中保存的狀態符合type中預先定義好的規則。滿足同一種type約束的所有Cell,保存的是同一種類型的數據。

摩根大通CEO:比特幣供應不會真正限制在2100萬枚:金色財經報道,摩根大通首席執行官杰米·戴蒙 (Jamie Dimon) 在接受CNBC財經節目Squawk Box時表示,比特幣供應不會真正限制在2100萬枚,他表示:“你怎么知道比特幣供應會停在 2100 萬?也許比特幣供應在達到 2100 萬的時候,中本聰的照片彈出來并嘲笑你們所有人。你們都讀過算法嗎?你們都相信嗎?我不知道,我一直對這樣的事情持懷疑態度。”

據比特幣錢包公司 Casa 聯合創始人 Jameson Lopp 所指出的,比特幣的供應上限僅由 5 行代碼隱式執行。 但是只要用戶同意,任何由代碼強制執行的內容在技術上都可以更改。許多人認為,比特幣社區將被迫升級其軟件以生產超過 2100 萬枚硬上限,以提供穩定的資金來支持采礦業。 (decrypt)[2023/1/20 11:22:32]

舉個例子,假設我們想定義一個叫做SatoshiCoin的代幣,它的狀態遷移必須滿足的約束是什么?只有兩條:

用戶必須證明自己是輸入代幣的所有者;每一次轉賬的時候,輸入的代幣數量必須大于等于輸出的代幣數量。第一條約束可以通過lock腳本來表達,如果有興趣可以查看這里的示例代碼,與Bitcoin的scriptPubKey原理相同;第二條約束,在Bitcoin中是在底層硬編碼實現的,在CKB中則是通過type腳本來實現。每個Cell代表的SatoshiCoin數量是一種狀態,我們首先定義其狀態結構,即每個type等于SatoshiCoin的Cell在data保存的狀態為一個長度為8的字節串,代表的是序列化過后的數量:

{amount:Bytes//serializedinteger}

type腳本在執行中,需要讀入交易中所有同類型的Cells,然后檢查同一類型下的輸入Cells中保存的amount之和大于等于輸出Cells中保存的amount之和。于是通過lock和type兩個腳本,我們就實現了一個最簡單的代幣。

美SEC前執法部門負責人:嚴重懷疑國會是否愿意介入FTX事件并采取行動:金色財經報道,美國證券交易委員會(SEC)前執法部門負責人Lisa Braganca周三表示,FTX的崩潰可能會引發更多國會監管的呼聲,但她對國會是否會采取行動表示懷疑。

Braganca說,“我仍然嚴重懷疑國會是否愿意介入并采取行動,而不是讓SEC和CFTC(商品期貨交易委員會)解決這個問題,這是復雜的”。Braganca還提到,SBF曾經與立法者的密切關系也對監管造成了各種障礙。[2022/11/17 13:14:04]

lock和type腳本不僅可以讀取自身Cell中保存的狀態,也能夠引用和讀取其它Cell中保存的狀態,所以CKB的編程模型是一個有狀態的編程模型。值得指出的是,Ethereum的編程模型之所以強大,更多是因為它有狀態,而不是因為它的有限圖靈完備。我們可以把type腳本保存在一個獨立的Cell里面,然后在每一個SatoshiCoinCell的type字段引用它,這樣做的好處是相同的type腳本只需要一份空間保存,像這樣保存數字資產定義的Cell我們把它叫做ADC。

SatoshiCoin的另一個特點是,具體的資產與所有者之間的記錄,分散保存在多個獨立的Cell里面,這些Cell可以是開發者提供給用戶的,也可以是用戶自己擁有的,甚至是租來的。只有在共識空間所有權明確的情況下,所有者才能真正擁有共識空間里面保存的資產。在CKB上,因為用戶可以真正擁有共識空間,所以用戶可以真正擁有數字資產。

Cell是抽象的狀態驗證模型,Cell提供的存儲沒有任何內部結構,Cell支持任意的狀態驗證規則和所有權驗證規則,我們可以在Cell模型上模擬UTXO模型,也可以在Cell模型上構建Account模型。lock腳本在驗證交易輸入的時候執行,確保用戶對輸入有所有權,有權銷毀輸入的Cells;type腳本在驗證交易輸出的時候執行,確保用戶生成的新狀態符合類型約束,正確生成了新的Cells。由于狀態模型迥異,以及計算和驗證分離,CKB的編程模型與Ethereum的編程模型有非常大的不同,什么是CKB編程模型上的最佳實踐還需要大量的探索。

通用驗證網絡

Bitcoin是一個驗證網絡。在轉賬時,用戶告訴錢包/本地客戶端轉賬的數量和收款人,錢包根據用戶提供的信息進行計算,在本地找出用戶擁有的數量合適的硬幣,同時產生一批新的硬幣,這些硬幣有些歸收款人所有,有些是找零。之后錢包將這些花費掉的硬幣和新生成的硬幣打包到一個交易里面,將交易廣播,網絡對交易驗證后將交易打包到區塊里面,交易完成。

在這個過程中,網絡中的節點并不關心老的狀態是怎樣被搜索出來的,也不關心新的狀態是怎樣生成出來的,只關心這些硬幣的面值總和在交易前后沒有改變。在轉賬過程中,計算在用戶端完成,因此用戶在交易發送時就能確定計算結果是什么。

Ethereum是一個通用計算網絡。在使用DApp的時候,用戶告訴錢包/本地客戶端想要進行的操作,錢包將用戶的操作請求原樣打包到交易里面,并將交易廣播。網絡節點收到交易之后,根據區塊鏈的當前狀態和交易包含的操作請求進行計算,生成新的狀態。在這個過程中,計算在遠端完成,交易結果只有在交易被打包到區塊之后才能確定,用戶在交易發送的時候并不能完全確定計算結果。

CKB是一個通用驗證網絡。在使用DApp的時候,用戶告訴錢包/本地客戶端想要進行的操作,錢包根據當前狀態和用戶的操作請求進行計算,生成新的狀態。在這個過程中,計算在用戶端完成,計算結果在交易發出的時候就已經確定了。

換句話說,Bitcoin和CKB都是先計算再共識,而Ethereum是先共識再計算。有趣的是,在許可鏈架構里面也有同樣派別之分:Fabric是先計算再共識,而CITA是先共識再計算。

計算與驗證的分離同時也使得Layer2與Layer1自然分開了。Layer1關心的是新的狀態是什么,并不關心新的狀態是如何得到的。無論是Statechannel,Plasma還是其他Layer2方案,其實質都是在鏈外進行計算,在特定時候將最終狀態提交到Layer1上進行驗證。

為什么CKB的Cell模型更好?

現在我們得到了一個非常不同的基礎數據結構,在這個結構之上我們設計了獨特的經濟模型,這個結果真的更好嗎?回顧一開始的三個問題也許能給我們一些啟示。

capacity是原生資產,受到預先確定的發行規則約束,其總量有限;capacity同時又是狀態的度量,有多少capacity,CKB上就能放多少數據,CKB狀態空間的最大值與capacity總量大小相等,CKB上保存的狀態不會超過capacity總量。這兩點決定了CKB不會有狀態爆炸的問題。在capacity發行規則適當的情況下,網絡應該可以長久的保持去中心化的狀態。每一個Cell都是獨立狀態,有明確的所有者,原本屬于公共資源的狀態空間被私有化,寶貴的共識空間可以被更有效的使用。

CKB是一個通用驗證網絡,計算和驗證得到了分離,各自的靈活性和擴展性都得到了提高。更多的計算被推到了用戶端執行,計算發生在離場景和數據更近的地方,數據處理的方式更靈活,工具更多樣。這也意味著,在CKB架構中,錢包是一個能做的事情更多,能力更大的入口。在驗證端,由于計算結果已經完全確定,交易的依賴分析變得非常輕松,交易的并行處理也就更加容易。

在基于Cell建立的經濟模型中,存儲的使用成本與占用空間大小和占用時間成正比,礦工可以通過提供共識空間獲得相應的收益。CKB提供的Utility是安全的共識空間,價值來自于其安全性和可用性,并不是來自于交易處理能力,與Layer2負責交易的特點相輔相成,在分層網絡和跨鏈網絡中具有更好的價值捕獲能力。

最后,CKB不是…

IPFS

CKB是一種存儲這一點可能會使人感到迷惑:「這不就是IPFS/Filecoin/嗎?」

CKB不是分布式存儲,關鍵的區別在于分布式存儲只有存儲,沒有驗證,也就不會對其存儲的數據形成共識。分布式存儲的容量可以隨著存儲技術的增長而等比例的增長,而CKB的容量則收到形成全球共識效率的限制。

CKB也不需要擔心容量不夠。在Layer2以及分層技術成熟的階段,極端情況下,Layer1上可能只需要放一個merkleroot就足夠了。在Layer1上進行驗證所需要的狀態,也可以通過交易提交給節點,節點通過merkleproof驗證狀態是有效的,在此基礎之上再驗證狀態遷移是有效的,這個方向已經有一些研究。

Qtum

Qtum是嘗試在UTXO模型上引入更強大的智能合約的先行者之一,具體做法是保持Bitcoin原有的UTXO模型不變,在其上引入賬戶抽象層,支持EVM或是x86虛擬機。

在Qtum中,Bitcoin的驗證是第一層,EVM的計算是第二層。Qtum對UTXO中scriptPubKey的處理邏輯進行修改,以實現在交易打包后,將BitcoinTransaction中攜帶的請求傳遞給EVM進行執行的效果。

Qtum將Bitcoin和Ethereum的執行模型橋接到了一起,網絡節點先驗證交易輸入部分,再調用合約進行計算,狀態分散在UTXO模型和EVM自己的狀態存儲兩個地方,整體架構比較復雜。

CKB所做的是繼承Bitcoin的架構思路,對UTXO模型進行一般化處理得到Cell模型,整體架構保持了一致性以及Bitcoin的簡潔。CKB上的所有狀態都在Cell里面,計算在鏈下完成,網絡節點只做驗證。

來源鏈接:謝晗劍

比特幣

比特幣

比特幣Bitcoin,一種去中心化、非普遍全球可支付的加密數字貨幣,而多數國家則認為比特幣屬于虛擬商品,并非貨幣。比特幣的概念,誕生于2008年署名為中本聰的一篇論文,并于2009年1月3日,基于無國界的對等網絡,用共識主動性開源軟件發明創立。比特幣協議數量上限為2100萬枚,以避免通貨膨脹問題。使用比特幣是通過私鑰作為數字簽名,允許個人直接支付給他人,不需經過如銀行、清算中心、證券商等第三方機構,從而避免了高手續費、繁瑣流程以及受監管性的問題,任何用戶只要擁有可連接互聯網的數字設備皆可使用。比特幣BTCBitcoin查看更多以太坊

Tags:CELCELLCKBOINSPACELINKCAPITAL X CELLckb幣是不是沒救了Gold Bits Coin

POL幣最新價格
龔鳴:EOS 最大的問題在于它能否兌付曾經的承諾_EOS

EOS全球21個超級節點的競爭正在火熱進行中,各位幣圈大佬紛紛揭竿而起,各立門戶,也讓這場比賽變得越來越好看。但是對于EOS持有者來說,究竟支持誰成為了難題.

1900/1/1 0:00:00
觀點:比特幣與傳統資產相關性低,正成為機構青睞的新資產類別_比特幣

比特幣流動性、市場結構和透明度的改善將吸引新的投機者,這將催生一個積極的反饋循環,加強比特幣作為新資產類別的地位.

1900/1/1 0:00:00
關于BiKi閃電貸上線GRT 質押借貸的公告(1221)_BIKI

尊敬的用戶: BiKi閃電貸已于2020年12月21日在APP端上線GRT質押借貸; 什么是BiKi閃電貸: 動態 | 幣安編輯了白皮書中關于BNB回購的條款:幣安編輯了白皮書關于BNB回購的條.

1900/1/1 0:00:00
以太坊2020年的六大成就和五個失望瞬間(下篇)_以太坊

暴走時評:2020年對于以太坊來說,可謂是波瀾起伏的一年。DeFi的意外大熱給以太坊網絡帶來無限風光的同時也造成了令人望而卻步的網絡擁堵和居高不下的GAS費用.

1900/1/1 0:00:00
網絡效應與死亡之谷:區塊鏈上何時出現下一個殺手級應用_區塊鏈

從2017年起,加密市場的快速增長成為熱門話題,幣價猛增成為各大媒體的頭條新聞。然而進入2018年,市場價格下跌,公眾熱情也在迅速降溫,曾經的忠實擁躉也開始對BTC和區塊鏈的未來持懷疑態度.

1900/1/1 0:00:00
雨神:跟隨市場 從不掉隊_USD

每一個參與市場交易的人,都想要從市場賺錢,這是大家進入市場的最原始動力,然而,市場零和博弈的本質注定了只會有少數人可以賺到錢,而這少數人就是那些把握跟隨趨勢的人.

1900/1/1 0:00:00
ads