显示软件包…
4 个版本
0.2.2 | 2020 年 8 月 13 日 |
---|---|
0.2.1 | 2020 年 8 月 13 日 |
0.2.0 | 2020 年 6 月 22 日 |
0.1.0 | 2020 年 6 月 19 日 |
#19 在 #proof-of-work
24KB
252 行
默克尔树工作量证明(PoW)
该软件包提供了以下论文的实现
Fabien Coelho. 基于 Merkle 树的(几乎)恒定努力的解决方案验证工作量证明协议。第一届密码学进展国际会议,2008 年 6 月,摩洛哥卡萨布兰卡。第 80-93 页。<hal-00752925>
它是如何工作的?
Tree::new()
创建一个具有指定服务描述和层数的新默克尔树,其中叶子节点等于 hmac(h(desc), leaf)
(其中 desc
为服务描述,leaf
为叶子节点的零索引)。
Tree::proofs()
然后为树创建一个 Proofs
,该证明包含指定数量的均匀分布、随机选择的叶子节点、其兄弟节点以及证明树有效性的内部节点。
示例
use p0w::Tree;
let tree = Tree::new("foobar", 16);
let proofs = tree.proofs(4);
assert!(proofs.verify().is_ok());
许可证
本源代码形式受Mozilla公共许可证(v. 2.0)条款的约束。如果未与此文件一起分发MPL副本,您可以在 http://mozilla.org/MPL/2.0/ 获得一个副本。
依赖项
~2.5–3.5MB
~84K SLoC