當(dāng)前位置:首頁 > 物聯(lián)網(wǎng) > 區(qū)塊鏈
[導(dǎo)讀] TrustNote 是支持挖礦的 DAG 公有鏈,具有創(chuàng)新的雙層共識(shí)機(jī)制,面向數(shù)字通證發(fā)行、區(qū)塊鏈游戲和社交網(wǎng)絡(luò)等應(yīng)用場(chǎng)景,基礎(chǔ)代幣稱為“TTT”。TrustNote的宗旨是“極輕、極速、極趣”

TrustNote 是支持挖礦的 DAG 公有鏈,具有創(chuàng)新的雙層共識(shí)機(jī)制,面向數(shù)字通證發(fā)行、區(qū)塊鏈游戲和社交網(wǎng)絡(luò)等應(yīng)用場(chǎng)景,基礎(chǔ)代幣稱為“TTT”。TrustNote的宗旨是“極輕、極速、極趣”?!皹O輕”是指 TrustNote 擁有輕量化的架構(gòu)和智能合約系統(tǒng),支持輕量級(jí)應(yīng)用擴(kuò)展和微錢包;“極速”是指 TrustNote 支持高并發(fā)交易、交易確認(rèn)速度快、dApp 開發(fā)簡單上線快;“極趣”是指 TrustNote 打造的應(yīng)用生態(tài)體系,讓新奇特的想法在 TrustNote 上流暢地運(yùn)行,讓使用區(qū)塊鏈成為一種生活方式。

關(guān)鍵特性

擁有雙層共識(shí)機(jī)制,是支持挖礦的 DAG 公有鏈

支持高并發(fā)交易,交易極速確認(rèn)

支持高級(jí)聲明式智能合約

數(shù)字通證發(fā)行平臺(tái)

哈希算法:BLAKE2

簽名算法:EdDSA

多平臺(tái)錢包、輕錢包、微錢包,支持第三方擴(kuò)展

有向無環(huán)圖

若一個(gè)有向圖無法從某頂點(diǎn)出發(fā)經(jīng)過若干條邊回到該點(diǎn),則稱該圖為有向無環(huán)圖(Directed Acyclic Graph,DAG)。使用 DAG 數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)區(qū)塊鏈賬本數(shù)據(jù)的模式,正逐步受到更多開發(fā)者的關(guān)注。已有 IOTA 和 Byteball 等多個(gè)項(xiàng)目利用DAG 技術(shù)成功構(gòu)建了能夠穩(wěn)定運(yùn)行的公有鏈,證明了 DAG 鏈的可行性。

在 TrustNote 中,交易被視為一種消息,支持多種類型的消息,多個(gè)消息可組合成一個(gè)數(shù)據(jù)塊,該數(shù)據(jù)塊稱作一個(gè)單元(Unit),單元與單元之間相互鏈接組合成一個(gè) DAG 圖。由于單元可以鏈接到任意一個(gè)或多個(gè)之前的單元,不需要為共識(shí)問題付出更多的計(jì)算成本和時(shí)間成本,也不必等待節(jié)點(diǎn)之間數(shù)據(jù)強(qiáng)同步,甚至沒有多個(gè)數(shù)據(jù)單元拼裝區(qū)塊的概念,因此可以極大提高交易的并發(fā)量,并把確認(rèn)時(shí)間降低到最小。

TrustNote 使用以下方案解決雙花問題(一份數(shù)字貨幣被花了兩次)。首先,嘗試在 DAG 圖上找到一條以創(chuàng)世單元為起點(diǎn)的主鏈(Main Chain,MC),并給位于主鏈上的單元分配索引,創(chuàng)世單元索引為 0,創(chuàng)世單元的子單元索引為 1,以此類推。然后,對(duì)于不在主鏈上的單元,定義其索引等于引用此單元的第一個(gè)主鏈單元的索引。最終,DAG 上的每筆交易都擁有了一個(gè)索引。如果兩筆交易嘗試使用同一筆輸出,只需要比較其索引(Main Chain Index,MCI)的大小,小的有效,大的無效,由此解決雙花問題。例如,圖 2-2 中存在兩筆雙花交易,當(dāng)它們的 MCI 確定后,其中一筆雙花的 MCI 是 11,而另一筆雙花的 MCI 是 15。所以,我們可以認(rèn)定 MCI 為 11 的交易有效,而拒絕 MCI 為 15 的交易。

