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

Fix tests w/ sending outputs as subset of receiving #7

Open
wants to merge 14 commits into
base: silent-payments-bip
Choose a base branch
from

Commits on Jul 10, 2023

  1. BIP for Silent Payments

    Co-authored-by: RubenSomsen <rsomsen@gmail.com>
    josibake and RubenSomsen committed Jul 10, 2023
    Configuration menu
    Copy the full SHA
    09b3eca View commit details
    Browse the repository at this point in the history
  2. Add footnote for outpoints sorting

    Co-authored-by: Vojtěch Strnad <43024885+vostrnad@users.noreply.github.com>
    josibake and vostrnad committed Jul 10, 2023
    Configuration menu
    Copy the full SHA
    51030f7 View commit details
    Browse the repository at this point in the history
  3. Mention bech32m character limit

    BIP173 defines a 90 char limit, but we need 115. Most implementations
    already remove this limit as lightning encodings are longer than 90 char
    and use bech32, but still should be mentioned for wallet implementors.
    josibake committed Jul 10, 2023
    Configuration menu
    Copy the full SHA
    ccffd15 View commit details
    Browse the repository at this point in the history
  4. Add serialization functions from BIP32

    This better matches conventions used in other BIPS.
    It's also likely wallet software already has code for doing these
    operations if they support BIP32.
    josibake committed Jul 10, 2023
    Configuration menu
    Copy the full SHA
    2a0df2c View commit details
    Browse the repository at this point in the history
  5. Remove version from derivation path

    Remove version since upgrades to silent payments not require
    regenerating silent payment keys. If there is a future upgrade
    that would require regenerating keys, then it should have a new BIP number.
    josibake committed Jul 10, 2023
    Configuration menu
    Copy the full SHA
    f945e8a View commit details
    Browse the repository at this point in the history
  6. Change address format to use 33-byte keys

    Instead of 32-byte x-only keys, use compressed public keys
    for the silent payments address.
    
    This is to avoid parity mismatches, especially in the case of adding
    labels to the spend public key, which will cause the sign of the
    y point to flip between even and odd.
    
    Without the extra byte, we would need the sender and receiver to
    constantly negate the public and private keys at each step, which
    adds complexity and computational expense.
    josibake committed Jul 10, 2023
    Configuration menu
    Copy the full SHA
    28d9b27 View commit details
    Browse the repository at this point in the history
  7. Add a change section to the specification

    If Alice's wallet supports receiving silent payments, they
    can use the silent payment protocol to create change outputs
    for themselves.
    
    Mention this explicitly in the specification for sending.
    josibake committed Jul 10, 2023
    Configuration menu
    Copy the full SHA
    67c27d0 View commit details
    Browse the repository at this point in the history
  8. Update to use BIP number 352

    josibake committed Jul 10, 2023
    Configuration menu
    Copy the full SHA
    668fdfc View commit details
    Browse the repository at this point in the history
  9. Add test vectors and reference implementation

    Include a modified copy of bech32m (removes the 90 char limit)
    and a copy of the python secp256k1 implementation from the
    Bitcoin Core test framework
    josibake committed Jul 10, 2023
    Configuration menu
    Copy the full SHA
    174ba63 View commit details
    Browse the repository at this point in the history
  10. Add step for negating taproot private keys

    In order to maintain parity, negate the private keys for taproot outputs
    before performing ECDH. This ensures the receiver will arrive at the same result
    without needing to check both the even and odd y points for taproot x-only public keys
    josibake committed Jul 10, 2023
    Configuration menu
    Copy the full SHA
    29d7b59 View commit details
    Browse the repository at this point in the history
  11. Add Test Vectors write-up

    josibake committed Jul 10, 2023
    Configuration menu
    Copy the full SHA
    3530d98 View commit details
    Browse the repository at this point in the history
  12. Add section for versioning

    Detail backwards compatible upgrades vs backwards incompatible upgrades
    josibake committed Jul 10, 2023
    Configuration menu
    Copy the full SHA
    f3a1610 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    cfe0771 View commit details
    Browse the repository at this point in the history

Commits on Jul 23, 2023

  1. Configuration menu
    Copy the full SHA
    0d42acd View commit details
    Browse the repository at this point in the history