實現 NiPoPoW 算法
你好,
我們,一個小團隊,已經實施了大約 95% 的突破性科學提案,該提案描述了NiPoPoW 非互動式工作量證明。您可以在我們的GitHub 上找到我們的 NiPoPoW 算法的原始碼實現
在實施過程中,我們遇到了一些問題,我們無法從您的突破性論文中弄清楚:
I. WebDollar 使用迷你區塊鏈方案(乙太坊類似)通過使用帕特里卡默克爾樹來儲存每個非零地址和智能合約的餘額。因此,為了驗證餘額,我們只需要來自 Patrica Merkle Tree 的 SPV 雜湊和最後一個區塊(區塊鏈的最後一個區塊)的基於 NiPoPoW 的證明……所以我們相信我們不需要中綴證明。我對嗎?還是我們需要中綴或天鵝絨 NiPoPoW 算法?
二、算法 2 驗證
a) 我們猜測函式 validChain 將驗證 π 和 χ 以檢查它們指向創世塊的連結並且正確計算雜湊值。
b) 我的第一個技術問題是,我們無法理解驗證算法 2 中使用的 Q 謂詞是什麼。它是否是檢查和驗證 χ 的“函式”(驗證基於 PoW 塊的目標 (T)、互連. 我是對的?) 或者 Q 謂詞會是什麼樣子?Q 謂詞與 validChain (π, χ) 有何不同?
三、多級屬性
我們不太確定我們是否正確收到了訂單。
我們從 [0 到所有 u] 迭代 u’ 並且我們將檢查每個 u’ 必須擁有對於包含在 C 中的任何 C* 具有屬性 |C∗↑µ’| 的屬性 ≥ k1,C* 也必須有最後一個方程。如果 C* 未能通過最後一個等式,我們將返回 false;
四。壞處
我們無法從 badness 函式中理解標記的 C*
一種。計算表達式 C↓↑µ−1 的正確順序是什麼…首先我們計算 C↓ 然後我們根據之前的結果計算 ↑µ−1?
灣。我們如何計算 C↓?我們找不到任何關於如何計算 C↓ 的想法,只有 C’↓ 是下游定義 C’↓ C 被定義為 C[C’[0] : C’[−1]]。
C。不是 C’↓ 而不是 C↓ 嗎?
謝謝!
I. 這幾乎是正確的。唯一的區別是你仍然需要論文中提到的 χ 後綴,其中包括最近的 |χ| = 區塊鏈的 k 個區塊。這是因為“最後一個區塊”不穩定,可能會被撤回(以防另一個相同高度的區塊恰好在相似的時間被開採)。您只能推斷出 k 個區塊前的“目前”餘額。
二、
a) 這是正確的。
b) 謂詞“Q”是特定於應用程序的。例如,在您的情況下,它可能是特定帳戶的餘額在某個時間點持有一定金額的聲明。即 Q 將是“愛麗絲在區塊 #4,000,091 持有 5 個乙太幣”。
三、這是對的。一般來說,除非對整個區塊鏈有嚴重的攻擊,否則這個屬性不會不成立(對於適當的δ)。
四。
a) 是的。
b) c) 你是對的。C↓↑µ−1 實際上應該是 C’↓↑µ−1。我已經糾正了錯誤,我們將在最新版本中更新論文。非常感謝您指出這一點!
答案學分:狄奧尼西斯津德羅斯