安全性方面,不同于比特幣的區(qū)塊鏈以巨大算力作保障,基于 DAG 的TrustNote 依靠交易的快速推進(jìn),以及交易之間關(guān)聯(lián)關(guān)系的不確定性作為“防火墻”,使整個(gè)系統(tǒng)毫無規(guī)則,無從攻擊。TrustNote 具有創(chuàng)新的雙層共識(shí)機(jī)制和 TrustME共識(shí)算法,利用該算法周期性地選出若干超級(jí)節(jié)點(diǎn),賦予它們數(shù)據(jù)單元的公證權(quán),并會(huì)根據(jù)它們發(fā)出有效的公證單元獲得 Coinbase 獎(jiǎng)勵(lì)。

項(xiàng)目對(duì)比

TrustNote 站在巨人的肩膀上,吸納現(xiàn)有區(qū)塊鏈項(xiàng)目的優(yōu)點(diǎn),解決它們的突出問題,構(gòu)建更加繁榮的應(yīng)用生態(tài)。TrustNote 采用創(chuàng)新的雙層共識(shí)機(jī)制,具有高安全性的密碼算法,以挖礦的方式使超級(jí)節(jié)點(diǎn)參與單元公證。TrustNote 與當(dāng)下知名 DAG 鏈(IOTA 和 Byteball)進(jìn)行了橫向?qū)Ρ?,?duì)比結(jié)果如表 2-1 所示。

共識(shí)機(jī)制

TrustNote 采用雙層共識(shí)機(jī)制,該共識(shí)機(jī)制包括基礎(chǔ)共識(shí)和公證共識(shí)?;A(chǔ)共識(shí)是指節(jié)點(diǎn)發(fā)送的新交易單元對(duì)舊交易單元的驗(yàn)證與引用,也稱“DAG 共識(shí)”;公證共識(shí)是指根據(jù)公證節(jié)點(diǎn)提交的公證單元嚴(yán)格確定其它單元的順序,也稱“TrustME 共識(shí)”。這種雙層共識(shí)機(jī)制有利于提供較高的交易吞吐量和較短的交易確認(rèn)時(shí)間,能有效解決過度分叉和雙花問題。

為使 TrustNote 生態(tài)更加健壯,我們?cè)O(shè)計(jì)了兩種 TrustME 共識(shí)方案。TrustNote將在早期采用基于工作量證明(Proof of Work,PoW)的 TrustME 共識(shí)方案,該方案稱為“TrustME-PoW”;未來,TrustNote 計(jì)劃采用基于拜占庭協(xié)商(ByzantineAgreement,BA)的 TrustME 共識(shí)方案,該方案稱為“TrustME-BA”。無論哪種方案,若超級(jí)節(jié)點(diǎn)參與共識(shí)并被選作公證節(jié)點(diǎn),它將會(huì)獲得 TTT 作為獎(jiǎng)勵(lì)。

在 TrustME-PoW 中,超級(jí)節(jié)點(diǎn)通過證明自己的運(yùn)算能力獲得公證權(quán),而在TrustME-BA 情況下,利用偽隨機(jī)算法選擇超級(jí)節(jié)點(diǎn)并賦予其公證權(quán)。無論哪種TrustME 共識(shí)方案,公證節(jié)點(diǎn)發(fā)出的公證單元都同樣遵守單元引用規(guī)則,并且不會(huì)影響其它單元之間已經(jīng)建立的引用關(guān)系。而只有在公證單元成為主鏈上的穩(wěn)定單元后,才能最終證明某個(gè)公證節(jié)點(diǎn)做了有益于維護(hù) TrustNote 的工作,并因此獲得公證獎(jiǎng)勵(lì)。另外,兩種 TrustME 共識(shí)機(jī)制都鼓勵(lì)所有節(jié)點(diǎn)公平參與,相比中心化和弱中心化的方案更加公平、可信、安全。

1.節(jié)點(diǎn)

TrustNote節(jié)點(diǎn)有四種類型,分別為超級(jí)節(jié)點(diǎn)(super node)、全節(jié)點(diǎn)(full node)、輕節(jié)點(diǎn)(light node)和微節(jié)點(diǎn)(micro node),節(jié)點(diǎn)對(duì)比如表 4-1 所示。

