IOTA 交易,確認(rèn)和共識(shí)

Tangle 初始狀態(tài)

與區(qū)塊鏈技術(shù)不同磨澡,IOTA 并不是一條有著時(shí)間序列概念碗啄,每個(gè)區(qū)塊前后相連的鏈,鏈中的每個(gè)塊包含一些交易稳摄。在 IOTA 中稚字,每筆交易都可以其他交易連接(所謂連接,就是驗(yàn)證其他交易)厦酬,并且可并行發(fā)生胆描。下面的內(nèi)容將就如何在 IOTA 中加入交易,驗(yàn)證交易及其共識(shí)機(jī)制展開仗阅。

初始 tangle 狀態(tài)

上圖是 tangle 的一個(gè)案例昌讲,下面內(nèi)容都會(huì)圍繞該圖展開。綠色交易代表已經(jīng)被網(wǎng)絡(luò)以高確定性(high certainty)地確認(rèn)减噪,藍(lán)色交易是部分確認(rèn)短绸,也就是確定性較低⌒ⅲ灰色(以及下面的黃色)方框表示還沒有任何人驗(yàn)證過的 tip (tip 有尖端鸠按,尾部的意思,比如手指尖就可以用這個(gè)詞饶碘,這里的 tip 表示 tangle 中最新的尚無人驗(yàn)證的交易)目尖。紅色交易,表示有沖突扎运,或無效交易瑟曲。

在上圖中饮戳,交易 α 并非一筆普通交易。它引用了交易 hl洞拨,由于交易 h 已經(jīng)被交易 l 引用了扯罐, α 會(huì)選擇一個(gè) tip(l) 和 一個(gè)顯然不是 tip 的交易(h)。這么做目前似乎并沒有問題烦衣,網(wǎng)絡(luò)也允許這樣的行為歹河。

加入一筆交易

加入一筆交易

為了向 tangle 中加入一筆新的交易,用戶必須從 tangle 中隨機(jī)挑選出兩個(gè) tip(tip 就是尚未確認(rèn)的交易)花吟,并對兩個(gè) tip 進(jìn)行驗(yàn)證秸歧。所謂驗(yàn)證,意味著用戶需要檢查 tip 的簽名衅澈,即所謂的 PoW键菱,并確保所選的 tip 與之前的任何交易(無論是直接相關(guān)還是間接相關(guān))都沒有沖突。如果所選的 tip 是合法的今布,用戶就對其進(jìn)行引用经备,也就是加入新的交易。

如果交易既沒有被所選的 tip 直接引用部默,也沒有被間接引用侵蒙,那么對于當(dāng)前的驗(yàn)證過程來說,這些交易就是不相關(guān)的交易甩牺。對于不相關(guān)交易蘑志,會(huì)由其他人或是之后的交易來進(jìn)行驗(yàn)證,并將它們加入到 tangle 中贬派。

另一筆交易

另一筆交易

與此同時(shí)(其實(shí)不必同時(shí),早一點(diǎn)晚一點(diǎn)都無所謂)澎媒,另一個(gè)用戶可能正在一個(gè)不同的位置加入新的交易搞乏。它選擇了 tip zy。如此一來戒努,它就在更大的范圍上驗(yàn)證了已經(jīng)驗(yàn)證過的同樣交易请敦,即 akmn储玫,加上額外的一些沒有在交易 1 驗(yàn)證路徑上的交易(l, o, r, t, v, yz)侍筛。

新的 Tangle 狀態(tài)

Imgur

交易 12 的驗(yàn)證路徑有重合之處,我們可以看到有一些交易僅被確認(rèn)一次撒穷,有些交易被確認(rèn)兩次匣椰。被當(dāng)前所有 tip 驗(yàn)證和確認(rèn)的交易就被認(rèn)為是完全確認(rèn)。因此端礼,交易 n 進(jìn)入 tangle 更深一層禽笑,現(xiàn)在變成了綠色入录。從現(xiàn)在開始,隨后所有連接到 1 與/或 2 或者它的孩子佳镜,將會(huì)保持再驗(yàn)證和再確認(rèn)的交易狀態(tài)僚稿。

