在介紹tangle 的系列文章中,我們提出一個影響 random walk算法隨機性的理論參數(shù) α。因此,本文將深入探討 α 是具體如何影響 tip 選擇的,并且在具體的代碼實現(xiàn)上需要考慮到的一些問題。
在閱讀本文前,請確保對Tangle 有了基礎的了解特別的 認證 以及 累積權重的概念。除此之外,還需要了解指數(shù)函數(shù) 以及一些概率論相關的知識。
為什么我們需要隨機性?
為了更好的理解α的作用,我們首先需要記住為什么要random walk?;谛枰猼ip 選擇:每一筆新到來的交易都需要選擇tangle 中已有的兩筆交易進行認證。而選擇的方式是決定tangle 形態(tài)的關鍵。
tip 選擇算法最好能支持以下兩個特性:
1.如果一筆交易累積了大量的認證者即該交易被大量選擇并認證成功,那么,它所在的分支不大可能被拋棄。
2.誠實的交易應該被快速選定并認證。
為了支持上述第一個特性,我們決定以創(chuàng)世交易作為起點,然后選擇累積權重較大的交易作為移動目標,直至選定tip。然而,這會與特性2相違背,因為 如果僅按照累積權重較大的方式作為選擇依據(jù),那么最終會只有一個相對中心分支鏈獲得認證,而別的交易將會被拋棄。

為了在上述兩個特性達到一個平衡,我們引入隨機性。即在整體的路徑選擇中,我們偏向權重交易的認證者,但仍然會為之加上一些概率因素。
數(shù)學定義
我們定義了一個轉換函數(shù),通過該函數(shù),可以計算出從一個被認證者移動到認證者的概率。當然,正如我們所描述的,對于累積權重較大的交易,其計算出的概率值需要偏大,反之偏小。
轉換函數(shù)的具體定義如下:

我們來詳細解讀一下上述公式,首先是Pxy,代表 從交易[x] 移動到 交易[y] 的概率值,Hy 代表 交易[y] 的累積權重值, z ~> x 代表 直接認證 交易[x] 的 交易[z]。e則為自然對數(shù)的底數(shù)。而公式中的分母則是 所有 直接認證交易 [x] 的 e^αHz 之和。其實就是一個算術平均值。我們在用一個用例來闡述整個公式的實際效果以及參數(shù)α 的具體作用。
用例
在圖1-3的用例中,walker 在transaction[x] 開始,有3個 直接認證的交易,分別是[A]、[b]、[C],我們來根據(jù)轉換公式來算一下它移動到這三個交易各自的概率。更具累積權重定義。[A]、[b]、[C] 三個累積的權重值分別為2、3、1。
我們假設α=1,然后更具轉換公式,可以分別計算出三者的概率:

根據(jù)上述的計算結果,PXB的概率最大,PXA 于PXB還在同一個量級,PXC最小了。

我們在假設α=0.1,這時候,計算結果如下:

可以看到,在α 較小時,三者的概率基本接近。如果α 設定為0,那么,三者的概率就會一致,算法直接退化成完全隨機選擇。
當然,如果α非常大,可以明顯看出PXB的值會無限接近1,而PXA 以及PXC則變成0,在該種情況下,tangle 會退化成一條鏈。
到這里,本文完畢。