TrustNote 具有與比特幣相似的 P2P 網(wǎng)絡(luò),每一個(gè)節(jié)點(diǎn)可選擇一組隨機(jī)的 peer節(jié)點(diǎn),并利用 Gossip 協(xié)議來傳播消息。為了保證消息不被偽造,每一個(gè)消息都被原始發(fā)送者的私鑰簽名,其它節(jié)點(diǎn)在轉(zhuǎn)發(fā)它之前要驗(yàn)證簽名是否有效。為了避免消息傳播出現(xiàn)前向回環(huán),節(jié)點(diǎn)不會(huì)轉(zhuǎn)發(fā)重復(fù)的消息。

成為 TrustNote 超級(jí)節(jié)點(diǎn),需滿足以下條件:

有資源:具有良好的網(wǎng)絡(luò)帶寬、存儲(chǔ)空間和運(yùn)算能力,最好擁有公網(wǎng) IP;

有幣:在多個(gè)共識(shí)周期內(nèi)平均持有一定數(shù)量的 TTT;

有信用:之前提交的所有單元都被認(rèn)為是有效的。

成為超級(jí)節(jié)點(diǎn)之后,可參與 TrustME 共識(shí),進(jìn)而成為公證節(jié)點(diǎn)。公證節(jié)點(diǎn)可通過發(fā)送公證單元獲得公證獎(jiǎng)勵(lì)并能賺取普通單元的公證費(fèi)。

單元引用

TrustNote 中每個(gè)單元可引用多個(gè)彼此之間沒有父子繼承關(guān)系的單元,而且新的子單元會(huì)優(yōu)先鏈接有更多父單元的單元。如果沿著某個(gè)父單元向子單元方向推進(jìn),當(dāng)一個(gè)單元被多個(gè)子單元引用時(shí),我們將觀察到許多分叉,而當(dāng)多個(gè)父單元被同一個(gè)子單元引用時(shí),這些單元將逐漸匯聚。

引用父單元的目的是建立單元之間的模糊次序。引用父單元之前,需要驗(yàn)證父單元有效性,如簽名是否有效、單元引用是否合規(guī)等。TrustNote 不要求節(jié)點(diǎn)之間強(qiáng)同步,不同節(jié)點(diǎn)看到的 DAG 鏈圖存在臨時(shí)性的不一致,但這并不會(huì)破壞已經(jīng)建立的父子關(guān)系,只可能會(huì)使一個(gè)父單元有多個(gè)子單元。而正因?yàn)椴蛔非蠊?jié)點(diǎn)之間的單元數(shù)據(jù)強(qiáng)同步,TrustNote 可以容忍高交易吞吐量和網(wǎng)絡(luò)延遲。

為減少 DAG 中可能出現(xiàn)的垃圾單元,所有節(jié)點(diǎn)提交新單元時(shí)需要支付交易費(fèi)。交易費(fèi)分成兩部分,分別支付給將該單元作為父單元的節(jié)點(diǎn)以及為該單元提供公證的節(jié)點(diǎn)。若一個(gè)單元被多個(gè)子單元引用,那么發(fā)送擁有最小哈希值單元的節(jié)點(diǎn)獲得引用獎(jiǎng)勵(lì)。同時(shí),限制獲得引用獎(jiǎng)勵(lì)的子單元的 MCI 值應(yīng)等于或略大于其父單元的 MCI,激勵(lì)節(jié)點(diǎn)盡可能快地引用更多最新的父單元,以獲得更多引用獎(jiǎng)勵(lì)。這有助于 DAG 快速收斂,減少分叉。

3.主鏈

主鏈?zhǔn)窃谥付▎卧姷?DAG 圖中沿著子-父鏈接找到一個(gè)單鏈,可以把所有單元都關(guān)聯(lián)在一起。所有的單元要么直接在這條主鏈之上,要么從主鏈上的單元沿著 DAG 的邊緣通過少量的跳躍可以到達(dá)。如果我們從另一個(gè)頂點(diǎn)開始,我們會(huì)構(gòu)建另一條主鏈。如果以相同的規(guī)則在兩個(gè)不同的頂點(diǎn)選擇主鏈,這兩條主鏈在回溯過程中一旦相交,它們會(huì)在交點(diǎn)之后完全重合。最壞的情況,兩條主鏈在創(chuàng)世單元相交。雖然節(jié)點(diǎn)生成單元的過程中是相互獨(dú)立的,也不存在任何協(xié)調(diào)的可能,我們?nèi)云谕麈溨g的交點(diǎn)可以盡可能的靠近頂點(diǎn)。

