摘要:區(qū)塊鏈上的底層模型設(shè)計,實際上就是分別以比特幣和以太坊為代表的兩種模型比特幣的模型以太坊的模型而實際上二者的差異千差萬別,代表了兩種思路。以太坊的模型和銀行賬戶類似,在賬戶中記錄用戶的余額。
6 月 18 日,F(xiàn)acebook 加密貨幣項目 Libra 發(fā)布的白皮書引起了區(qū)塊鏈業(yè)內(nèi)人士的廣泛關(guān)注。Nervos 團(tuán)隊及社區(qū)伙伴們也對 Libra 進(jìn)行了大量的討論。
Nervos 合伙人王博認(rèn)為:
所有討論 Libra 是不是一個好貨幣,算不算貨幣以及 Facebook 搞的聯(lián)盟鏈?zhǔn)遣皇钦鎱^(qū)塊鏈的討論都搞錯了重點。Libra 白皮書第一句寫得非常清晰「...為十億人服務(wù)的金融基礎(chǔ)設(shè)施。」貨幣只是金融基礎(chǔ)設(shè)施的基礎(chǔ)。有了 Move 智能合約,有了用戶和基礎(chǔ)資產(chǎn),Libra 上將誕生有史以來摩擦最小的金融服務(wù)。會有些什么服務(wù)呢?余額寶、花唄、借唄、工資理財,等等。區(qū)別是這些服務(wù)很有可能是由全球化的第三方提供的,而且他們之間可以互相依賴:房貸可以在鏈上被分割成小額理財出售給其他用戶。現(xiàn)在,Open Banking 剛有了個概念,API Bank 剛有了文檔,針對它們的降維打擊就來了。
區(qū)塊鏈發(fā)展到現(xiàn)在展現(xiàn)了兩個層面的獨特價值。一個是資產(chǎn)的去中心化發(fā)行,就是所謂的傳統(tǒng)公鏈價值。一個是金融的去中心化服務(wù),它服務(wù)的對象可以是傳統(tǒng)金融資產(chǎn),比如貨幣,債券等。后者對世界的價值一點不比前者小。Libra 就是定位在后者的頭部公鏈。
Libra 定位在金融基礎(chǔ)設(shè)施,很準(zhǔn)確很有價值。它可以大幅降低金融摩擦,為用戶提供價值。
Libra 其中的一個亮點是提到了「First-Class Resources」這個概念,在 Move 編程語言的白皮書中這樣寫道:「First-class Resources 是一個非常普遍的概念,程序員可以使用實現(xiàn)安全的數(shù)字資產(chǎn)(的發(fā)行),還可以編寫正確的商業(yè)邏輯來包裝資產(chǎn)和實施訪問控制策略。」
First-class Resources 翻譯過來是「資源是一等公民」,在 Libra 中用戶可以發(fā)行自己的資產(chǎn),并且可以被用戶及腳本直接引用和操作。
而關(guān)于這個概念,實際上 Nervos 架構(gòu)師 Jan 在去年的文章《First-class Asset》中已經(jīng)對這個概念進(jìn)行了深入的分析。
First-class Asset區(qū)塊鏈上的底層模型設(shè)計,實際上就是分別以比特幣和以太坊為代表的兩種模型:
比特幣的 UTXO 模型
以太坊的 Account 模型
而實際上二者的差異千差萬別,代表了兩種思路。
以太坊的 Account 模型和銀行賬戶類似,在賬戶中記錄用戶的余額。賬戶是用戶直接操作的對象,資產(chǎn)的轉(zhuǎn)移是由賬戶作為用戶的代理實現(xiàn)。但是當(dāng)需要對用戶定義的資產(chǎn)進(jìn)行操作的時候,則需要引入第三方,即托管加密資產(chǎn)的智能合約執(zhí)行資產(chǎn)轉(zhuǎn)移流程。
而比特幣的 UTXO 全名為「Unspent Transaction Output」,每個 UTXO 都是比特幣,UTXO 中都通過一段鎖定腳本(lock script)記錄這個比特幣的所有者,我們可以通過比特幣腳本對 UTXO 進(jìn)行編程實現(xiàn)部分業(yè)務(wù)邏輯,比特幣就是一種「First-class Coin」。
而 Nervos CKB 中使用 Cell 模型進(jìn)行構(gòu)建,Cell 是一種通用化的 UTXO 模型,可以存儲任意類型的數(shù)據(jù),并在基于 RISC-V 指令集編寫的 CKB-VM 加持下,能夠?qū)崿F(xiàn)更多的商業(yè)邏輯。Cell 可以被直接引用,作為參數(shù)傳遞給腳本,Cell 的所有者可以直接更新 Cell 中保存的狀態(tài),不需要經(jīng)過任何的第三方。
通過 Cell 模型可以發(fā)行用戶定義資產(chǎn)(User Defined Asset),可以這樣來構(gòu)造:
設(shè)計資產(chǎn)定義合約(Asset Definition),規(guī)定資產(chǎn)的主要約束(例如總數(shù)量,發(fā)行者,交易前后數(shù)量不變等)。
保存合約代碼到 Asset Definition Cell 中。
在滿足發(fā)行權(quán)限的情況下,發(fā)行者發(fā)行資產(chǎn),并將資產(chǎn)狀態(tài)保存在另外的 State Cell 中。State Cell 的 Type 字段引用保存了資產(chǎn)定義的 Code Cell,保證 State Cell 的變化受到資產(chǎn)定義的約束。
Asset Cell 的持有者可以通過更新 Lock 來改變 Asset Cell 的所有者。
實現(xiàn) First-class Asset 之后,我們能夠做什么?實現(xiàn) First-class 之后,最大的區(qū)別就是:用戶掌握所有權(quán),能夠?qū)Y產(chǎn)進(jìn)行直接的操作,而不是如 Account 模型那樣調(diào)用合約賬戶進(jìn)行間接操作。
特別是,在不同區(qū)塊鏈之間資產(chǎn)的遷移過程中,我們需要遷移的是資產(chǎn)而不是賬戶,這方面 Account 模型就受到了很大的阻力,比如知名的 Kelvin Fichter 提出的 EVM-On-Plasma 問題。
Asset Cell 可以被引用,可以直接作為其它合約的參數(shù)傳入。只要引用 Asset Cell 的 input 有正確的用戶授權(quán),合約就可以正常的使用用戶的 Asset Cell。
資產(chǎn)定義與資產(chǎn)狀態(tài)分離。Asset Definition Cell 的所有者是資產(chǎn)的發(fā)行者,而 Asset Cell 是屬于每個用戶的。Asset Cell 的授權(quán)邏輯和業(yè)務(wù)邏輯分離,所有權(quán)完全由自己的 lock 決定,與 Asset Definition 的邏輯無關(guān),這意味著 First-class Asset 不是托管在資產(chǎn)發(fā)行者、開發(fā)者或是資產(chǎn)定義合約的手中,而是真正完全屬于用戶的。
用戶的資產(chǎn)相互隔離,用戶資產(chǎn)狀態(tài)獨立,對經(jīng)濟(jì)設(shè)計問題帶來了解決方案。公鏈的經(jīng)濟(jì)模型需要關(guān)注狀態(tài)存儲激勵問題,用戶在區(qū)塊鏈上保存狀態(tài)不僅需要支付寫入費用,還應(yīng)該承擔(dān)與存儲時間成正比的存儲成本。在以太坊提出的狀態(tài)租賃方案中,最大的痛點是針對用戶的資產(chǎn)狀態(tài)混合保存的合約(如 ERC-20)狀態(tài)租賃收取,而在 Cell 模型中,只要 Asset Definition Cell 的 lock 邏輯允許,資產(chǎn)定義可以獨立更新。
接下來我們還需要做什么?除了通過 Cell 模型實現(xiàn)了 First-class Asset 以外,Nervos CKB 還將計算移到了鏈外,鏈上只需要對狀態(tài)進(jìn)行驗證的邏輯。獨特的狀態(tài)模型和計算驗證分離,這兩點決定了未來在 Nervos CKB 上會出現(xiàn)新的、有趣的 DApp 范式。
從 CKB 白皮書完成到現(xiàn)在的一年半時間里,我們看到越來越多的人開始關(guān)注和討論 First-class State 和 First-class Asset 這兩種新的思路(雖然大家用的名詞各自都不一樣),這些進(jìn)展讓我們非常興奮。如果你有興趣對 First-class State 和 First-class Asset 進(jìn)行更多的探討,或是在 CKB 的編程模型上有什么有趣的想法,歡迎聯(lián)系我們討論:
https://talk.nervos.org
CKB 的代碼已經(jīng)完全開源,這篇文章介紹的內(nèi)容在代碼中都已經(jīng)實現(xiàn)。歡迎給我們的代碼提出各種意見:
https://github.com/nervosnetw... (CKB 上用 Ruby 腳本編程的示例,理解 CKB 上編程模型的最佳入口)
https://github.com/nervosnetw...
https://github.com/nervosnetw...
文:Ryan
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/24759.html
摘要:使用模型的代表是比特幣。每一個比特幣全節(jié)點都會維護(hù)當(dāng)前所有的集合,這個集合我們就稱為比特幣賬本的當(dāng)前狀態(tài)即當(dāng)前的賬本。每一次比特幣轉(zhuǎn)賬都是一個從集合中刪除幾個硬幣屬于付款方然后又增加幾個新硬幣屬于收款方和或付款方的過程。 showImg(https://segmentfault.com/img/bVblzCB?w=1219&h=803); 本篇文章的作者是 Jan,文章闡述了 Cell...
摘要:使用模型的代表是比特幣。每一個比特幣全節(jié)點都會維護(hù)當(dāng)前所有的集合,這個集合我們就稱為比特幣賬本的當(dāng)前狀態(tài)即當(dāng)前的賬本。 本文是對前幾期秘猿區(qū)塊鏈課堂中關(guān)于 Cell 模型的總結(jié)。底層公鏈 CKB 的 Cell 模型是一個高度抽象的模型,事實上,你不僅可以在 Cell 上實現(xiàn) First-class Asset,也可以在 Cell 上模擬 Account。通過本文的介紹我們可以看出,Ce...
摘要:無論如何,摩根對密碼貨幣從蔑視到參與,表明傳統(tǒng)金融體系已經(jīng)高度重視這場密碼革命。據(jù)悉,目前全球范圍內(nèi)至少家銀行金融機構(gòu)不同程度地涉入?yún)^(qū)塊鏈并考慮發(fā)行自己的數(shù)字貨幣。 showImg(https://segmentfault.com/img/bVbuHQO); 最近,F(xiàn)acebook發(fā)布Libra白皮書引起全球關(guān)注,各國金融監(jiān)管機構(gòu)紛紛發(fā)表對Libra的態(tài)度和看法;而在幾個月前,美國最大...
摘要:無論如何,摩根對密碼貨幣從蔑視到參與,表明傳統(tǒng)金融體系已經(jīng)高度重視這場密碼革命。據(jù)悉,目前全球范圍內(nèi)至少家銀行金融機構(gòu)不同程度地涉入?yún)^(qū)塊鏈并考慮發(fā)行自己的數(shù)字貨幣。 showImg(https://segmentfault.com/img/bVbuHQO); 最近,F(xiàn)acebook發(fā)布Libra白皮書引起全球關(guān)注,各國金融監(jiān)管機構(gòu)紛紛發(fā)表對Libra的態(tài)度和看法;而在幾個月前,美國最大...
閱讀 3296·2021-11-24 09:39
閱讀 2804·2021-10-12 10:20
閱讀 1903·2019-08-30 15:53
閱讀 3075·2019-08-30 14:14
閱讀 2600·2019-08-29 15:36
閱讀 1120·2019-08-29 14:11
閱讀 1955·2019-08-26 13:51
閱讀 3407·2019-08-26 13:23