本篇文章的作者是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
波卡創始人Gavin Wood:Web 3是“后斯諾登時代網絡”,一個非常有趣的社會實驗:金色財經報道,波卡Polkadot創始人Gavin Wood在BlockDown: DeData Conference大會上對互聯網演變發表看法,他表示,因為愛德華·斯諾登事件,讓互聯網感到創建一個全新平臺的緊迫性,他將這種在全球范圍內進行人際互動的方式稱為“后斯諾登時代網絡”(Post-Snowden Web)。展望未來10年或20年,Gavin Wood未來大規模多用戶應用程序框架可以為用戶提供“實際”保證。當被要求預測十年后的Web 3,Gavin Wood回答說:“這將是一個非常有趣的社會實驗,我們將看到世界對隱私、自我主權和透明度的關注,知道系統或服務規則如何運作,非常真實。”[2021/12/4 12:50:10]
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
馬斯克:狗狗幣是最有趣的加密貨幣:推特網友表示,人們把狗狗幣當作笑話來取笑,卻忽略了一個事實,那就是作為笑話是狗狗幣最大的優點之一。對此,馬斯克回復表示,它是最有趣的加密貨幣。[2021/2/7 19:09:16]
如何實現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
Microstrategy CEO被福布斯評為加密貨幣領域最有趣的新人:福布斯發文發布加密貨幣獎,投資超過10億美元比特幣的Microstrategy CEO Michael Saylor被評為加密貨幣領域最有趣的新人(the Most Interesting Newcomer)。[2020/12/29 16:00:18]
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
YFI創始人:流動性挖礦保險轉售衍生出一些有趣的現象:9月14日午間,YFI項目創始人AndreCronje今日發推提到了加密保險的一些有趣現象:
1,人們在做流動性挖礦時正在大量購買保險;
2,流動性挖礦結束后,保險對他們而言就失效了;
3,Nexus(DeFi保險平臺)表示,用戶可以無風險持有資產,這意味著,如果發生了可索賠事件,保險可以按保險費轉售。這使得市場上出現折扣保險,協議可以在二級市場上以便宜的價格為系統購買廣泛的保險,為可索賠事件創造一個安全網;這是一個好的公益事業,如果用戶不做流動性挖礦了,可以考慮把保險捐贈給社區,這樣社區就能在意外發生時有后備方案。[2020/9/14]
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模型設計中提供的幫助~
動態 | 英國查爾斯王子稱區塊鏈是非常有趣的發展:據ambcrypto報道,根據用戶@coindorado發布的視頻,英國王儲查爾斯王子在柏林被問及比特幣和加密貨幣時表示不太了解。但在被問及區塊鏈技術時,儲查爾斯王子稱其為”非常有趣的發展”。[2019/5/8]
編者按:本文來自藍狐筆記,本文作者:MathanSexer,文章來源于medium.com,翻譯:藍狐筆記公眾號社群“Chanteur”,Odaily星球日報經授權轉載.
1900/1/1 0:00:00數字貨幣錢包被認為是區塊鏈世界里的流量入口,甚至是未來交易所的終極形態。據數據公司Statista的數據顯示,截至2018年9月底,全球數字貨幣錢包用戶總數已超2800萬.
1900/1/1 0:00:00半年前,以太坊技術及應用大會上,V神曾說,金融和游戲會成為區塊鏈應用的領跑者。“金融行業應用的最早,金融和游戲會成為區塊鏈應用領跑者,其他的行業同樣有前景。”那時他說.
1900/1/1 0:00:0012月10日,韓國幾位國會議員,韓國Upbit、Bithumb等幾家頭部交易所高管等一起就加密貨幣監管問題舉行首次官方辯論.
1900/1/1 0:00:00最近加密市場幣價大跌,比特幣甚至一度跌破3500美元關口,熊市之下,穩定幣成為投資者避險的工具,多個穩定幣被爆大量增發。穩定幣在今年的加密市場格外惹眼,不僅僅因為加密市場的熊市.
1900/1/1 0:00:00文|秦曉峰、吳鹽、黃雪姣出品|Odaily星球日報編者按:新一年的鐘聲剛剛敲響,屬于2019的喧囂、瘋狂、奇跡、感動正在開啟.
1900/1/1 0:00:00