crypto-address improvements.

Open
#123 2 comments 0 reactions 1 assignee View on GitHub

@wolfmcnally is already working on this.

Since Mar 28, 2023.

Assessment

This issue has not been assessed yet.

Description

Currently the BCR-2020-006 standard defines the crypto-address UR type but the definition is a little bit ambiguous.

On Example/Test Vector 1 the specified P2PKH address 1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2 does not include the type of the address in the encoded CBOR, making it ambiguous to differentiate between it P2SH and P2PKH as these are both 20-byte hashes.

On the CDDL comment it should also:

- ;   For addresses of type `p2wphk`, the sha256 of the script bytes (32 bytes).
+ ;   For addresses of type `p2wpkh`, the witness program (20 bytes).

It is not a script hash but the witness program and for P2WPKH it is 20 bytes, for P2WSH it is 32 bytes.

P2WSH could be also added and P2TR addresses too.

So:

  • P2PKH, P2SH and P2WPKH types of addresses use 20-bytes of data.
  • P2WSH and P2TR use 32-bytes of data.

I think to differentiate these the type field should be always included when info specifies a Bitcoin address. Also maybe the info field should have a .default specifier but I don't know if CDDL allows that for maps or if the behavior is to skip a field in a map completely when all the fields of the inner map can be ommited because of the default values.

Dominant language
Wolfram Language
Stars
141
Forks
39
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from BlockchainCommons/Research

All issues in BlockchainCommons/Research

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.