Bulletproof现有代码实现说明

1. Bulletproof特征

Bulletproof相对于zk-SNARK,不需要trust setup过程。但是verify一个proof的时长要超过zk-SNARK。

Bulletproof可用于加密货币的隐私交易(如隐藏UTXO的交易金额),可将现有10KB的proof压缩到1KB,且支持同时对m个交易生成聚合proof,相对于单个交易的proof,只需额外增加O(log(m))个元素。

若Bitcoin中所有的交易都转换为Bulletproof交易,则其UTXO集大小可由当前的160GB压缩到仅约17GB。

2. Bulletproof现有代码实现

参考论文见https://eprint.iacr.org/2017/1066.pdf

当前开源的代码实现 有:

  1. Bulletproofs implementation in Secp256k1lib (work in progress) : An implementation of Bulletproofs in C by Andrew Poelstra and Pieter Wuille. Uses constant time operation for proving and is very fast. Includes a tool for converting Pinocchio circuits to Bulletproof circuits and generating proofs for aribrary statements. Work in progress and will still be improved and expanded.
  2. Prototype code (not intended for production use): An implementation of Bulletproofs in Java. Includes a general tool for constructing Bulletproofs for any NP language using the Pinocchio tool chain.
  3. Bulletproofs implementation in Rust by Chain, Inc (work in progress):An implementation of Bulletproofs range proofs built for Chain, Inc, by Henry de Valence, Cathie Yun, and Oleg Andreev. The code uses curve 25519 and AVX2 instruction.
  4. Bulletproof Rust implementation for Aggregated Range Proofs over multiple elliptic curves:由KZen Research公司主导。Rust语言实现,支持secp256k1, ristretto, ed25519多种椭圆曲线。
  5. Haskell实现的Bulletproof:由Adjoint主导,采用Haskell语言实现,目前支持secp256k1

3. Bulletproof视频资料

https://www.youtube.com/watch?v=gZjDKgR4dw8&feature=youtu.be

参考资料:
[1] https://github.com/bbuenz/BulletProofLib/
[2] https://crypto.stanford.edu/bulletproofs/
[3] https://github.com/apoelstra/secp256k1-mw
[4] https://eprint.iacr.org/2017/1066.pdf
[5] https://www.youtube.com/watch?v=gZjDKgR4dw8&feature=youtu.be

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据您的要求,我们可以利用继承、抽象类、接口以及main函数来实现设计XXX门的系统。首先,我们创建一个抽象类Door,其中包含开门openDoor()和关门closeDoor()的方法。代码示例: ```java public abstract class Door { public abstract void openDoor(); public abstract void closeDoor(); } ``` 接下来,我们创建一个防盗接口TheftProof,该接口定义了防盗功能的方法theftproof()。代码示例: ```java public interface TheftProof { void theftproof(); } ``` 然后,我们创建一个防水接口Waterproof,该接口定义了防水功能的方法waterproof()。代码示例: ```java public interface Waterproof { void waterproof(); } ``` 接着,我们创建一个防弹接口Bulletproof,该接口定义了防弹功能的方法bulletproof()。代码示例: ```java public interface Bulletproof { void bulletproof(); } ``` 最后,我们创建一个综合门类CompositeDoor来实现Door抽象类和TheftProof、WaterproofBulletproof接口,并在main函数中进行调用。代码示例: ```java public class CompositeDoor extends Door implements TheftProof, Waterproof, Bulletproof { @Override public void openDoor() { System.out.println("打开门"); } @Override public void closeDoor() { System.out.println("关闭门"); } @Override public void theftproof() { System.out.println("防盗功能"); } @Override public void waterproof() { System.out.println("防水功能"); } @Override public void bulletproof() { System.out.println("防弹功能"); } public static void main(String[] args) { CompositeDoor door = new CompositeDoor(); door.openDoor(); door.closeDoor(); door.theftproof(); door.waterproof(); door.bulletproof(); } } ``` 通过这样的设计,我们实现了一个综合门系统,并在main函数中展示了门的开门、关门、防盗、防水和防弹功能的调用。其他类型的门可以通过继承Door抽象类和实现其他接口来实现不同的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值