一旦某單元選擇出一條主鏈(MC),它就可以在兩個(gè)沖突的無序單元之間建立總序。首先,給直接位于主鏈上的單元做個(gè)索引,創(chuàng)世單元索引為 0,創(chuàng)世單元的子單元索引為 1,以此類推,沿著主鏈給主鏈上的所有單元分配索引。對(duì)于不在主鏈上的單元,我們找到第一個(gè)直接或間接引用此單元的主鏈單元。這樣,就給每一個(gè)單元分配了一個(gè)主鏈索引(MCI)。然后,給定兩個(gè)單元,擁有較小MCI 的單元被認(rèn)為是更早生成的。如果兩個(gè)單元的 MCI 恰好相同并且存在沖突,則擁有較小哈希值的單元有效。TrustNote 會(huì)保留雙花的所有單元,包括最終認(rèn)定無效的單元。

主鏈構(gòu)建過程實(shí)際上是父單元選擇算法的遞歸調(diào)用過程。通過參與 TrustME共識(shí),超級(jí)節(jié)點(diǎn)有機(jī)會(huì)成為具有公證權(quán)的節(jié)點(diǎn),可以發(fā)送公證單元。通過比較可選路徑中公證單元的數(shù)量,父單元選擇算法能在給定的所有可選父單元中選出一個(gè)作為“最優(yōu)父單元”。對(duì)于不同節(jié)點(diǎn),主鏈構(gòu)建過程是完全獨(dú)立的,僅依賴于節(jié)點(diǎn)自身能看到的 DAG 圖。從 DAG 圖的無子單元開始,沿著最優(yōu)父單元的路徑做歷史回溯,節(jié)點(diǎn)可以構(gòu)建一條能通達(dá)創(chuàng)世單元的主鏈。

4.交易確認(rèn)

當(dāng)獲得新的單元時(shí),每一個(gè)節(jié)點(diǎn)會(huì)持續(xù)追蹤自身的當(dāng)前 MC,好像他們將要基于當(dāng)前的所有無子單元構(gòu)建新單元。不同節(jié)點(diǎn)各自的當(dāng)前 MC 也許不同,因?yàn)樗鼈冇锌赡芸吹讲煌姆欠€(wěn)定單元集合。而當(dāng)新單元到達(dá)時(shí),當(dāng)前 MC 會(huì)不斷變化。然而,當(dāng)前 MC 的足夠老的那部分會(huì)保持不變。

未來所有的 MC 在回溯時(shí)將會(huì)匯集某個(gè) MC 單元,這個(gè) MC 單元以及之前的所有 MC 單元都是穩(wěn)定的,不會(huì)因?yàn)樾聠卧牡絹矶淖?。事?shí)上,創(chuàng)世單元是一個(gè)天然的初始穩(wěn)定節(jié)點(diǎn)。假設(shè)我們已經(jīng)基于當(dāng)前的非穩(wěn)定單元集合構(gòu)造了一條當(dāng)前 MC,并且這條鏈上已經(jīng)有一些之前認(rèn)定穩(wěn)定的節(jié)點(diǎn),也就是說未來的當(dāng)前 MC 都被相信會(huì)在這個(gè)點(diǎn)或早于這個(gè)點(diǎn)匯集,然后就沿同一條路徑回溯。如果我們能找到一個(gè)方法,把這個(gè)穩(wěn)定點(diǎn)向遠(yuǎn)離創(chuàng)世單元的方向推進(jìn),就可以根據(jù)數(shù)學(xué)歸納法證明這個(gè)穩(wěn)定點(diǎn)存在。而被這個(gè)穩(wěn)定點(diǎn)所引用的單元將獲得確定的 MCI,包含在這些單元中的所有消息也將被確認(rèn)。

5.交易費(fèi)與挖礦獎(jiǎng)勵(lì)

