BULLSIG is a co-signing software based on SECP256K1 ECDSA which can allow any count of parties to take part in the signing. To sign any info must get all parties agreement, Any party doesnot agree to sign then you cannot sign the information. And the signing process does not send privatekey's shadow, but only send middle-signing result, this feature is very important to protect private key.
Compile environment: Linux version 5.8.0-44-generic (buildd@lgw01-amd64-054) (gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, GNU ld (GNU Binutils for Ubuntu) 2.34)
step 1:
$ ./once.sh /* setup environment, only need to execute this command for the first time to compile this project */
step 2:
$ make clean /* Clear all the files generated by the compiler */
step 3:
$ make /* generate execute app */
step 1:
$ ./run.sh
And then you can operate this software step by step according to the following help information:
Decentralized Distributed Co-Signing Software BULLSIG Version 1(Command List)
-
set signing-committee's size(default is 3) : setsize x(signing-committee's size)
-
generate address and private key : genkey
-
generate fragments of a private key : genfrag xxx(the key file will be split)
-
generate signature using whole private key : sig xxx(key file) yyy(message will be signed)
-
generate signature using private-key's fragments : bullsig xxx(message will be signed)
-
verify a signature : verify xxx(the signature file will be verified) yyy(the message be signed)
-
exit this software : quit
-
help information : help
step 2:
$ ./clean /* delete all running result files */
Enjoy!