Skip to content

Add ELIP for AMP2 descriptors - #43

Open
LeoComandini wants to merge 4 commits into
ElementsProject:mainfrom
LeoComandini:amp2
Open

Add ELIP for AMP2 descriptors#43
LeoComandini wants to merge 4 commits into
ElementsProject:mainfrom
LeoComandini:amp2

Conversation

@LeoComandini

Copy link
Copy Markdown
Collaborator

No description provided.

@LeoComandini

LeoComandini commented Jul 30, 2026

Copy link
Copy Markdown
Collaborator Author

LWK PR with candidate reference impl used to generate test vectors: Blockstream/lwk#173

edit: PR was merged with rebase, grep for elip153 to get LWK code relevant for this ELIP

delta1
delta1 previously approved these changes Jul 31, 2026

@delta1 delta1 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This looks great to me @LeoComandini.

Let's assign ELIP-153 then I'm happy to ACK. Left some very minor comments.

Verified the test vectors.

Comment thread elip-amp2.mediawiki Outdated
Comment thread elip-amp2.mediawiki Outdated
Also apply review suggestions.
@LeoComandini

Copy link
Copy Markdown
Collaborator Author

thanks @delta1 , applied both suggestions, renamed file, added mention in readme

Also:
* update test vectors
* use correct file name
* update references
@LeoComandini

Copy link
Copy Markdown
Collaborator Author
  • extended ELIP to allow non-master AMP2 server xpubs
  • extended test vectors
  • updated references and renamed file correctly

delta1
delta1 previously approved these changes Aug 28, 2026

@delta1 delta1 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM, some nits

Comment thread README.mediawiki Outdated
Comment thread elip-0153.mediawiki
====Descriptor Blinding Key====

The descriptor blinding key <code>VIEW</code> is a '''view key''' as specified in [https://github.com/ElementsProject/ELIPs/blob/main/elip-0150.mediawiki ELIP-150], derived as follows:
* Get the fingerprint of the original AMP2 server's master xpub ('''not''' the fingerprint of <code>SERVER_XPUB</code>), <code>server_fingerprint</code>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Does this spec line need to change now that we allow non-master xpubs?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

No, the fingerprint should still be from the AMP2 master xpub. This makes the life of the AMP2 signer a little easier as they could use their master fingerprint for preliminary matching.

The AMP2 server can use any derived key, however it should still return the master fingerprint and the derivation path to the xpub shared:

  1. [master_fp]master_xpub OK
  2. [master_fp/path]derived_xpub OK
  3. [derived_fp]derived_xpub should not be done

That being said, an AMP2 server could share 3. [derived_fp]derived_xpub and claim that it's the master xpub (and in general is not possible to claim that it's not the master key). If that's ok for who runs the AMP2 server, that would respect the ELIP.

Comment thread elip-0153.mediawiki Outdated
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

Successfully merging this pull request may close these issues.

2 participants