發(fā)布交易需要支付交易費(fèi),節(jié)點(diǎn)根據(jù)生成單元的字節(jié)數(shù)計(jì)算交易費(fèi)。交易費(fèi)被分成兩部分,60%作為單元引用費(fèi),40%作為公證費(fèi)。引用費(fèi)將被該單元的子單元獲得,而公證費(fèi)將被累加到主鏈中 MCI 值最接近的公證單元所在共識(shí)輪的公證獎(jiǎng)金池。公證單元也需要支付交易費(fèi),交易費(fèi)計(jì)算方法與普通單元相同。公證單元包含較多信息,通常比普通單元占用更大的存儲(chǔ)空間,因而交易費(fèi)也相對(duì)較高,激勵(lì)其它節(jié)點(diǎn)引用公證單元。

在 TrustNote 中,DAG 鏈的增長與 TrustME 共識(shí)是異步的,每輪共識(shí)會(huì)選舉出多名公證人,這些公證人有權(quán)提交公證單元。在主鏈沒有穩(wěn)定的情況下,無法確定哪些公證單元在主鏈上,也無法計(jì)算公證單元的有效引用,所以沒辦法像比特幣一樣直接給出 Coinbase。當(dāng)某共識(shí)輪的所有公證節(jié)點(diǎn)發(fā)出的所有公證單元都成為穩(wěn)定單元后,才能確定該共識(shí)輪的每個(gè)公證節(jié)點(diǎn)分別可以獲得多少公證獎(jiǎng)金。需要說明的是,普通單元也可能會(huì)出現(xiàn)在主鏈中,它們可能會(huì)獲得父單元支付的引用費(fèi),但不會(huì)分享公證獎(jiǎng)金。

TrustME 共識(shí)周期性地執(zhí)行,每輪都會(huì)選出一定數(shù)量的公證節(jié)點(diǎn)。如果某輪公證節(jié)點(diǎn)發(fā)送的所有公證單元都成為穩(wěn)定單元,則稱該輪共識(shí)穩(wěn)定。每個(gè)公證單元的第一個(gè)消息是公證節(jié)點(diǎn)自身的公證權(quán)證明。每次達(dá)成 TrustME 共識(shí)后,當(dāng)前輪公證節(jié)點(diǎn)生成的首個(gè)公證單元必須包含最新穩(wěn)定共識(shí)輪的 Coinbase。需要說明的是,最新穩(wěn)定共識(shí)輪的 Coinbase 在進(jìn)行新一輪 TrustME 共識(shí)時(shí)已經(jīng)確定,是TrustME 共識(shí)算法的輸入變量之一。在同一共識(shí)輪內(nèi),由不同公證節(jié)點(diǎn)生成的其它公證單元不再包含上述內(nèi)容,而是通過驗(yàn)證并引用首個(gè)公證單元的方式確認(rèn)穩(wěn)定共識(shí)輪的 Coinbase 內(nèi)容。這樣做可以進(jìn)一步削弱公證節(jié)點(diǎn)的能力,防止惡意的超級(jí)節(jié)點(diǎn)通過多次獲得公證權(quán)干擾穩(wěn)定共識(shí)輪公證節(jié)點(diǎn)的 Coinbase 收益。

6.TrustME-PoW

TrustME-PoW 是基于工作量證明選擇公證節(jié)點(diǎn)的共識(shí)機(jī)制,每輪共識(shí)將選擇少量節(jié)點(diǎn)成為公證節(jié)點(diǎn),并確定相關(guān)公證節(jié)點(diǎn)的優(yōu)先級(jí)。TrustME-PoW 共識(shí)算法每五分鐘執(zhí)行一次,每次達(dá)成共識(shí)會(huì)選出不超過二十個(gè)超級(jí)節(jié)點(diǎn)作為公證節(jié)點(diǎn),這些公證節(jié)點(diǎn)有權(quán)發(fā)送公證單元并以此獲得公證獎(jiǎng)勵(lì)。

TrustME-PoW 基于 Equihash 算法,以 BLAKE2 為底層哈希函數(shù),降低使用ASIC 挖礦的優(yōu)勢(shì),更多超級(jí)節(jié)點(diǎn)可以公平參與挖礦,使超級(jí)節(jié)點(diǎn)成為公證節(jié)點(diǎn)的概率分布更加合理。Equihash 算法的輸入為當(dāng)前輪數(shù)、種子和難度系數(shù)等內(nèi)容。當(dāng)前輪數(shù)起始為 0,每輪加 1;每輪共識(shí)的種子根據(jù)上一輪共識(shí)的種子和取得的共識(shí)結(jié)果計(jì)算得出,種子可被公開獲得及驗(yàn)證;難度系數(shù)根據(jù)全網(wǎng)平均算力推算得出,通過調(diào)整難度系數(shù)可以控制達(dá)成共識(shí)的平均時(shí)間間隔。

