智能合约重构社会契约(12)天秤币
1. 定義
一種穩(wěn)定的數(shù)字加密貨幣,并將全部使用真實(shí)的資產(chǎn)儲(chǔ)備進(jìn)行擔(dān)保。與大多數(shù)加密貨幣波動(dòng)劇烈不同,天秤幣將使用低波動(dòng)性的資產(chǎn)作為抵押來保證天秤幣價(jià)值的穩(wěn)定
- 賬戶規(guī)模數(shù)十億
- 需要極高的交易吞吐量和低延遲
- 保障高度安全可靠
- 進(jìn)行擴(kuò)展
2. 3個(gè)特點(diǎn)
2.1 Move語言
2.2 LibraBFT共識(shí)機(jī)制
一種拜占庭容錯(cuò)機(jī)制:所有的驗(yàn)證者節(jié)點(diǎn)對(duì)將要執(zhí)行的交易及其執(zhí)行順序達(dá)成一致。與基于拜占庭容錯(cuò)的共識(shí)機(jī)制一樣,LibraBFT也允許不超過1/3的驗(yàn)證者節(jié)點(diǎn)發(fā)生故障或是被破壞時(shí),共識(shí)協(xié)議依然能夠保證網(wǎng)絡(luò)的正常運(yùn)行,這種共識(shí)協(xié)議可以實(shí)現(xiàn)低延遲性以及高交易量的處理。
2.3 改善過的區(qū)塊鏈數(shù)據(jù)結(jié)構(gòu)
區(qū)塊鏈內(nèi)的數(shù)據(jù)按照Merkel樹的存儲(chǔ)方法進(jìn)行儲(chǔ)存, 與其他區(qū)塊鏈將區(qū)塊鏈視為交易區(qū)塊的集合不同,天秤幣區(qū)塊鏈可以長期記錄交易歷史和狀態(tài),允許使用者從任何時(shí)間點(diǎn)讀取任何數(shù)據(jù)。
3. Move語言
天科幣中交易的程序部分主要是由 Move字節(jié)碼編寫的腳本。在運(yùn)行時(shí),天秤幣的交易都用Move語言的虛擬機(jī)來運(yùn)行,可以有效地在運(yùn)行前發(fā)現(xiàn)腳本中的惡意代碼,防止攻擊。若腳本沒有問題,則會(huì)被虛擬機(jī)正確執(zhí)行。
-
語言初衷:讓用戶實(shí)現(xiàn)自定義的交易邏輯和“智能合約”
-
名稱來源:移動(dòng),就是資產(chǎn)轉(zhuǎn)移的意思。 數(shù)據(jù)只有拷貝(copy)可進(jìn)行相關(guān)數(shù)據(jù)的復(fù)制。使用Move,資產(chǎn)就像紙鈔轉(zhuǎn)移一般,一方得到,另一方失去,數(shù)字資產(chǎn)沒有復(fù)制。
-
語言優(yōu)勢(shì):使用Move語言書寫的交易腳本可以用Move語言的虛擬機(jī)進(jìn)行檢查,保證腳本中不會(huì)出現(xiàn)惡意錯(cuò)誤。所有的交易腳本都將是一個(gè)一次性的程序,不會(huì)被其他的交易腳本調(diào)用。
-
注重安全性和可靠性
每個(gè)資源只有-個(gè)所有者,每個(gè)資源只能花費(fèi)一次,對(duì)新資源的創(chuàng)建進(jìn)行限制。通過這樣的限制,使Move語言中的資源可以避免“雙花”或者是被盜取。 -
可以便利地自動(dòng)檢驗(yàn)交易是否滿足某些特性。在一段時(shí)間以后,Move語言還將向開發(fā)者開放創(chuàng)建合約的權(quán)限。
3.1 module和resource
天秤幣里代碼和數(shù)據(jù)是相互分開的:module用于儲(chǔ)存代碼,resource用于存儲(chǔ)數(shù)據(jù)。
-
module中的代碼可以被復(fù)用,只需要使用不同的resource即可。
-
用戶的賬戶是一個(gè)包含若干module和resource的容器,每個(gè)賬戶中都可以儲(chǔ)存module和resource,而 resource可以在其他賬戶地址中找到對(duì)應(yīng)的module,這樣就可以實(shí)現(xiàn)對(duì)代碼部分的復(fù)用。
-
每一個(gè)resource都需要通過對(duì)應(yīng)的module進(jìn)行聲明和定義。一個(gè)resource只能夠通過聲明這種resource的module進(jìn)行創(chuàng)建或者銷毀,
-
resource只能夠被移動(dòng),而不可以被復(fù)制
矩形表示 module,橢圓表示resource。
3.2 交易的內(nèi)容:
- 交易發(fā)起人地址
- 交易發(fā)起人公鑰
- Move語言書寫的程序
- 單位Gas的價(jià)格
- Gas的最大值
- 序列號(hào)。
3.3 交易腳本
包括:腳本的可選輸人列表、一個(gè)用Move字節(jié)碼書寫的發(fā)布的module可選列表。
- 腳本允許交易調(diào)用發(fā)布在分類賬本上的多個(gè)module,使用條件判斷邏輯,執(zhí)行本地計(jì)算等
- Move字節(jié)碼可以書寫十分靈活的交易腳本。這也意味著Move腳本可以實(shí)現(xiàn)一些諸如同時(shí)向多個(gè)人進(jìn)行轉(zhuǎn)賬的操作。
3.4 執(zhí)行交易步驟
step1. 檢杏簽名、
step2. 執(zhí)行序言。序言中需要通過比較賬戶下的驗(yàn)證密鑰是否等于公鑰的哈希值來確定發(fā)起人的身份,而后檢驗(yàn)賬戶是否能夠承擔(dān)最大Gas花費(fèi),最后保證序列號(hào)是正確的。
step3. 驗(yàn)證腳木利lmodule、檢驗(yàn)由Move語言所書寫的腳本和里面涉及的mol-ule是否安全,此步驟將由Move詔言的虛擬機(jī)進(jìn)行檢驗(yàn)。
step4. 發(fā)布module。每一個(gè)程序中使用的module都應(yīng)該在發(fā)起人賬戶中被發(fā)布。
step5. 執(zhí)行腳本。
step6. 執(zhí)行結(jié)語。計(jì)算使用的Gas量并且修改發(fā)起人賬戶的序列號(hào)
總結(jié)
以上是生活随笔為你收集整理的智能合约重构社会契约(12)天秤币的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 智能合约重构社会契约(11)天德区块链智
- 下一篇: Docker (2)与虚拟机的比较