Add README.md
arnaucube root@arnaucube.com
Sun, 10 Jan 2021 17:25:06 +0100
2 files changed,
30 insertions(+),
0 deletions(-)
A
README.md
@@ -0,0 +1,28 @@
+# go-blindsecp256k1 +Blind signature over [secp256k1](https://en.bitcoin.it/wiki/Secp256k1), based on *"[An Efficient Blind Signature Scheme Based on the Elliptic CurveDiscrete Logarithm Problem](http://www.isecure-journal.com/article_39171_47f9ec605dd3918c2793565ec21fcd7a.pdf)"* paper. + +**WARNING**: this repo is experimental, do not use in production. + +## Usage + +```go +// message to be signed +msg := new(big.Int).SetBytes([]byte("test")) + +// create new signer +signerPrivateData := blindsecp256k1.NewSigner() +signerPublicData := signerPrivateData.PublicData() + +// user blinds the msg +msgBlinded, user := blindsecp256k1.Blind(msg, signerPublicData) + +// signer signs the blinded message +sBlind := signerPrivateData.BlindSign(msgBlinded) + +// user unblinds the blinded signature +sig := blindsecp256k1.Unblind(sBlind, msg, user) + +// signature can be verified with signer PublicKey +verified := blindsecp256k1.Verify(msg, sig, signerPublicData.Q) +assert.True(t, verified) +```
M
blindsecp256k1.go
→
blindsecp256k1.go
@@ -1,5 +1,7 @@
// Package blindsecp256k1 implements the Blind signature scheme explained at // http://www.isecure-journal.com/article_39171_47f9ec605dd3918c2793565ec21fcd7a.pdf +// +// LICENSE can be found at https://github.com/arnaucube/go-blindsecp256k1/blob/master/LICENSE package blindsecp256k1 // WARNING: WIP code