公證單元必須滿足前文所述的單元引用規(guī)則。公證單元只能引用非穩(wěn)定單元,并且必須驗(yàn)證引用單元及其“子-父”鏈的正確性,直到驗(yàn)證到穩(wěn)定的 MC 單元。鼓勵(lì)公證單元引用多個(gè)非穩(wěn)定狀態(tài)的最優(yōu)父單元,加速單元穩(wěn)定,促使 DAG 鏈向前推進(jìn)并收斂。

只有公證單元成為主鏈上的單元,才能獲得相應(yīng)的公證獎(jiǎng)勵(lì)。同一共識(shí)輪內(nèi),所有主鏈上公證單元按照各自的有效引用單元數(shù)量計(jì)算當(dāng)前共識(shí)輪公證獎(jiǎng)金的分配比例。每個(gè)公證單元在成為主鏈單元并穩(wěn)定之后,計(jì)算出該公證單元的有效引用數(shù)量。公證節(jié)點(diǎn)直接引用自己發(fā)送的公證單元或普通單元不計(jì)為有效引用,防止公證節(jié)點(diǎn)之間惡意爭奪獎(jiǎng)金,發(fā)送無意義單元。

7.TrustME-BA

TrustME-BA 是一種基于可驗(yàn)證隨機(jī)函數(shù)(Verifiable Random FuncTIon,VRF)和 BA 算法構(gòu)建的共識(shí)機(jī)制,該共識(shí)機(jī)制能夠隨機(jī)選出少量超級(jí)節(jié)點(diǎn)作為公證節(jié)點(diǎn),并確定公證節(jié)點(diǎn)的優(yōu)先級(jí)。

TrustME-BA 每一分鐘執(zhí)行一次,每次達(dá)成共識(shí)將隨機(jī)選出若干超級(jí)節(jié)點(diǎn)作為公證節(jié)點(diǎn),公證節(jié)點(diǎn)有權(quán)發(fā)送公證單元,公證單元須滿足 DAG 共識(shí)中的父子引用規(guī)則。公證節(jié)點(diǎn)發(fā)送的公證單元成為穩(wěn)定主鏈的單元后,該公證節(jié)點(diǎn)可以獲得公證獎(jiǎng)勵(lì)。當(dāng)交易活躍時(shí),新單元不斷產(chǎn)生,則公證節(jié)點(diǎn)會(huì)及時(shí)獲得公證獎(jiǎng)勵(lì);當(dāng)交易不活躍時(shí),極端情況下一分鐘內(nèi)沒有新單元產(chǎn)生,已經(jīng)發(fā)送公證單元的節(jié)點(diǎn)在發(fā)送的公證單元成為穩(wěn)定主鏈單元時(shí)獲得公證獎(jiǎng)勵(lì),沒有發(fā)送公證單元的節(jié)點(diǎn)不獲得公證獎(jiǎng)勵(lì)。

智能合約

TrustNote 擁有非圖靈完備的聲明式智能合約系統(tǒng),支持布爾運(yùn)算、數(shù)學(xué)運(yùn)算、合約數(shù)據(jù)存儲(chǔ),不支持棧和跳轉(zhuǎn)指令。這種智能合約語言能直接描述合約期望的目標(biāo),表達(dá)能力強(qiáng),易于理解,安全性高。與以太坊相比,TrustNote 的智能合約系統(tǒng)具有復(fù)雜度低、輕量化和高性能等優(yōu)勢(shì),同時(shí)還降低了合約編寫難度和出錯(cuò)概率。

TrustNote 沒有賬戶的概念,TTT 以 UTXO 的形式存儲(chǔ)在不可篡改的分布式賬本的數(shù)據(jù)單元中。在 TrustNote 的智能合約語言里,地址定義是一個(gè)布爾表達(dá)式,可計(jì)算出是 true 或者 false 的結(jié)果。智能合約的所有表達(dá)式,最終都會(huì)計(jì)算出一個(gè)布爾值,多個(gè)子表達(dá)式可以通過布爾操作聯(lián)合起來。例如,下面這個(gè)定義需要兩個(gè)簽名。

