Skip to content

Conversation

mathiasrw
Copy link

@mathiasrw mathiasrw commented Mar 29, 2019

Elliptic Curve Digital Signature Algorithm or ECDSA is a cryptographic algorithm used by many most?) blockchains to sign data.

Would love to use multicodec for my work with the BSV blockchain so please have a look at toe one line PR.

@ghost ghost assigned Stebalien Apr 25, 2019
@ghost ghost added the in progress label Apr 25, 2019
Elliptic Curve Digital Signature Algorithm or ECDSA is a cryptographic algorithm used by Bitcoin to ensure that funds can only be spent by their rightful owners.
ipld-ns, namespace, 0xe2, IPLD path
ipfs-ns, namespace, 0xe3, IPFS path
swarm-ns, namespace, 0xe4, Swarm path
ECDSA, multihash, 0xec, ECDSA signature
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This wouldn't be a multihash, it would be a signature. So we're on the same page, how are you planning on using this codec to identify ECDSA signatures?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we have plans on doing a “multisign” at some point?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do but it's unclear how this should look. The signature algorithm is usually a property of the key, not the signature, and libp2p actually has an ECDSA key type.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm working on clojure implementation of multisig and multikey.
Multikey is for expressing public keys and would look like this: algo+length+x509encodedKey
Where algo is ecdsa, rsa, or other, length is length of x509encodedKey.

Multisig is for expressing signatures and would look like this: algo+length+signatureBytes
Where algo could be sha256-with-ecdsa.

Unlike with multihashes, it would not be possible to compare payloads for equality (as signature may be different for the same data each time the signature is calculated), but having a public key it would still be possible to verify the signature.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMO, ECDSA is a bit too generic. For example, how do you distinguish between secp256k1 and r1?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you still need curve params if you have x509encodedKey as part of multikey?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants