IOTA: Tangle 基本入門介紹 (2)

Metheus Yang
BurgerMiner
Published in
4 min readNov 13, 2018

糾纏:說明介紹

第二部分:交易速度,延遲和隨機漫步

在這系列之前的文章,我們介紹過「纏結」這種資料結構。我們也學習過端點(tip)和選擇好端點(tip)的演算法的重要性。而這次,我們將學習交易和網路延遲,以及這兩者在決定纏結形狀之中的角色。我們也將在下篇文章進一步的討論如何學習無權重隨機漫步。

在上篇文章的模擬中,你或許已經注意到交易並不平均分散在各個時間,而是在某些時間會特別的「繁忙」。這個讓模型更加真實的隨機方式,是使用帕松過程去模擬交易抵達而完成的。而這個模型在分析多少客戶在指定的時間段之中走進商店,或者多少電話打進客服中心的這些例子中非常普遍。我們可以於下圖中看到這個行為如何用在糾纏。交易4、5、以及6幾乎同時抵達,而交易6之後有個長的中斷,暫時沒有新的交易發出來。

對我們的目標來說,我們只需要知道一件關於帕松分佈事情:平均而言,進入的交易速度被設定為我們稱為λ的常數。例如,我們設定λ=2,交易量為100,則總模擬時間將會是50次每單位時間。試試看吧!

在開始之前,一件需要說明而更有趣的事情是;如果我們設定λ為非常小的數(例如0.1),則我們就可以得到「鏈」。一個交易不是認可(approve)兩個,而是只認可(approve)前一個交易長得像鏈的纏結,這是因為交易將變慢以至於任何給定的時間內,只有一個端點(tip)去認證。在另個極端狀況中,如果λ很大,所有的交易將抵達得很快,使得它們所見到的唯一的端點即是創始端點(創始交易所產生的端點)。這就是模擬的限制:以一個很大的λ和固定的交易量,我們將在相當短的時間段中進行模擬。

非常小的λ所生產的鏈

非常大的 λ:只有創始端點是可見的

所以什麼是交易看不「見」前一個端點呢?在模型中,我們讓每個交易它抵達後一定時段內是不可見的(invisible)。我們使用字母h標示延遲的時間長度。這個延遲表示該交易被準備以及透過網路傳播的時間。在我們的模擬中,我們常常設定h=1。這代表我們只能在過去的每段單位時間內,認可最少一次的交易。這個延遲不只是很務實的小細節,也是纏結最基本的性質,如果沒有這個延遲的話,我們將得一個非常無聊的鏈。這個延遲是真實世界中,各個節點廣播通知彼此有新的交易出現所花費的時間。加上這個參數,也使得我們的糾纏和現實世界的狀況更加接近。

最後,來講更先進的節點選擇演算法─「無權重隨機漫步」。使用這個算法,我們在創始交易(genesis transaction)上放一個「隨機漫步者(walker)」,然後讓該隨機漫步者開始「走向」端點。每一步,它都跳往一個我們最近直接認可(directly approve)的交易。因為我們在選擇要移動去哪個交易時,移動到每個交易的機率是相同的,這就是「無權重」一詞的由來。下面我們做了一個模擬來表示它如何進行。

你們可以看到這個隨機漫步者所移動的路徑被標記為紅色,每個有著不同的可能路徑的連接點則被標記為藍色。對於那些剛發佈的交易們,因為太新了,對於隨機漫步是「不可見」的,這些不可見的交易則被標記為透明的。

我們今天學到了不少,所以請花你的時間去複習這篇,做個模擬,以及問問題。歡迎聯絡我透過discord @alongal#3938 或是在下方回應。下週,我們將學習累積權重,蒙地卡羅馬可夫鏈以及權重隨機漫步。

原文連結:

https://blog.iota.org/the-tangle-an-illustrated-introduction-4d5eae6fe8d4?gi=e88b0c38a839

--

--

Metheus Yang
BurgerMiner

昭昭天命eth :0x40aeeed73bdf3db76ae4b075ff3b4db677384267