Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generalized public key verification #10

Open
clehner opened this issue Mar 15, 2021 · 0 comments
Open

Generalized public key verification #10

clehner opened this issue Mar 15, 2021 · 0 comments

Comments

@clehner
Copy link
Collaborator

clehner commented Mar 15, 2021

I understand that EcdsaSecp256k1RecoverySignature2020 is supposed to enable linked data proofs where the verification method does not contain the public key but contains material to verify the recovered public key. For example, if the verification method contains an ethereumAddress property, we can verify that the address value can be reconstructed by hashing the recovered public key as Ethereum would do it.

did-spec-registries says that ethereumAddress is deprecated in favor of blockchainAccountId. blockchainAccountId can be used to represent an Ethereum address. Both did-spec-registries and security-vocab contain examples using EcdsaSecp256k1RecoveryMethod2020 with blockchainAccountId. ethr-did-resolver recently updated to use blockchainAccountId instead of ethereumAddress.

blockchainAccountId uses CAIP-10 and can represent account IDs on many blockchains, not just Ethereum. Some of the other blockchains, such as Bitcoin, also use ECDSA/Secp256k1, and so could theoretically also be used with EcdsaSecp256k1RecoverySignature2020. Should EcdsaSecp256k1RecoveryMethod2020 specify that it can be used with any blockchainAccountId that corresponds to a Secp256k1 keypair? Should some chain IDs (CAIP-2) be listed as required or recommended for implementers of EcdsaSecp256k1RecoveryMethod2020 to support?

Additionally, some applications may use Secp256k1 outside a blockchain context. Could verification of a secp256k1 public key be expressed in a more general way than blockchainAccountId?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant