Signing
To sign:
- Let k = int(hash(bytes(d) || m)) mod n[8].
- Let R = kG.
- If jacobi(y(R)) ≠ 1, let k = n - k.
- Let e = int(hash(bytes(x(R)) || bytes(dG) || m)) mod n.
- The signature is bytes(x(R)) || bytes(k + ex mod n).
Let e = int(hash(bytes(x(R)) || bytes(dG) || m)) mod n.
The signature is bytes(x(R)) || bytes(k + ex mod n).
Optimizations
Jacobian coordinates
- oncurve(P) can be implemented as y2 = x3 + 7z6 mod p.
Hello everyone,
Here is a proposed BIP for 64-byte elliptic curve Schnorr signatures,
over the same curve as is currently used in ECDSA:
https://github.com/sipa/bips/blob/bip-schnorr/bip-schnorr. mediawiki
It is simply a draft specification of the signature scheme itself. It
does not concern consensus rules, aggregation, or any other
integration into Bitcoin - those things are left for other proposals,
which can refer to this scheme if desirable. Standardizing the
signature scheme is a first step towards that, and as it may be useful
in other contexts to have a common Schnorr scheme available, it is its
own informational BIP.
If accepted, we'll work on more production-ready reference
implementations and tests.
This is joint work with several people listed in the document.
Cheers,
--
Pieter
_______________________________________________
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin- dev