我們已經(jīng)學(xué)到了什么?

  • 沒有人需要看到和驗(yàn)證所有的交易蟀伸。每個(gè)用戶僅需要選擇和驗(yàn)證兩筆交易及其父交易蚀同。如此一來,他們僅驗(yàn)證了 tangle 的一部分而已啊掏。當(dāng)其他用戶選擇并驗(yàn)證不同的 tip 和路徑蠢络,完整 tangle 的協(xié)同驗(yàn)證就出現(xiàn)了。

  • 在某個(gè)時(shí)間點(diǎn)以后脖律,一旦一筆交易在 tangle 中進(jìn)入足夠深的位置谢肾,無論從最新的 tip 中的任意一個(gè),無論從直接或是間接路徑上它都存在小泉。這樣的交易就被認(rèn)為是完全確認(rèn)芦疏,并且會(huì)被每一個(gè)新的交易再驗(yàn)證,再確認(rèn)微姊。我們可以認(rèn)為它被所有用戶(和機(jī)器)確認(rèn)酸茴,并且確定性很高。

  • 為了對確認(rèn)進(jìn)行檢查兢交,接收者只需要檢查交易是否被已有的所有 tip 直接或間接引用(或者通過一個(gè)確定比率薪捍,如果確定性更低的話,比如 80%配喳,也可以接受)酪穿。這時(shí)候就不需要再驗(yàn)證或是其他類似操作了。注意:可能會(huì)有上千個(gè) tip晴裹。與其檢查每個(gè) tip 的父節(jié)點(diǎn)被济,更可能的是選擇一個(gè)隨機(jī)樣本,并做一個(gè)統(tǒng)計(jì)評估涧团。

注意交易 n 還沒有被確認(rèn)只磷,因?yàn)楝F(xiàn)在我們的 tip 比較少。下面會(huì)展示更多 tip 的場景泌绣。

確認(rèn)級別

Imgur

我加入了一些新的 tip 對上例進(jìn)行了擴(kuò)展钮追。對于每個(gè)新的 tip,它的驗(yàn)證路徑都被高亮了阿迈。通過顏色元媚,你可以清楚地看到哪些交易被多少 tip 所驗(yàn)證,及其驗(yàn)證等級。

一個(gè)商家可能會(huì)根據(jù)自身情況設(shè)定個(gè)性化的確認(rèn)/確定等級惠毁。如果交易速度比交易價(jià)值更重要(比如微支付或零價(jià)值支付)犹芹,又或者發(fā)送方是一個(gè)朋友,一個(gè)人可能會(huì)以 75% 的確認(rèn)等級接受交易鞠绰。在 75% 的確定等級(3/4 tip)下腰埂,交易 l, o, 和 t 可能也會(huì)被確認(rèn)。

傳播延遲

傳播延遲

理論上蜈膨,由于更慢的 PoW 或者傳播延遲屿笼,可能在稍后出現(xiàn)一筆慢速交易 5。鑒于我們已經(jīng)知道了交易 5翁巍,交易 n 就不會(huì)再被所有的 tip 完全確認(rèn)驴一。但是,他們的確認(rèn)確定性(confirmation certainty)仍然很高灶壶,有 4/5 tip 確認(rèn)(實(shí)際上會(huì)有上千而不是 5 個(gè) tip)肝断。記住,所有一切都是為了一個(gè)高概率的確定性 -- 就像在區(qū)塊鏈里面驰凛,區(qū)塊的每次確認(rèn)就是增加了確定性的概率胸懈。

請注意,本例中的交易 5 的狀態(tài)并非從 “確認(rèn)” 轉(zhuǎn)變?yōu)?“未確認(rèn)”恰响。它僅是從改變了數(shù)學(xué)上精確的確定性比率(比如趣钱,如果一共有 100 個(gè) tip,從 100% 到 99%)胚宦。一旦一些隨后的交易引用了交易 15首有,交易 n 就會(huì)被所有的 tip 再次完全確認(rèn)。這樣小的確認(rèn)等級變化將不太可能會(huì)發(fā)生枢劝,更進(jìn)一步的交易會(huì)進(jìn)入 tangle井联。

