请问有没有算法可以保护零信任环境下的数据交易?

2022-01-19 18:56:00 +08:00
 nowgoo

场景:

但是现在 A 和 B 互不信任,有什么办法可以保证 A 成功拿到钱的同时,B 也拿到了正确的数据?

直接上链?一来成本扛不住,二来……B 也不信任矿工啊。

设想过这样的加密方式:

  1. A 传输加密后的数据给 B ,密钥为 Y 。已加密数据的某种神奇哈希值为 Z
  2. B 在链上发起一个密码学挑战,只有知道 Y 方可破解。
  3. 这个神奇的哈希可以保证:如果有一份数据的神奇哈希值为 Z ,通过 Y 解密后得到的数据,其 MD5 必然是 X
  4. A 亮出密钥 Y ,拿到钱。B 拿到 Y 解出原始数据。

这样,只有哈希值上了链,成本不会太高;矿工也抢不到钱。

然而即便存在这样的神奇哈希,也有一个致命缺陷:

假如 A 传了一份假数据给 B 呢? A 完不成挑战拿不到钱,但 B 却有一笔钱去了黑洞啊。

想来想去,可能最终还是要引入一个 A 和 B 都认可的第三方来担保。

1861 次点击
所在节点    区块链
19 条回复
Jooooooooo
2022-01-19 19:06:57 +08:00
A 一开始数据就是假的 B 咋能知道
picone
2022-01-19 19:22:18 +08:00
问题相当于找到一个解的哈希值符合要求,找到了就给他钱。那么这份数据能公开吗被大家都知道,如果能公开的话好解决。
picone
2022-01-19 19:23:25 +08:00
如果不能公开的话,零知识证明是不是也可以解决,这块领域不太熟悉。
xppppsfg
2022-01-19 20:14:29 +08:00
零知识证明 了解一下
niubee1
2022-01-19 20:24:52 +08:00
用 hash 值的话只能证明你拿到了一坨数据,但是并不能证明这坨数据能用。比如你要和对方交换一个算法,那么,你拿到了算法的 hash 值,怎么证明算法能正常工作呢?这样对方拿到了钱,但是你拿到了一个 hash 对应的依托数据,但是可用不可用你怎么证明?
ioriwong
2022-01-19 20:36:29 +08:00
这问题有点意思,插个眼
AItsuki
2022-01-19 21:57:23 +08:00
当面交易
xupefei
2022-01-19 22:36:09 +08:00
感觉和同态加密有点儿关联。
nowgoo
2022-01-19 23:27:18 +08:00
@Jooooooooo B 不知道。所以才要算法保护 B 不能花冤枉钱。
@picone 可以公开;但是要保证最先提供数据的 A 能拿到钱。
@xppppsfg 我知道零知识证明,但不知道在这个问题上如何应用。请大佬展开讲讲?
@niubee1 神奇算法的 hash 值,跟目标哈希 X 之间应该有某种关联。而且买数据的人查看了算法源码之后,应该十分确信只要拿到密钥 Y ,解出来的数据就是正确( MD5 值为 X )的。这只是我一个失败的设想,并没有实现。
@AItsuki 当面交易,应用场景就被大大压缩了呀。
Jooooooooo
2022-01-19 23:28:46 +08:00
@nowgoo 我举个例子吧. B 要的东西是 pi 的第 x 位(x 很大, 全世界的计算机算很多年都算不出来), A 说这一位是 5, 你感觉什么算法能保证 A 说的是对的.
mxT52CRuqR6o5
2022-01-19 23:37:29 +08:00
网购时人们碰到的也是一样的问题啊,想想看淘宝是怎么解决的
Buges
2022-01-19 23:59:12 +08:00
这个 https://github.com/flex-dapps/enzypt
ipfs 的一个应用,好像已经下线了。
ruxuan1306
2022-01-20 01:18:49 +08:00
@mxT52CRuqR6o5 #11 淘宝是引入受信任的第三方:支付宝担保
geelaw
2022-01-20 01:24:10 +08:00
关键词是 fairness 和 guaranteed output delivery 。

@Jooooooooo #10 关键词是 succinct proof 和 delegation of computation 。验证计算正确所需要的时间可以远远小于执行计算本身所需要的时间。
murmur
2022-01-20 08:48:43 +08:00
没有,售后都是扯皮,有人的地方就有陷阱,就看是无脑偏商家,还是无脑偏顾客,当然也有闲鱼小法庭这种 sb 东西
adrianzhang
2022-01-20 09:16:16 +08:00
这不就是智能合约解决的问题么。创建一个智能合约并定义 hash ,B 往智能合约充钱,然后 A 把数据放到永久公开存储,将 URL 发给智能合约,智能合约判断 URL 的数据 hash 等于预定义 hash ,就将款转往 A 。
nowgoo
2022-01-20 21:16:18 +08:00
@geelaw 感谢提供线索,多谢。
AkashicRecords
2022-01-25 20:26:36 +08:00
一个人有没有密码学安全的办法和另一个不可信的人平等交换信息? - Rix Tox 的回答 - 知乎
https://www.zhihu.com/question/19839010/answer/1094349743

完美符合楼主的要求。
nowgoo
2022-01-26 10:33:38 +08:00
@AkashicRecords 正好是我需要的,非常感谢。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/829302

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX