#merkle-tree #pow #proof-of-work

p0w

默克尔树工作量证明(PoW)

显示软件包…

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

MPL-2.0 许可证

24KB
252

默克尔树工作量证明(PoW)

img img img

该软件包提供了以下论文的实现

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