買比特幣 買比特幣
Ctrl+D 買比特幣
ads
首頁 > ETH > Info

CELL:有趣的 DApp 設計模式:First-class Asset_Kompass

Author:

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

本篇文章的作者是Jan,文章闡述了Cell模型中支持的一種非常有趣的DApp設計模式:First-classAsset,它讓加密資產變成區塊鏈中的「一等公民」。喜歡函數式編程的工程師應該很熟悉一個名詞:First-classFunction,翻譯成中文應該叫「頭等函數」或者「一等函數」。First-classFunction指的是一類編程語言,在這些語言中函數是一個完全獨立的概念:函數可以被當作值賦給一個變量,可以被當作參數傳遞給其他函數,也可以被當作返回值從其它函數傳出來。在這樣的語言中我們可以像操縱數據一樣操縱函數,所以在這些語言中函數和數據一樣是「一等公民」。First-classFunction是函數式語言的一個關鍵特性,很多函數式編程的強大能力來源于此。NervosCKB使用Cell模型來構建整個共同知識庫的狀態。Cell模型是一個非常簡單但是與現有區塊鏈設計非常不同的狀態模型,我們在設計Cell模型的時候已經意識到,基于Cell模型的DApp將擁有一些非常不同的性質,就像函數式編程和面向對象編程會產生風格迥異的設計模式和程序特性一樣。在這篇文章中,我想闡述Cell模型可以支持的一種非常有趣的DApp設計模式,我們把它叫做First-classAsset,因為通過它我們可以將用戶自定義的加密資產變成區塊鏈中的「一等公民」。狀態模型的快速入門

在Cell模型之前,各種區塊鏈使用的狀態模型基本上就是兩種:UTXO模型和Account模型。使用UTXO模型的代表是比特幣。UTXO是未被花費的交易輸出的縮寫,一個UTXO可以簡單的理解為是一個比特幣,然而和一般的硬幣不同,每一個UTXO的面值都是不一樣的。每個UTXO中都通過一段鎖腳本記錄了這枚硬幣的所有者是誰,同時保證只有所有者能夠花費這枚硬幣。每一個比特幣全節點都會維護當前所有UTXO的集合,這個集合我們就稱為比特幣賬本的當前狀態。每一次比特幣轉賬都是一個從UTXO集合中刪除幾個硬幣然后又增加幾個新硬幣的過程。由于整個賬本狀態是基于UTXO這個最小單元構建的,我們把它叫做UTXO模型。使用Account模型的代表是以太坊。Account就是賬戶,和銀行賬戶類似,代表了資產的所有者,賬戶里面最重要的數據是余額,記錄這個賬戶持有的以太幣的數量。賬戶是資產所有者的代表,所有者可以是人或者智能合約,外部賬戶通過私鑰簽名來驗證資產所有權,合約賬戶的所有權通過合約代碼來確定,合約代碼和狀態都保存合約賬戶內部。外部賬戶要轉賬的時候,用戶在交易中指明轉賬數量,賬本中的付款方賬戶余額和收款方賬戶余額就會做相應的減少和增加。由于整個賬本狀態是基于賬戶這個最小單元構建的,我們把它叫做Account模型。First-classCoin

Ripple CTO:“收集東西的動力”與“數字版權概念”是NFT有趣的兩個點:Ripple首席技術官David Schwartz在最近的一次采訪中表示,他認為與NFT相關的兩個點很有趣,一個是“人們收集東西的動力”,另一個是數字版權的概念。Schwartz指出,盡管許多人目前擁有“捆綁的數字版權”(例如從谷歌Play商店購買的書籍或歌曲),但這些版權的用戶體驗并不好。(CryptoGlobe)[2021/3/22 19:06:28]

