The Tangle:圖解介紹

第三部:累積權重與加權隨機漫步

上週我們學習到了無權種隨機漫步,今天我們要了解的是與它有密切關連的夥伴:加權隨機隨機漫步

我們先加點動機來讓我們方便理解,在 tip 選擇演算法中我們極欲避免的就是懶惰 tip。懶惰 tip 就是指並非確認最新交易反而重複確認先前老舊交易的 tips。我們會說它懶惰是因為它沒有打算跟上 tangel 最新的資訊,而是按照舊有的資訊只廣播自己的交易。這樣不會幫助到整體網路,因為沒有新的交易受到確認。

在上圖例中交易 14 是個懶惰 tip,因為他只確認非常老舊的交易。如果我們使用均勻隨機 tip 選擇演算法的話,交易 14 很可能仍然被其他所確認,所以它沒有受到應有的懲罰。而如果用無權重隨機漫步的話,在此例中更是種受到鼓勵的行為。

我們該如何處理這種問題?我們不能強迫加入的交易只確認最近的交易,因為這樣反而違反去中心化的理念,交易理當能確認任何合理的交易,而且我們也無法預測交易何時加入,這樣的規則顯然無法套用。 我們希望能用系統中內在的刺激因素來解決這樣的行為,讓懶惰的 tips 沒太可能被其他人確認。

我們的策略會是讓隨機漫步不平衡,使我們不太可能去選到懶惰 tips。我們這邊開始介紹一個術語叫做累積權重,用來指一個交易的重要程度,讓隨機漫步傾向於走到權重比較大的交易而不是較小的。累積權重的定義很簡單:我們計算該交易受到確認多少次,累積權重就有多大,我們會計算直接或間接確認的次數。在下面的例子中,交易 3 的累積權重為 5,因為總共有四筆交易確認它(直接的有 5;間接的有 7、8、10)。

這樣會有何影響呢?讓我們在看另一個懶惰 tip 的情景,在下例中交易 16 為懶惰的 tip。要讓交易 16 受到確認的話,隨機漫步的行人必須到達交易 7,然後選擇交易 16 而不是交易 9。但這非常不太可能發生,因為交易 16 的累積權重只有 1,而交易 9 的累積權重卻有 7!如此一來便能勸阻懶惰的行為。

到此我們也許會捫心自問:這樣我們還需要隨機性嗎?我們可以創個超級權重隨機漫步,在每個連接點都選擇權重最大的交易,不讓機率左右其中。這樣的話我們會產生下圖的狀況:

超級權重漫步讓我們永遠隨機最重的交易

以上灰色方塊為 tips 而且沒人確認他們。雖然有些 tips 仍然出現在圖形最右側,但卻有非常多的 tips 跨越個時間點散佈在圖中,這些 tips 將永遠被遺棄且沒有人會去確認他們。這就是完全依靠權重的缺點,如果我們只選擇權重最大的交易,會有比例非常高的 tips 永遠無法確認。只有中間長條的交易能夠受到確認留下來,而邊緣的 tips 會被遺忘。

我們需要有辦法在連接處上走到任何受到確認的交易,公式怎麼選擇並不是那麼重要,只要我們能夠給予較重的交易一定的優勢,以及控制這樣的優勢影響多大即可。因此我們在加入一個新的參數 α,用來設定交易的累積權重有多重要,完整的定義有在白皮書中說明,如果有需要的話我日後會再補充說明詳細內容。

在加權隨機漫步中每個藍色交易會顯示其累積權重,以及在行走時下一步所選擇的機率。

如果我們設 α 為零,就會回到無權重漫步;如果我們設 α 非常高的話,就會變成超級權重漫步。理想的話,我們可以找到最好的平衡點,讓懶對行為能受到制裁,同時也不讓大多數 tips 被遺漏。確定 α 的理想數值是在 IOTA 中非常重要的研究議題。

選擇每步隨機漫步的方式我們選擇了馬可夫蒙地卡羅演算法,簡稱 MCMC。在馬可夫鏈中每步的選擇不是按照前一步,而是依照演算法的規則決定。

如同往常一樣,我們用模擬解釋這些新的想法,建議你可以調整看看 α 和 λ 的數值,看看會出現什麼樣子的 tangle。下週我們將會解釋交易 A 確認交易 B 的實際內容,並定義一筆交易何時算是已確認的。

results matching ""

    No results matching ""