python中的椭圆曲线密码,包括secp256k1和alt_bn128
py-ecc的Python项目详细描述
Py_ECC
python中的椭圆曲线密码,包括secp256k1和alt_bn128
快速启动
pip install py_ecc
BLS签名
frompy_eccimportblsdomain=43private_key=5566public_key=bls.privtopub(private_key)# Hash your message to 32 bytesmessage_hash=b'\xab'*32# Signingsignature=bls.sign(message_hash,private_key,domain)# Verifyingassertbls.verify(message_hash,public_key,signature,domain)
把domain
看作一个版本。签名和验证在不同的域上不起作用。在升级的系统中设置新域可防止它受到旧消息和签名的影响。
聚合签名和公钥
private_keys=[3,14,159]public_keys=[bls.privtopub(key)forkeyinprivate_keys]signatures=[bls.sign(message_hash,key,domain)forkeyinprivate_keys]# Aggregatingagg_sig=bls.aggregate_signatures(signatures)agg_pub=bls.aggregate_pubkeys(public_keys)# Verifyingassertbls.verify(message_hash,agg_pub,agg_sig,domain)
多重聚集
message_hash_1,message_hash_2=b'\xaa'*32,b'\xbb'*32msg_hashes=[message_hash_1,message_hash_2]agg_pubs=[agg_pub_1,agg_pub_2]agg_agg_sig=bls.aggregate_signatures([agg_sig_1,agg_sig_2])assertbls.verify_multiple(agg_pubs,msg_hashes,agg_agg_sig,domain)
开发人员设置
如果您想破解py_ecc,请查看Ethereum Development Tactical Manual了解我们的操作:
- 测试
- 拉取请求
- 代码样式
- 文档
有虫子吗?
请随意在https://github.com/ethereum/py_ecc/issues下创建问题
版权和许可
项目是根据麻省理工学院的许可证授权的。
释放设置
发布新版本:
make release bump=$$VERSION_PART_TO_BUMP$$
如何颠簸
此回购协议的版本格式为{major}.{minor}.{patch}
,表示稳定,并且
{major}.{minor}.{patch}-{stage}.{devnum}
表示不稳定(stage
可以是α或β)。
要发布第行的下一个版本,请指定要凹凸的部分,
比如make release bump=minor
或者make release bump=devnum
。
如果您是beta版,make release bump=stage
将切换到稳定版。
若要在当前版本稳定时发布不稳定版本,请指定
新版本,如make release bump="--new-version 4.0.0-alpha.1 devnum"