UTXO模型和Account模型代表了構建賬本狀態的兩種思路。賬本是所有者與資產之間關系的集合。UTXO模型以資產為基礎建模,先構建出「硬幣」的概念,再給硬幣賦予所有者的屬性;Account模型以所有者為基礎建模,先構建出「賬戶」的概念,再給賬戶賦予余額的屬性。以哪種方式作為基礎模型決定了系統中的操作的基本對象是資產還是賬戶。所以我們說,硬幣是UTXO模型中的First-classCitizen,每一個UTXO都是一個具有獨立標識符的對象,Coin是用戶直接操作的對象,賬戶是基于Coin建立的上層概念。因此UTXO是First-classCoin。在Account模型中,賬戶是First-classCitizen,聚合在賬戶余額中的硬幣沒有獨立的標識符。賬戶是用戶直接操作的對象,資產的轉移是由賬戶作為用戶的代理實現的,這一點在接受方是合約賬戶時體現的最為明顯。在這樣的模型下,用戶定義加密資產更像是通過第三方記賬的方式,而非點對點的方式轉移,這個差異會將第三方引入資產轉移流程,增加智能合約的設計復雜度。為了降低這種復雜度,Account模型中的交易需要加入特殊的邏輯,但是這樣的特殊邏輯只有助于原生資產,同時造成對原生資產和用戶自定義資產的不同代碼路徑。對于這些問題,KelvinFitcher寫過一篇LookingatownershipintheEVM進行了很好的分析,在此不再贅述。有了這些背景,我們應該更容易理解CKB的這一設計理念了:有了Cell模型,我們能夠簡化設計,并在NervosCKB上實現作為「一等公民」的用戶定義資產,簡稱First-classAssets.First-classAssets與UTXO一樣,具有獨立標識符,可以被用戶及腳本直接引用和操作。First-classState

上市公司FRMO:XRP是加密領域最有趣的資產之一:上市風險管理公司FRMO Corp.在最近一封致股東的信中概述了其對加密市場的看漲立場,并特別指出XRP是加密領域最有趣的資產之一,因為它沒有挖礦,而且本質上是通貨緊縮的。此外,FRMO表示,其私人合伙投資目前持有按市值計算的前十大加密資產。該公司還在挖掘ETH、ETC、ZEC、LTC和BCH。(The Daily Hodl)[2020/12/5 14:04:39]

如何實現First-classAssets呢?無論用何種方式,我們都需要記錄所有者和資產之間的關系。這些關系記錄,本質上是經過共識的狀態。要有First-classAssets,必須先有First-classState,而這正是Cell模型的出發點。NervosCKB的名字來自于CommonKnowledgeBase的縮寫。我們之所以把Nervos網絡中的區塊鏈稱為「共同知識庫」,是因為它的責任是持續不斷的對網絡的共同狀態形成全球共識,換句話說,CKB是一個由全球共識維護的狀態庫。一個狀態庫的基本模型,很自然的是將整個狀態劃分為更小的狀態單元組織起來。這些更小的狀態單元,就是Cell。由于Cell是一種狀態單元,有獨立的標識符,可以被直接引用,作為參數傳遞給腳本,它是CKB中的「一等公民」,也就是說狀態是CKB中的「一等公民」。Cell不僅僅是一種First-classState,而且是最簡單的一種First-classState:一個Cell中只有Capacity,Data,Lock以及Contract四個字段。如下圖所示,Cell的所有者可以直接更新Cell中保存的狀態,不需要經過任何中間方,而在Account模型中用戶只能通過合約代碼來操作賬戶內的狀態,狀態實際上是托管在合約手中的。值得指出的是,有了Cell,CKB實際上就獲得了一種有狀態的編程模型。一種普遍的觀點是,以太坊編程模型的表達能力來自圖靈完備的虛擬機,實際上通過賬戶使得智能合約能夠保存計算狀態是一個大過EVM的優點。CKB通過Cell和CKB-VM的組合實現了一種新的有狀態的智能合約編程模型。這個編程模型更加適合Layer2,因為通過分析Layer2協議的共同模式我們可以看到,協議層之間的交互對象應該是狀態對象而不是事件對象,Layer1應該是一個狀態層而不是計算層。CKB編程模型的另一個特點是,不區分數據和代碼。這句話的意思是,與Account模型不同,合約的狀態和代碼都可以儲存在Cell的Data字段中,保存代碼的Cell可以被其它Cell引用,合約的狀態和代碼不需要綁定在一起,存放在一個地方。開發者可以通過一條簡單的指令把代碼Cell或者數據Cell的內容載入運行時內存,然后根據需要自行將其解釋為代碼執行或者數據來讀寫。有了這些底層支持,我們就可以將一個合約的代碼和狀態分開保存在不同的地方:CodeCell的Code字段存放代碼,而StateCell的State的字段則保存狀態;在StateCell中通過Contractref引用CodeCell來建立對自身保存的State的業務邏輯約束,通過Lockref引用另外一個CodeCell來表達StateCell的所有權。每一個StateCell可以屬于不同的用戶,因此在Cell模型下獨立的用戶狀態是非常容易實現的模式。如果想對CKB-VM上的合約編寫有更多了解,請看這兩篇文章:HelloCKB!AnIntroductiontoNervosCKB-VM有了這樣一種編程模型,我們就能構造First-classAsset了。First-classAsset

