42
The Process
Practical Example
import { PrivateKey, Utils } from '@bsv/sdk'
const alice = PrivateKey.fromRandom()
const alicePub = alice.toPublicKey()
const bob = PrivateKey.fromRandom()
const bobPub = bob.toPublicKey()
// Both parties agree on an invoice number to use
const invoiceNumber = '2-simple signing protocol-1'
// Alice derives a child private key for signing
const aliceSigningChild = alice.deriveChild(bobPub, invoiceNumber)
// Alice signs a message for Bob
const message = Utils.toArray('Hi Bob', 'utf8')
const signature = aliceSigningChild.sign(message)
// Bob derives Alice's correct signing public key from her master public key
const aliceSigningPub = alicePub.deriveChild(bob, invoiceNumber)
// Now, Bob can privately verify Alice's signature
const verified = aliceSigningPub.verify(message, signature)
console.log(verified)
// trueLast updated
Was this helpful?

