Skip to content

wz14/schnorr-based-multisignature

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

An implementation for schnorr-based multi-signature.

An implementation for BN and MuSig based libecc.

Features

  • pure c
  • portability(inherit from libecc) for all platform
  • support elliptical curve include secp256k1,secp256r1,...
  • incomplete security

Usage in Linux

git clone https://github.com/WangZhuo2000/schnorr-based-multisignature.git
cd schnorr-based-multisignature
git submodule update --init
make

The bin\BN.o and bin\MuSig.o is the library for your project. See more details below and you can find some examples in the example folder.

Implementation Details

BN

origin paper.

MuSig

origin paper

Additional Implementation

Although that hasn't been mentioned in the original paper, I think it is necessary to implement a "sign-in" check, which is engineering considered for an adversary who wants to destroy the multi-signature system.

The origin papers describing the two multi-signatures have given rigorous security proof based on a DL assumption. But adversary still can destroy the system by sending a random string in the last round of multi-signature. Though be destroyed by an adversary, no honest signer can distinguish an adversary and an honest signer without a "sign-in" check which not be described in origin papers.

SignInCheck Algorithm

SignInCheck(PK,partial_sig) return true/false

If SignInCheck returns false, that means the signers who send the partial_sig may be evil. If he sends an invalid message for a long time, honest signers can take action.

Security Guarantees

  • blind key generation
  • ...

Send to zhuowangy2k@outlook.com if any security problem exists or more security guarantees.

License

License is available here.

About

A implement for BN and MuSig based libecc.

Resources

License

Stars

2 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors