Hash
為什麼我們只需要在XMSS MT中生成每一層的第一棵樹
據我了解,為了減少生成公鑰所需的時間,您可以在 XMSS 中使用嵌套樹來形成多樹 XMSS。
對於 2 層的實例,似乎每個 L 樹(這些嵌套樹之一)的葉子都是 OTS 公鑰。這意味著頂層樹的葉子簽署了它下面的 L 樹中的 OTS 鍵。
我讀到這允許您只計算頂部的主樹和每一層中的第一棵樹,這自然節省了大量的儲存和計算時間。
但是,我不明白這是怎麼可能的,因為要計算頂層樹,您需要知道每個 L 樹的根,這涉及計算每個葉子下方的整個 L 樹。
我在這裡想念什麼?
要計算頂層樹,您需要知道每個 L 樹的根,這涉及計算每個葉子下方的整個 L 樹。
您需要計算整個頂層樹,這涉及為該樹的每個葉子生成 WOTS+ 公鑰。但是,您不需要在此範圍內傳播;當需要使用下一級樹進行簽名時,此時,您需要知道下一級樹的根(以便您可以為其生成 WOTS+ 簽名);你不需要早點這樣做(如果方便的話,你可以這樣做)。
因此,要生成初始簽名,您需要為超樹左側的每棵樹生成完整的 XMSS 樹;您沒有立即需要生成任何其他內容。
在實踐中,我們(或至少,我)發現在使用目前 XMSS 樹的葉子時,在每個級別增量生成下一個 XMSS 樹很方便;這恰好效果很好,但這不是強制性的。