[“and”, [

[“sig”, {pubkey: “one pubkey”}],

[“sig”, {pubkey: “another pubkey”}]

]]

為了花費(fèi)與以上定義地址的資金,必須同時(shí)提供兩個(gè)簽名。我們使用 JSON來編寫表達(dá)式,可以使用具備很好支持的、已經(jīng)過優(yōu)化的 JSON 解析器。

“Or” 操作可以用來描述需要提供任意一個(gè)公鑰所對(duì)應(yīng)私鑰的簽名。

[“or”, [

[“sig”, {pubkey: “l(fā)aptop pubkey”}],

[“sig”, {pubkey: “smartphone pubkey”}],

[“sig”, {pubkey: “tablet pubkey”}]

]]

可以用以上定義實(shí)現(xiàn)在三個(gè)不同設(shè)備上可以控制同一個(gè) address,這三個(gè)設(shè)

備可能是你的電腦、手機(jī)和平板。

地址定義的指令可以嵌套,如:

[“and”, [

[“or”, [

[“sig”, {pubkey: “l(fā)aptop pubkey”}],

[“sig”, {pubkey: “tablet pubkey”}]

]],

[“sig”, {pubkey: “smartphone pubkey”}]

]]

地址定義可以要求一個(gè)集合中參與者必須達(dá)到某個(gè)閾值,例如 2-3 簽名。

