Browse Source

Add README.md

pull/1/head
arnaucube 3 years ago
parent
commit
e5f0e122a7
2 changed files with 30 additions and 0 deletions
  1. +28
    -0
      README.md
  2. +2
    -0
      blindsecp256k1.go

+ 28
- 0
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)
```

+ 2
- 0
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

Loading…
Cancel
Save