谜题协议:Puzzle-Promise 协议 。 本文会重点介绍一下 RSA-puzzle-solving 协议,这是一个公平交换协议。当且仅当 Tumbler 给 Alice 一个 RSA puzzle 的解时,Alice 支付给 Tumbler 一个比特币,这个协议除了可集成在 TumbleBit 协议上以外,也可以在其他场景中作为公平交换协议独立运行。 这个协议面临一个挑战,就是 不使用零知识证明的条件下找到一种办法能够让 Alice 验证密文 是对正确值的加密 。cut-and-choose 可以解决这个问题,cut-and-choose 的思想类似于抽查,即 Alice 选择一些假谜题让 Tumbler 解密,如果 Tumbler 解密正确,那么 Alice 就相信 Tumbler 是诚实的。 图 2. RSA-puzzle-solving 协议 接下来 Alice 对混合真假 puzzle 的集合进行随机排序,得到一个新的集合,并记下真 puzzle 和假 puzzle 所对应的下标,然后将这个新集合发送给 Tumbler; Tumbler 对新集合的每个元素都解密,然后将得到的明文用不同的对称密钥加密得到新密文,之后将所有的新密文以及新密文所对应的密钥的哈希发送给 Alice; 最后 Alice 通过真 puzzle 密钥来解谜。 解决方法是: 谜题协议接下来讲一下 puzzle-promise 协议,这个协议是在 escrow 阶段运行在收款人 Bob 和 Tumbler 之间的链下协议,目标是让 Bob 获得一个 promise-puzzle 对 (c,z)。 这个协议的挑战是如果 Tumbler 仅仅发送一个 (c,z) 给 Bob,那么 Bob 就不知道 c 是否是正确签名的加密,也不知道 z 是否隐藏了正确密钥。 我们仍然可以通过 cut-and-choose 来应对这个挑战。但是和 RSA-puzzle-solving 协议不同的是 Bob 会得到许多 puzzle-promsie 对,而 cut-and-choose 保证的是至少有一对是正确的(保证全部正确的概率低于至少一对是正确的概率),而 Bob 一次只能问 Alice 一个谜题,TumbleBit 通过 RSA 商链的技术来解决这个问题,通过使用 RSA 商链技术可以保证 Bob 拿到一个谜题的解后能得到所有的谜题的解。 (责任编辑:admin) |