Die Leute scheinen "native segwit" und "bech32" synonym zu verwenden. Sind sie wirklich dasselbe?
TL;DR: Natives Segwit bezieht sich auf Segwit-Ausgaben ohne P2SH-Wrapper. Bech32 ist das Adressformat, das zur Darstellung nativer Segwit-v0-Sperrskripts verwendet wird.
Als Segwit aktiviert wurde, führte es die nullte Generation von Segwit ein, Segwit-v0. Die entsprechenden Sperrskripte gab es in zwei Varianten:
Bech32 wird auch für andere Zwecke verwendet, wie zB zum Verschlüsseln von Lightning-Rechnungen . Ursprünglich war geplant, Bech32 auch für spätere native Segwit-Ausgabeversionen zu verwenden. Nachdem jedoch eine Mutabilitätsschwäche entdeckt wurde und Umfragen ergaben, dass viele Wallets das Senden an höhere Segwit-Versionen nicht richtig handhaben, wird eine geänderte Version von Bech32 diskutiert. Diese geänderte Version von Bech32 würde eine andere Prüfsummenkonstante verwenden, um explizit die Vorwärtskompatibilität zu unterbrechen, dh Wallets müssen aktualisiert werden, um Segwit-v1-Ausgaben zu erstellen. Das Aufbrechen der Vorwärtskompatibilität schützt Wallets vor dem Verbrennen von Geldern, indem segwit-v1-Adressen fälschlicherweise auf segwit-v0-Adressen herabgestuft werden, und ermöglicht die Behebung der Mutabilitätsschwäche.
Der vorgeschlagene Taproot-Softfork führt den nativen Segwit-v1-Ausgabetyp Pay to Taproot (P2TR) ein , der der erste native Segwit-Ausgabetyp wäre, der dieses geänderte Bech32-Adressformat namens "Bech32m" verwendet, das von BIP-350 vorgeschlagen wird .