Explain more details about the burn address

This commit is contained in:
Duke
2024-09-12 13:40:30 -04:00
parent f8e7df37a1
commit 04165e161a

View File

@@ -24,7 +24,17 @@
#include "cc/CCinclude.h"
#include "sietch.h"
// this is the address for pubkey = 0x000000000000000000000000000000000 (33 bytes)
// This is the address for pubkey = 0x000000000000000000000000000000000 (33 bytes)
// Funds sent to a burn address can never be spent because the pubkey is invalid
// because it is not a point on the elliptic curve we use (secp256k1, like all other
// Bitcoin-derived codebases). secp256k1 is defined by the equation y^2 = x^3 + 7 .
// Using pubkey=0 also implies privkey=0 and the (pubkey,privkey) pair are the same
// as the (x,y) pair in the equation. If you plug in (0,0) to the equation you get
// 0^2 = 0^3 + 7 or 0=7 which is false. This means that (0,0) is not a valid point
// on the secp256k1 curve. Therefore there is no valid signature to spend the funds
// sent to the burn address, because a valid signature must use a valid point on the
// elliptic curve being used. For these reasons, we can prove that the burn address
// receives funds which can never be spent.
#define BURN_ADDRESS "RD6GgnrMpPaTSMn8vai6yiGA7mN4QGPVMY"
int32_t hush_notaries(uint8_t pubkeys[64][33],int32_t height,uint32_t timestamp);