請注意,100% 的確認(rèn)/確定等級無論如何都很難達(dá)到您旁,因?yàn)榭倳?huì)出現(xiàn)一些無正面貢獻(xiàn)的 tip(比如低矮,引用一些無用的交易,或是根本不遵守協(xié)議)被冒。

雙花

雙花

想象這樣一種情況,一個(gè)用戶在 tangle 的兩個(gè)不同的地方加入了兩筆沖突的交易(wy)轮蜕。對于隨后的用戶昨悼,在他們的驗(yàn)證路徑上可能只有這些沖突交易里面的其中一筆(取決于他們的 tip 選擇,和一些可能的傳播時(shí)延)跃洛。比如率触,加入了交易 12 的用戶就不會(huì)看到?jīng)_突,并會(huì)確認(rèn)他們所選的 tip汇竭。因此葱蝗,雙花就得到了第一次確認(rèn)穴张。但是,遲早必然會(huì)發(fā)生的是两曼,這兩筆沖突的交易會(huì)出現(xiàn)在一筆交易的驗(yàn)證路徑上皂甘。比如,交易 5 就會(huì)看到?jīng)_突悼凑,繼而不會(huì)確認(rèn)選出的 tip偿枕。相反,為了確保它自身會(huì)是一筆有效的交易户辫,它會(huì)重新選擇 tip 直到找到不沖突的交易渐夸。

依賴于 tip 的選擇和 tangle 的推進(jìn),在沖突變得逐漸清晰之前渔欢,可能會(huì)有更多的用戶在 wy 后面附加交易墓塌。取決于用戶在哪里附加最多新的交易,w 或者 y 都會(huì)在某個(gè)點(diǎn)確認(rèn)奥额,但是其他會(huì)被丟棄苫幢。被丟棄交易(因?yàn)樗鼈兛床坏郊磳⒌絹淼臎_突)后面的所有交易也會(huì)被丟棄。但是披坏,這些交易并不會(huì)丟失态坦,而是可能被任何人(但最可能是交易接收方)接受,并為了新的確認(rèn)機(jī)會(huì)再次附加到 tangle棒拂。這時(shí)伞梯,PoW 就需要重新來過,但是并不需要從發(fā)送方發(fā)送新的簽名了帚屉。

解決雙花

解決雙花

上面已經(jīng)說到谜诫,一個(gè)用戶嘗試將交易 5 與 tip 12 相連。由于沖突攻旦,它重新進(jìn)行選擇 tip喻旷,并且決定連接到 tip 14。另一個(gè)用戶(也可能是同一個(gè))選擇 tip 23 連接到交易 7牢屋。雖然出現(xiàn)了多個(gè)分支且预,但是由于 wy的雙花,只有一個(gè)能夠存活烙无》嫘常基于 tip 的隨機(jī)選擇(和交易的累積權(quán)重),這兩個(gè)分支的其中一個(gè)會(huì)接收更多的的子交易(獨(dú)立的截酷,權(quán)重)直到 tangle 進(jìn)入一個(gè)狀態(tài)涮拗,在這個(gè)狀態(tài)里就不可能再合法地附加任一片段。在上面的示例中,用戶可能繼續(xù)與交易 5三热,68 相連鼓择,但是不會(huì)連接到交易 7。因此就漾,交易 y呐能,237 將永遠(yuǎn)也不會(huì)成為一個(gè)完全確認(rèn)的狀態(tài)从藤。

正如上面所說的催跪,交易 y2夷野,37 可能被再次加入 tangle 懊蒸。只要他們(仍然)是有效的,就會(huì)新的機(jī)會(huì)被確認(rèn)悯搔。交易 2骑丸,37 可能然后被確認(rèn),但是交易 y 仍然無效妒貌。

離線 Tangle

離線 tangle

tangle 能夠讓用戶在離線的情況下通危,仍然能夠繼續(xù)構(gòu)建交易,比如在公司內(nèi)部的局域網(wǎng)灌曙,或者在斷電的情況下與鄰居繼續(xù)交互菊碟。如此,依照協(xié)議規(guī)定創(chuàng)建交易在刺,并相互連接逆害。

