Skip to content

Multi-Party Hash Puzzle Opt

组合哈希谜题优化。

txt
# 十个原像被折叠成一个滚动摘要,而不是逐项单独比对。
Contract MultiPartyHashPuzzleOpt:

    def unlock(preimages: hex[10]):
        # 每一步都会把当前原像绑定到此前累计的结果上。
        combinedHash = Push(0)
        SetAlt(combinedHash)

        for i in Range(9, -1, -1):
            SetMain(combinedHash)
            combinedHash = Sha256(Cat(combinedHash, preimages[i]))
            SetAlt(combinedHash)

        # 最后只需要把累计摘要与保存的承诺值比对。
        SetMain(combinedHash)
        EqualVerify(combinedHash, self.combinedHash)