[“r of set”, {

required: 2,

set: [

[“sig”, {pubkey: “l(fā)aptop pubkey”}],

[“sig”, {pubkey: “smartphone pubkey”}],

[“sig”, {pubkey: “tablet pubkey”}]

}]

上面的表達(dá)式意味著任意兩個(gè)簽名便可以使表達(dá)式為真。如果一個(gè)密鑰丟失了,這個(gè)地址仍然可用,并且能夠修改這個(gè)定義,給丟失的密鑰設(shè)置一個(gè)新值。

另外,不同條目可以賦予不同的權(quán)重,并可以設(shè)定一個(gè)最小權(quán)重要求。

[“weighted and”, {

required: 50,

set: [

{weight: 40, value: [“sig”, {pubkey: “CEO pubkey”}] },

{weight: 20, value: [“sig”, {pubkey: “COO pubkey”}] },

{weight: 20, value: [“sig”, {pubkey: “CFO pubkey”}] },

{weight: 20, value: [“sig”, {pubkey: “CTO pubkey”}] }

}]

地址定義可以引用其它地址。

[“and”, [

[“address”, “ADDRESS 1 ”],

[“address”, “ADDRESS 2”]

]]

這種定義意味著把簽名委托給其它地址,這對(duì)于構(gòu)造共同控制的地址是很有用處的。這種語法給予了用戶很多方便,他們能根據(jù)自己的意愿去改變他們自己有權(quán)管理的那部分地址的定義,而不會(huì)影響別的用戶。

地址定義可以用來配備添加到 DAG 中的數(shù)據(jù)。

[“in data feed”, [

[“ADDRESS1”, “ADDRESS2”, …],

“data feed name”,

“=”,

“expected value”

]]

如果由某地址添加到 DAG 的數(shù)據(jù)反饋結(jié)果與期望值相等,則表達(dá)式的結(jié)果為 true。通過指定數(shù)據(jù)反饋的來源,可以實(shí)現(xiàn)鏈上預(yù)言機(jī)功能。利用鏈上預(yù)言機(jī)可以擴(kuò)展出非常強(qiáng)大的功能。

[“or”, [

[“and”, [

[“address”, “ADDRESS 1”],

[“in data feed”, [[“EXCHANGE ADDRESS”], [“EURUSD”, “+”, “0.200”], “》”,

“1.1500”]]

]],

[“and”, [

[“address”, “ADDRESS 2”],

[“in data feed”, [[“TIMESTAMPER ADDRESS”], “dateTIme”, “》”, “2016-10-01

00:00:00”]]

]]

]]

上面的表達(dá)式依賴兩個(gè)預(yù)言機(jī),一個(gè)會(huì)發(fā)布?xì)W元/美元的匯率,另外一個(gè)會(huì)發(fā)布時(shí)間。首先,雙方為這個(gè)表達(dá)式定義的地址準(zhǔn)備資金,向這個(gè)地址支付各自相應(yīng)的份額。然后,如果由兌換地址公布的歐元/美元匯率加上 0.200 曾經(jīng)超過1.150,則地址 1 將得到全部資金。如果在 2016 年 10 月 1 日之前,以上情況沒有發(fā)生,則地址 2 將得到全部資金。另外一個(gè)有趣的例子中,消費(fèi)者向商人購買貨物,但是他不是很信任商人,如果貨物沒有發(fā)給他,希望錢可以退還給自己。

此時(shí),消費(fèi)者可以把錢付給用以下方式定義的一個(gè)共享地址。

[“or”, [

[“and”, [

[“address”, “MERCHANT ADDRESS”],

[“in data feed”, [[“FEDEX ADDRESS”], “tracking”, “=”, “123456”]]

]],

[“and”, [

[“address”, “BUYER ADDRESS”],

[“in data feed”, [[“TIMESTAMPER ADDRESS”], “datetime”, “》”, “2016-10-01

00:00:00”]]

]]

]]

這個(gè)定義有效的前提是 FedEx 會(huì)在鏈上存儲(chǔ)包裹的單號(hào)。如果貨物發(fā)放了,根據(jù)第一個(gè)條款,商人可以解資金。如果在商定的日期之前,貨物沒有發(fā)放,消費(fèi)者可以拿回自己的資金。

地址定義可以實(shí)現(xiàn)交易查詢。假定用戶想購買至少 1200 個(gè)單元的數(shù)字資產(chǎn),但是只愿意支付 1000 TTT,而且他不愿意一直在線等待賣家。他可以只在交易平臺(tái)發(fā)布一個(gè)訂單,當(dāng)匹配的賣家出現(xiàn)時(shí),自動(dòng)完成交易。他可以按照以下方式創(chuàng)建地址,并發(fā)送 1000 TTT 到該地址。

[“or”, [

[“address”, “USER ADDRESS”],

[“and”, [

[“address”, “EXCHANGE ADDRESS”],

[“has”, {

what: “output”,

asset: “ID of alternative asset”,

amount_at_least: 1200,

address: “USER ADDRESS”

}]

]]

]]

第一個(gè)或條件的含義是用戶在任何時(shí)候都可以撤銷訂單,拿回他的 TTT。第二個(gè)或條件當(dāng)滿足條件的交易出現(xiàn)后,將 TTT 付給委托交易平臺(tái),授權(quán)它來花費(fèi)資金。交易平臺(tái)會(huì)公開發(fā)布訂單信息,賣家可以查看訂單列表,生成一個(gè)交換資產(chǎn)交易,并且和交易平臺(tái)一起簽名。

發(fā)行量和分發(fā)規(guī)則

TTT 是 TrustNote 基礎(chǔ)代幣的簡稱,單位是 Mega Notes (MN)。

發(fā)行總量:1,000,000,000 MN,無增發(fā),500,000,000 MN(占比 50%)為初始分發(fā),投資兌換的方式分發(fā);500,000,000 MN(占比 50%)為公證獎(jiǎng)金,可挖礦獲得。支持 PoW 挖礦的主鏈預(yù)計(jì)于 2018 年 Q4 正式上線,屆時(shí)用戶可以下載和使用挖礦客戶端,并申請(qǐng)成為超級(jí)節(jié)點(diǎn),通過積極參與主鏈共識(shí)獲得公證權(quán),通過發(fā)布有效的公證單元獲得公證獎(jiǎng)勵(lì)。

公證獎(jiǎng)勵(lì)策略為首年提供總公證獎(jiǎng)金的 6.79%,之后公證獎(jiǎng)金逐年衰減,衰減情況參見圖 7-1。其中,公證獎(jiǎng)金的 90%分配給提供有效公證單元的超級(jí)節(jié)點(diǎn),公證獎(jiǎng)金的 10%分配給基金會(huì),用于社區(qū)運(yùn)維、項(xiàng)目孵化、貢獻(xiàn)者獎(jiǎng)勵(lì)等。

TrustME-PoW 共識(shí)平均每 5 分鐘一輪,每年共約 10 萬輪,每輪公證獎(jiǎng)金總量 = 公證獎(jiǎng)金*90% + 單元公證費(fèi)。

? 第一年,每輪公證獎(jiǎng)金約為 323.04 MN;

? 第二年,每輪公證獎(jiǎng)金約為 262.39 MN;

? 第三年,每輪公證獎(jiǎng)金約為 232.34 MN。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