之前提過 , 確認的交易可以拿來算帳
也就代表賣家可以交付數據 , 商品或服務的最低條件
先看最近的文件的圖
這段相關的原文
In the tangle above, transaction 9 is approved by two out of the four tips. If we were using uniform random tip selection, it would have a confidence of exactly 50%. However, the tips that approve it are apparently more likely than the tips that do not, which raises the confidence a bit.
那筆交易在模擬的圖上 , 確認度是
這張圖來說 , , , , 都是
而 跟 比較接近
對於確認度的增加是比較低的
與 指向了
由於 對確認度的增加是比較低的
所以 的確認度應該超過
接著就是算講確認度很完整的文件了
直接來看文件上的圖
, 是
指的是確認度為
綠色的交易 , 都有被 與 間接指向到
藍色的交易 , 則是 或 其中一筆間接或直接指向到
接下來看 剛加入 的情況
有三個 , 分別是 , 和
注意到 還沒加到 時 , 還不是綠色()
還沒加到
是 , , 和
這時直接或間接指向 的 是 , 與
少了個 , 所以還是藍色的
加入 後 , 會全部的 都直接或間接指向
所以 會變成綠色()
接下來的 變成這樣
接著來看不是指向 的交易如何影響確認度
是新來的 , 不過沒有指向舊有的 ( , , , )
可以注意到 不是 了
因為 並沒有直接或間接指向
可以看到 , 確認度不是一直增加的 , 是可能會減少的
接下來看有衝突交易的情況
這邊就跟白皮書有關了 , 有關的如下
節點間並不需要達成共識,因為合法的交易有權繼續在 tangle 中; 但要是出現衝突的交易,便需要決定哪筆交易要被孤立 (orphaned),也就是這筆交易不會再被新進的交易間接驗證。決定哪筆交易是要被孤立的主要準則如下:一個節點進行多次的 tip 選擇演算法,接著觀察哪筆交易較可能被選到的 tip(間接)驗證。舉例來說:假設跑了 100 次 tip 選擇演算法,有一筆交易被選到 97 次,我們便說它有 97% 的信心被驗證到。
實在看不懂白皮書在說什麼 , 不過沒關係
文件會說明
注意到 這筆交易在驗證先前的交易 , 預計是指向 與
與 是衝突交易
還沒選好指向的交易 , 所以還不算是
這時的 是 , , 與
只有被 指向
只有被 指向
如果 指向 與
這時 是 , 與
而 和 確認度都會增加 (從四分之一變成三分之一)
這樣是不行的 , 衝突交易內只能有一筆能增加確認度
選擇的判斷條件是衝突交易內的累積權重()
選衝突內最大累積權重那筆交易
如果累積權重相同 , 那就隨機選一個
指向了 和
這樣選並沒有讓 和 都增加確認度 , 所以不用重選
可以看到 的確認度是比 高的
只要一直持續下去 , 會過確認度的門檻 , 而 的確認度將越來越小 (因為 逐漸變成 )
這樣就達到效果:
衝突交易只能一筆是確認
算法:
The confirmation confidence of a transaction is computed as follows:
In other words, the confidence of a transaction is the percentage of tips which approve it.
放一下與基金會成員討論的一段內容:
proof.K - 上星期二晚上9點13分
If tangle has two tips "a" and "b".
A transaction "c" is referenced by "a"."b" doesn't reference "c".
Run the tip selection algorithm 100 times . If all selects "b" , confirmation confidence of "c" is 0. If all selects "a" , confirmation confidence of "c" is 1. Right?
If yes , consistent result is impossible in every node.
alongal - 上星期二晚上11點51分
@proof.K What your wrote is correct. I didn't understand your last statement
不要懷疑 , 確認度每次查詢的數值都不一樣
而且是 0%~100% 內的整數都有可能
講講確認度是隨機值會有的結果
這裡假設確認的門檻是
考慮一個 如下:
與 是衝突交易
跑100次tip的選取算法(MCMC) , 看裡面有幾次直接或間接指向要算確認度的交易
這意謂著 , 有可能100次都是
那 就是確認
或100次都是 , 那 就是確認的
而這兩種情況機率都不是0
nodes最終一致的機率很大 , 原因在一筆交易最終的權重增長
當很大機率接任何 都會增加權重 , 也意謂直接或間接指向的 比例是很高的
所以最終一致的機率會很大
可是問題在於 , 由上小節的說明 , 在還沒達到最終一致前
衝突交易內的數筆交易就可能是確認的
這種情況是下列的圖:
和 是衝突交易
灰色的交易是攻擊者發的
這種情況會讓 與 都能增加確認度
要避免這種情況 , node不能收直接或間接指向兩筆衝突交易的交易
由上面的 , 考慮 與 這兩筆交易
指向 有 , 和
指向 只有
依照基金會的確認度算法
會是 , 因為所有 都有指向
不會是 , 因為只有一個 指向
可以看到 , 越多 指向交易 , 越高機率確認度是高的
得到結論
越高的 比例指向交易a , 交易a的確認度更高機率接近
IOTA