在上面的案例中,交易 12 是首先離線的一批蚣驼。它們與在線 tangle(online tangle) 最后已知的 tip 相連魄幕。隨后的交易與往常一樣不斷地附加到后面。一旦有向主 tangle(main tangle) 的提交(commit)颖杏,離線的子 tangle 就會(huì)通過創(chuàng)建交易 8 得到最終確定纯陨,它會(huì)將離線 tangle 與當(dāng)前在線 tangle 的 tip 進(jìn)行合并。隨后留储,交易 8 變?yōu)橐粋€(gè)合法的 tip翼抠,并且可供后面的在線交易進(jìn)行選擇和驗(yàn)證。在線連接到交易 8 的下一個(gè)用戶获讳,將會(huì)在他們的驗(yàn)證路徑上包含所有的離線交易机久。

請注意,正如上文赔嚎,只有當(dāng)離線交易跟其他交易一樣,被加入到主 tangle 中,離線交易才會(huì)被完全確認(rèn)尤误。如果離線分支中的任何交易與主 tangle 沖突侠畔,交易 18 就不會(huì)被確認(rèn)。再一次的损晤,它可能會(huì)花費(fèi)隨后幾個(gè)交易的時(shí)間软棺,直至沖突對于主 tangle 的所有(或者大部分) tip 都可見(也就是上面所說的 “雙花”)及塘。

原文:https://github.com/noneymous/iota-consensus-presentation

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末意述,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蟹倾,更是在濱河造成了極大的恐慌最冰,老刑警劉巖瘦棋,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異暖哨,居然都是意外死亡赌朋,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進(jìn)店門篇裁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沛慢,“玉大人,你說我怎么就攤上這事达布⊥偶祝” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵黍聂,是天一觀的道長躺苦。 經(jīng)常有香客問我,道長分冈,這世上最難降的妖魔是什么圾另? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮雕沉,結(jié)果婚禮上集乔,老公的妹妹穿的比我還像新娘。我一直安慰自己坡椒,他們只是感情好扰路,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著倔叼,像睡著了一般汗唱。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上丈攒,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天哩罪,我揣著相機(jī)與錄音授霸,去河邊找鬼。 笑死际插,一個(gè)胖子當(dāng)著我的面吹牛碘耳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播框弛,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼辛辨,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了瑟枫?” 一聲冷哼從身側(cè)響起斗搞,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎慷妙,沒想到半個(gè)月后僻焚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡景殷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年溅呢,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片猿挚。...
    茶點(diǎn)故事閱讀 40,102評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡咐旧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出绩蜻,到底是詐尸還是另有隱情铣墨,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布办绝,位于F島的核電站伊约,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏孕蝉。R本人自食惡果不足惜屡律,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望降淮。 院中可真熱鬧超埋,春花似錦、人聲如沸佳鳖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽系吩。三九已至来庭,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間穿挨,已是汗流浹背月弛。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工肴盏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人尊搬。 一個(gè)月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓叁鉴,卻偏偏與公主長得像,于是被迫代替她去往敵國和親佛寿。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 一但壮、快速術(shù)語檢索 比特幣地址:(例如:1DSrfJdB2AnWaFNgSbv3MZC2m74996JafV)由一串...
    不如假如閱讀 15,974評論 4 87
  • 一冀泻、實(shí)驗(yàn)?zāi)康?學(xué)習(xí)使用 weka 中的常用分類器,完成數(shù)據(jù)分類任務(wù)蜡饵。 二弹渔、實(shí)驗(yàn)內(nèi)容 了解 weka 中 explo...
    yigoh閱讀 8,538評論 5 4
  • 點(diǎn)擊查看原文 Web SDK 開發(fā)手冊 SDK 概述 網(wǎng)易云信 SDK 為 Web 應(yīng)用提供一個(gè)完善的 IM 系統(tǒng)...
    layjoy閱讀 13,768評論 0 15
  • bind:在RAC中有著舉足輕重的作用,沒有它溯祸,很多功能都是沒有辦法實(shí)現(xiàn)肢专,之前的例子中我們也了解到-eagerSe...
    不會(huì)飛的小白閱讀 1,979評論 0 3
  • 年齡段:25~40歲 風(fēng)格 大紅與黑是彰顯高貴與大氣。模特身上的搭配是以女性柔美與干練相結(jié)合焦辅,不管是生活...
    張惠惠betty閱讀 342評論 18 4