创建和验证分布式多方签名
partysig的Python项目详细描述
用于创建和验证分布式多方签名的命令行工具。
安装
$ virtualenv env $ . env/bin/activate $ pip install -e .
用法
密钥生成
在一台机器上,运行:
$ partysig keygen start
在其他计算机上,运行:
$ partysig keygen join
签署
在要签署文件的计算机上,运行:
$ partysig sign start FILE
在其他计算机上,运行:
$ partysig sign join
验证签名
运行:
$ partysig verify FILE SIGNATURE
设计
当前的签名版本(v1)实现了比特币风格的多重sig,其中 多签名包含:
- 多重签名有效所需的签名数
- 允许创建签名的公钥
- 来自这些密钥子集的签名
前两部分一起相当于一个比特币脚本,并且是类似的散列 以获取多方签名组的“主密钥”。ED25519用于 单个签名和blake2b用于创建主密钥。
签名格式
Version (1-byte uint) \ Threshold (1-byte uint) |_ Hashed to obtain Size (1-byte uint) | the master key Pubkeys (32 x size bytes) / Signatures (64 x threshold bytes)
致谢
- Joanna Rutkowska询问the question,提示创建此工具。
- Brian Warner编写了Magic Wormhole,这是该工具可用性的关键组件。