摘要:紅色交易,表示有沖突,或無效交易。這樣的交易就被認為是完全確認,并且會被每一個新的交易再驗證,再確認。因此,交易,,和將永遠也不會成為一個完全確認的狀態。交易,和可能然后被確認,但是交易仍然無效。如此,依照協議規定創建交易,并相互連接。
Tangle 初始狀態
與區塊鏈技術不同,IOTA 并不是一條有著時間序列概念,每個區塊前后相連的鏈,鏈中的每個塊包含一些交易。在 IOTA 中,每筆交易都可以其他交易連接(所謂連接,就是驗證其他交易),并且可并行發生。下面的內容將就如何在 IOTA 中加入交易,驗證交易及其共識機制展開。
上圖是 tangle 的一個案例,下面內容都會圍繞該圖展開。綠色交易代表已經被網絡以高確定性(high certainty)地確認,藍色交易是部分確認,也就是確定性較低。灰色(以及下面的黃色)方框表示還沒有任何人驗證過的 tip (tip 有尖端,尾部的意思,比如手指尖就可以用這個詞,這里的 tip 表示 tangle 中最新的尚無人驗證的交易)。紅色交易,表示有沖突,或無效交易。
在上圖中,交易 α 并非一筆普通交易。它引用了交易 h 和 l,由于交易 h 已經被交易 l 引用了, α 會選擇一個 tip(l) 和 一個顯然不是 tip 的交易(h)。這么做目前似乎并沒有問題,網絡也允許這樣的行為。
加入一筆交易為了向 tangle 中加入一筆新的交易,用戶必須從 tangle 中隨機挑選出兩個 tip(tip 就是尚未確認的交易),并對兩個 tip 進行驗證。所謂驗證,意味著用戶需要檢查 tip 的簽名,即所謂的 PoW,并確保所選的 tip 與之前的任何交易(無論是直接相關還是間接相關)都沒有沖突。如果所選的 tip 是合法的,用戶就對其進行引用,也就是加入新的交易。
如果交易既沒有被所選的 tip 直接引用,也沒有被間接引用,那么對于當前的驗證過程來說,這些交易就是不相關的交易。對于不相關交易,會由其他人或是之后的交易來進行驗證,并將它們加入到 tangle 中。
另一筆交易與此同時(其實不必同時,早一點晚一點都無所謂),另一個用戶可能正在一個不同的位置加入新的交易。它選擇了 tip z 和 y。如此一來,它就在更大的范圍上驗證了已經驗證過的同樣交易,即 a 到 k,m 到 n,加上額外的一些沒有在交易 1 驗證路徑上的交易(l, o, r, t, v, y 和 z)。
新的 Tangle 狀態交易 1 和 2 的驗證路徑有重合之處,我們可以看到有一些交易僅被確認一次,有些交易被確認兩次。被當前所有 tip 驗證和確認的交易就被認為是完全確認。因此,交易 n 進入 tangle 更深一層,現在變成了綠色。從現在開始,隨后所有連接到 1 與/或 2 或者它的孩子,將會保持再驗證和再確認的交易狀態。
我們已經學到了什么?
沒有人需要看到和驗證所有的交易。每個用戶僅需要選擇和驗證兩筆交易及其父交易。如此一來,他們僅驗證了 tangle 的一部分而已。當其他用戶選擇并驗證不同的 tip 和路徑,完整 tangle 的協同驗證就出現了。
在某個時間點以后,一旦一筆交易在 tangle 中進入足夠深的位置,無論從最新的 tip 中的任意一個,無論從直接或是間接路徑上它都存在。這樣的交易就被認為是完全確認,并且會被每一個新的交易再驗證,再確認。我們可以認為它被所有用戶(和機器)確認,并且確定性很高。
為了對確認進行檢查,接收者只需要檢查交易是否被已有的所有 tip 直接或間接引用(或者通過一個確定比率,如果確定性更低的話,比如 80%,也可以接受)。這時候就不需要再驗證或是其他類似操作了。注意:可能會有上千個 tip。與其檢查每個 tip 的父節點,更可能的是選擇一個隨機樣本,并做一個統計評估。
注意交易 n 還沒有被確認,因為現在我們的 tip 比較少。下面會展示更多 tip 的場景。
確認級別我加入了一些新的 tip 對上例進行了擴展。對于每個新的 tip,它的驗證路徑都被高亮了。通過顏色,你可以清楚地看到哪些交易被多少 tip 所驗證,及其驗證等級。
一個商家可能會根據自身情況設定個性化的確認/確定等級。如果交易速度比交易價值更重要(比如微支付或零價值支付),又或者發送方是一個朋友,一個人可能會以 75% 的確認等級接受交易。在 75% 的確定等級(3/4 tip)下,交易 l, o, 和 t 可能也會被確認。
傳播延遲理論上,由于更慢的 PoW 或者傳播延遲,可能在稍后出現一筆慢速交易 5。鑒于我們已經知道了交易 5,交易 n 就不會再被所有的 tip 完全確認。但是,他們的確認確定性(confirmation certainty)仍然很高,有 4/5 tip 確認(實際上會有上千而不是 5 個 tip)。記住,所有一切都是為了一個高概率的確定性 -- 就像在區塊鏈里面,區塊的每次確認就是增加了確定性的概率。
請注意,本例中的交易 5 的狀態并非從 “確認” 轉變為 “未確認”。它僅是從改變了數學上精確的確定性比率(比如,如果一共有 100 個 tip,從 100% 到 99%)。一旦一些隨后的交易引用了交易 1 和 5,交易 n 就會被所有的 tip 再次完全確認。這樣小的確認等級變化將不太可能會發生,更進一步的交易會進入 tangle。
請注意,100% 的確認/確定等級無論如何都很難達到,因為總會出現一些無正面貢獻的 tip(比如,引用一些無用的交易,或是根本不遵守協議)。
雙花想象這樣一種情況,一個用戶在 tangle 的兩個不同的地方加入了兩筆沖突的交易(w 和 y)。對于隨后的用戶,在他們的驗證路徑上可能只有這些沖突交易里面的其中一筆(取決于他們的 tip 選擇,和一些可能的傳播時延)。比如,加入了交易 1 和 2 的用戶就不會看到沖突,并會確認他們所選的 tip。因此,雙花就得到了第一次確認。但是,遲早必然會發生的是,這兩筆沖突的交易會出現在一筆交易的驗證路徑上。比如,交易 5 就會看到沖突,繼而不會確認選出的 tip。相反,為了確保它自身會是一筆有效的交易,它會重新選擇 tip 直到找到不沖突的交易。
依賴于 tip 的選擇和 tangle 的推進,在沖突變得逐漸清晰之前,可能會有更多的用戶在 w 或 y 后面附加交易。取決于用戶在哪里附加最多新的交易,w 或者 y 都會在某個點確認,但是其他會被丟棄。被丟棄交易(因為它們看不到即將到來的沖突)后面的所有交易也會被丟棄。但是,這些交易并不會丟失,而是可能被任何人(但最可能是交易接收方)接受,并為了新的確認機會再次附加到 tangle。這時,PoW 就需要重新來過,但是并不需要從發送方發送新的簽名了。
解決雙花上面已經說到,一個用戶嘗試將交易 5 與 tip 1 和 2 相連。由于沖突,它重新進行選擇 tip,并且決定連接到 tip 1 和 4。另一個用戶(也可能是同一個)選擇 tip 2 和 3 連接到交易 7。雖然出現了多個分支,但是由于 w 和 y 的雙花,只有一個能夠存活。基于 tip 的隨機選擇(和交易的累積權重),這兩個分支的其中一個會接收更多的的子交易(獨立的,權重)直到 tangle 進入一個狀態,在這個狀態里就不可能再合法地附加任一片段。在上面的示例中,用戶可能繼續與交易 5,6 和 8 相連,但是不會連接到交易 7。因此,交易 y,2,3 和 7 將永遠也不會成為一個完全確認的狀態。
正如上面所說的,交易 y,2,3 和 7 可能被再次加入 tangle 。只要他們(仍然)是有效的,就會新的機會被確認。交易 2,3 和 7 可能然后被確認,但是交易 y 仍然無效。
離線 Tangletangle 能夠讓用戶在離線的情況下,仍然能夠繼續構建交易,比如在公司內部的局域網,或者在斷電的情況下與鄰居繼續交互。如此,依照協議規定創建交易,并相互連接。
在上面的案例中,交易 1 和 2 是首先離線的一批。它們與在線 tangle(online tangle) 最后已知的 tip 相連。隨后的交易與往常一樣不斷地附加到后面。一旦有向主 tangle(main tangle) 的提交(commit),離線的子 tangle 就會通過創建交易 8 得到最終確定,它會將離線 tangle 與當前在線 tangle 的 tip 進行合并。隨后,交易 8 變為一個合法的 tip,并且可供后面的在線交易進行選擇和驗證。在線連接到交易 8 的下一個用戶,將會在他們的驗證路徑上包含所有的離線交易。
請注意,正如上文,只有當離線交易跟其他交易一樣,被加入到主 tangle 中,離線交易才會被完全確認。如果離線分支中的任何交易與主 tangle 沖突,交易 1 到 8 就不會被確認。再一次的,它可能會花費隨后幾個交易的時間,直至沖突對于主 tangle 的所有(或者大部分) tip 都可見(也就是上面所說的 “雙花”)。
原文:https://github.com/noneymous/...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/23988.html
摘要:哈希圖實際上描述了事件在八卦網絡中傳播的路徑。但是另一方面,這個機制也有非常嚴重的缺點共識參與者的活躍性問題。對項目的建議小建議項目也不要總拿著銀行級聯盟賬本的性能去找比特幣和以太坊等公鏈碰瓷,都不是一個賽道上有什么好比的。 親愛的好朋友們:上期小C吐了一下 IOTA。說實話,剛開始小C還有些忐忑,畢竟是小C出道的第一篇文章,文章內容也可能會引起一些激烈的辯論。結果,有非常多的朋友給了...
摘要:哈希圖實際上描述了事件在八卦網絡中傳播的路徑。但是另一方面,這個機制也有非常嚴重的缺點共識參與者的活躍性問題。對項目的建議小建議項目也不要總拿著銀行級聯盟賬本的性能去找比特幣和以太坊等公鏈碰瓷,都不是一個賽道上有什么好比的。 親愛的好朋友們:上期小C吐了一下 IOTA。說實話,剛開始小C還有些忐忑,畢竟是小C出道的第一篇文章,文章內容也可能會引起一些激烈的辯論。結果,有非常多的朋友給了...
摘要:哈希圖實際上描述了事件在八卦網絡中傳播的路徑。但是另一方面,這個機制也有非常嚴重的缺點共識參與者的活躍性問題。對項目的建議小建議項目也不要總拿著銀行級聯盟賬本的性能去找比特幣和以太坊等公鏈碰瓷,都不是一個賽道上有什么好比的。 親愛的好朋友們:上期小C吐了一下 IOTA。說實話,剛開始小C還有些忐忑,畢竟是小C出道的第一篇文章,文章內容也可能會引起一些激烈的辯論。結果,有非常多的朋友給了...
摘要:有向無環圖,以下簡稱是其中的代表之一。的去中心化和可擴展性可認為是一體兩面的,因為基于數據結構帶來的異步記賬特性,同時實現了高度的參與網絡節點的去中心化和交易的可擴展性。因此,目前對于雙花問題,需要綜合考慮實際情況進行設計。 本報告由火幣區塊鏈研究院出品,作者:袁煜明、胡智威。原文地址 相關報告: 【超越白皮書2】EOS主網上線前夕的實測分析與技術建議 【超越白皮書1】EOSIO程序實...
閱讀 2744·2021-11-19 09:40
閱讀 5293·2021-09-27 14:10
閱讀 2099·2021-09-04 16:45
閱讀 1461·2021-07-25 21:37
閱讀 2993·2019-08-30 10:57
閱讀 2980·2019-08-28 17:59
閱讀 1054·2019-08-26 13:46
閱讀 1406·2019-08-26 13:27