The Block創始人:DeFi是當今加密貨幣和數字資產中最有趣的事情:推特網友Trolly McTrollface表示,批評DeFi是沒有意義的,因為每個參與其中的人都知道這只是一堆名字聽起來很滑稽的傳銷騙局,并且這其中每個人都相信自己能成功登上頂峰。The Block創始人Mike Dudas對此反駁稱,這絕對不是真的,不要讓沒錢的人和永恒的懷疑論者使你相信這一點。DeFi是當今加密貨幣和數字資產中最有趣的事情(與CBDC/數字美元相比)。[2020/9/14]

CKB中的用戶定義資產可以這樣來構造:設計資產定義合約,規定資產的主要約束;保存合約代碼到AssetDefinitionCell中;在滿足發行權限的情況下,發行者發行資產,并將資產狀態保存在另外的StateCell中。StateCell的Contract字段引用保存了資產定義的CodeCell,保證StateCell的變化受到資產定義的約束;AssetCell的持有者可以通過更新Lock來改變AssetCell的所有者。可以看到,在這樣的設計中,用戶定義的資產是作為獨立對象存在于系統中的,每一份資產都是一個Cell,每一份資產都擁有自己的標識符。我們完全可以認為AssetCell是UTXO的通用化版本。這樣的First-classAsset有如下優點:AssetCell可以被引用,可以直接作為其它合約的參數傳入。只要引用AssetCell的Input有正確的用戶授權,合約就可以正常的使用用戶的AssetCell;資產定義與資產狀態分離。AssetDefinitionCell的所有者是資產的發行者,而AssetCell是屬于每個用戶的。AssetCell的授權邏輯和業務邏輯分離,所有權完全由自己的Lock決定,與AssetDefinition的邏輯無關,這意味著First-classAsset不是托管在資產發行者、開發者或是資產定義合約的手中,而是真正完全屬于用戶的;用戶的資產相互隔離,用戶資產狀態獨立。CKB的經濟模型關注狀態存儲激勵問題:用戶在區塊鏈上保存狀態不僅需要支付寫入費用,而且應該承擔與存儲時間成正比的存儲成本。如果用戶的資產狀態混合在一個地方保存,這些狀態的存儲成本有誰來支付將是一個問題。;只要AssetDefinitionCell的Lock邏輯允許,資產定義可以獨立更新。上面的示意圖只是在CKB上實現First-classAsset的一種方式。除了上面討論的方面,還有一些有趣的細節,例如,AssetDefinitionCell是不是可以有屬于自己的狀態?AssetDefinitionCell以及AssetCell的Capacity應該由誰來提供?對于這些問題,我們已經有了一些非常漂亮的想法。這些細節的設計、討論和實現是我們現在正在進行的工作。Summary

