开场白
我最近了解到了小升初摇号的事情
我对摇号的方式很感兴趣
我便构思了一个摇号算法
一个好的摇号算法应满足:
1.人为不可控制
2.事后公开可查
下面是我构思的算法
1 制定标准
由教育局发布一个摇号标准文件,公开给大众
此文件需包含"构造随机种子"的方法、随机数算法等信息
2 构造随机种子
我们要选一个完全无法预测、无法控制、但事后又公开可查的事件,事件最好每年不变
可以选择一个区块链
每年特定时间一个区块的哈希摘要
我选择的是比特币区块链
比如2020年摇号选择的是
2020.7.5 中午12:00的区块
2021摇号则选择的是
2021.7.5 中午12:00的区块
3 每个学校对参与本学校摇号的人进行编码
按照报名的人的身份证号大小进行编号
作为摇号过程中的编号使用
4 生成随机数
用选取的随机种子进行随机数生成
随机数范围在学校报名人数内
生成的个数范围在预计招生人数内
与官方流程对比
我的流程的好处在于:
- 初始种子不可作假
并且满足无法预测、无法控制、但事后又公开可查的特性
所以这一步就堵死了
- 公开了摇号过程中使用的种子、随机算法
所有人都可以复现此过程,验证真伪 - 并不需要像官方流程一样录像,因为摇号结果本身就是一个录像
作假
那作假到底可不可能呢?
理论是可能的,但现实中几乎不可能
我们要操控一个区块首先要比别人算的快
所以,算力要>=全网算力的51%
这样才有可能算过别人
目前全网算力约为100EHz
以神马矿机M30S++112T
其算力为112THz
需要这样的928571台,先不说有没有供货
按市价61600元/台
也就是572 0000 0000元
显然不可能
更何况这只是为了抢先一步算出区块
还没提到控制种子,达到让某人摇中的目的呢!
如果比特币不被认可
选择其他区块链时
需要注意
共识机制必须是工作量证明的(PoW)[注8]区块链
后记
我的计算过程没有经过专业论证
可能有很多不对的地方
欢迎大家指正!
One comment
强大,反正我也看不懂。
——李