一种公平的实时数字开奖方法(Provably Fair System)
面临的问题
抽奖,彩票等在互联网上等都面临一个问题,就是是否公平可信可证明。线下就更不用说了,是个黑盒完全无法证明。
一种解决方案
(有第三方(公开的)参与,起着算法公开以及验证双方的作用)
简化版(只有两方,用户不信任服务方)
- 用户获取服务端种子 server_hash,server_sign(服务端生成并保存),种子只能使用一次,sign的时候加上时间签名等,公钥公开,确保是真实的服务端发出的
- 用户生成自己的client_seed
- 用户提交自己的client_seed+server_hash+server_sign
- 检查server_sign,用server_seed和client_seed,来按照指定并公开的算法,生成抽奖结果
- 客户端验证抽奖结果
目前的一些其它做法
- 先抽后开
- 使用第三方不可控的数据作为初始种子:当日收盘的上证指数 等
接口(API)互信
- 不对称加密,不直接交换secret等
- 互相保存对方的公钥
- 通信的时候直接用对方的公钥签名后发送
- 使用自己的签名校验是否是对方发送过来的
端到端加密通信
- 跟上面的接口互信差不多
- 一般首次通信,交换的是对称密码,用于接下来的通信
赞助一杯咖啡☕️
本文由 widdy 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Mar 28, 2023 at 09:16 am