直播|Ruby > 跨界區塊鏈后那些有趣的事兒:金色財經 · 直播主辦的《 幣圈 “后浪” 仙女直播周》第5期20:00準時開始,本期“后浪”仙女 鏈聞 市場負責人Ruby將在直播間聊聊“跨界區塊鏈后那些有趣的事兒”,感興趣的朋友掃碼移步收聽![2020/6/19]

Cell模型是一個高度抽象的模型,事實上,你不僅可以在Cell上實現First-classAsset,也可以在Cell上模擬Account。通過這篇文章的介紹我們可以看出,Cell模型是一個不同于UTXO模型和Account模型的新設計。除了狀態模型的不同,CKB還將計算轉移到了鏈外,在鏈上只需要對狀態進行驗證的邏輯。獨特的狀態模型和計算驗證分離這兩點決定了CKB的編程模型上必然會出現新的DApp范式和設計模式。從CKB白皮書完成到現在將近一年的時間中,我們看到越來越多的人開始關注和討論First-classState和First-classAsset這兩種新的思路,這些進展讓我們非常興奮。如果你有興趣對First-classState和First-classAsset進行更多的探討,或是在CKB的編程模型上有什么有趣的想法,歡迎聯系我們討論~CKB的代碼已經完全開源,這篇文章介紹的內容在代碼中都已經實現。歡迎給我們的代碼提出各種意見:https://github.com/nervosnetwork/ckb-demo-ruby-sdkhttps://github.com/nervosnetwork/ckbhttps://github.com/nervosnetwork/ckb-vm感謝IanYang,XuejieXiao,KevinWang在CKB和Cell模型設計中提供的幫助~

聲音 | 王新喜:將在1-2天內發布一些關于LTC有趣的內容:萊特幣基金會聯合創始人王新喜在推特表示,將在1-2天內發布一些關于LTC的有趣的內容。[2019/9/6]

Tags:ASSCELCELLSETKompasseCeltronECELL價格SETH價格

ETH
THE:一次毫不權威的分析,撩撥幣圈對USDT的微弱信任_HER

巴哈馬中央銀行每月都發布一份財務報表,匯總了巴哈馬所有銀行的資金,為島上所有銀行提供綜合財務指標。該會計師以今年10月巴哈馬央行財務報表為依據,展開分析.

1900/1/1 0:00:00
加密貨幣:比特幣和加密貨幣的市值為何在下降?_區塊鏈

從2017年末的20000美金,到現在的3700美金,比特幣一跌再跌,國內外的加密貨幣分析師,以及行業大佬樂此不疲地分析著比特幣暴跌的原因,BCH硬分叉,美國SEC放棄了ICO.

1900/1/1 0:00:00
區塊鏈:2019,區塊鏈行業內那些值得期待的事_COIN

本文來自白話區塊鏈,作者:五火球教主,星球日報經授權發布。時光如梭,轉眼間,已然踏入2019。對于多數參與者來說,2018的區塊鏈,是讓人失望的一年.

1900/1/1 0:00:00
FID:研報 | 汽車金融與區塊鏈如何共生_比特幣

作者:Olivia犇睿資本分析師汽車行業細分領域介紹01.汽車金融廣義的汽車金融包括各個環節內發生的的資金融通行為.

1900/1/1 0:00:00
以太坊:2018年11月以太坊、EOS平臺及DApp數據分析報告_DAP價格

作者:鏈塔分析師團隊來源:鏈塔智庫前言以太坊是一個開源的區塊鏈平臺,它允許任何人在平臺上部署和使用DApp,以太坊被認為是區塊鏈2.0的代表之作.

1900/1/1 0:00:00
比特幣:2018 年終盤點:8 個最厲害的加密貨幣交易員_TER

2018年就要過去了,對于加密貨幣市場而言,今年注定是不平凡的一年。有趣的是,雖然目前整個加密行業深陷“熊市”,但是價格波動仍然給一些專業交易員提供了足夠的運作空間,他們可以通過預測價格走勢來獲.

1900/1/1 0:00:00
ads