#hash #library #承诺方案

hashcom-rs

一个快速、最小但可扩展的框架,用于构建和使用哈希承诺方案

2个不稳定版本

0.2.0 2022年12月17日
0.1.0 2022年12月17日

#995 in 密码学

自定义许可

1.5MB
82

hashcom-rs

A DALL-E representation of a 
photo of a computer circuit in cyberpunk style with a dark theme

⚡️ 在Rust中构建和使用哈希承诺方案的一个快速、最小但可扩展的框架 ⚡️

封面由DALL-E制作。

简介

承诺方案是一种非常强大的密码学原语,被许多现有解决方案所使用。

我受到go-ibft的启发,创建了一个框架,以便在Rust应用程序中轻松集成和自定义哈希承诺方案。

此包公开了一个trait,您可以在此基础上构建自己的方案,或者使用现有的方案。

架构

hashcom-rs库公开了一个HashCommitmentScheme trait,您可以使用自己的哈希函数来实现。您只需实现commitverify方法。

已经提供了一个SHA256实现。下面是如何使用它的一个示例(在这里,只有一个参与者同时作为证明者和验证者)

/// Here, one party acts as both the prover and the verifier,
/// assuming that the verifier is not malicious.
fn it_verifies_valid_commitment() {
    let s: [u8; 4] = [52, 50, 52, 50]; // 4242 in string format.
    let r: [u8; 4] = [50, 52, 50, 52]; // 2424 in string format.

    // Commit phase.
    let party = SHA256Commitment::new(&s, &r);
    let commit = party.commit();

    // Verification phase.
    let verification = party.verify(&commit.unwrap(), &s, &r);

    assert_eq!(verification.is_ok(), true);
    assert_eq!(verification.unwrap(), true)
}

作者

由🤖 0xpanoramix 🤖用❤️制作

依赖项