[英]I'm trying to implement a merkle tree consistency proof, but I'm stuck at understanding the algorithm
我正在嘗試用本文實現merkle樹一致性算法:
但是,我有點堅持一致性檢查,因為當我執行ConsProofSub部分時,我總是處於無限循環中。
例:
新樹有8
棵,老樹有7
片葉子。
通過上一個函數,我得到m = 7
,我的新樹的葉子為向量E
, true
為b
。
該函數通過遞歸代碼流,直到我們達到這種情況:
E現在有2
元素,所以n = 2
。
m = 1
,由於m < k
的遞歸調用中的先前減法,以及b = false
。
如果m
和n
不相等,我們不會落入m = n && b = false
。
k
現在再次計算為2
,因為上限正在將log2(n)/2
的結果1/2
校正為1
。
我們落入m <= k
情況,再次,我們遞歸調用具有完全相同參數的函數。 現在我們處於無限循環中。
但是,我似乎無法弄清楚我做錯了什么。 我覺得k
計算中的天花板是問題所在。 它基本上使得不可能離開循環,因為在一些迭代之后k
似乎總是高於m
。
有什么建議/暗示我的錯誤嗎?
編輯:有趣的是,當n是奇數時,算法似乎工作得很好。 它似乎只為偶數而失敗。 我只是嘗試了一個新的7片葉子樹,它就像一個魅力,提供了證明一致性所需的正確節點。
但是,我仍然無法弄清楚要使它與偶數一起使用會發生什么變化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.