stratisproject / Breeze

Project Breeze Repository
MIT License
88 stars 48 forks source link

[Priority: High] Integrate Segregated Witness #201

Open nopara73 opened 6 years ago

nopara73 commented 6 years ago

BIP141 - SegWit was introduced as a soft fork to the Bitcoin network. In a nutshell it makes transactions cheaper and fixes transaction malleability.
BIP173 - Bech32 SegWit addresses were introduced lately by Pieter Wuille and they are expected to get widely used in the near future.

Traditional Bitcoin address: 1F1tAaz5x1HUXrCNLbtMDqcw6o5GNn4xqX
SegWit address: bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4
Bech32 SegWit address: lost1qsyq7yqh9gk0szs5

Needed For Integration

Receive

Receive should be enabled for SegWit and Bech32 addresses, optionally traditional addresses, too.

Send

Sending should work on traditional, segwit and bech32 addresses. Optionally p2sh, p2wsh should be supported, too.

Additional Notes

NBitcoin supports for all types.

dev0tion commented 6 years ago

This would be great. What needs to be done UI-wise?

nopara73 commented 6 years ago

Nothing yet.
It's not clear at this point if integrating segwit would mean dropping receiving to traditional addresses or not.
Also we'll have two kind of segwit addresses: P2WPKH and bech32.

So there's three way we can integrate it:

  1. Receive only to bech32
  2. Receive to bech32 and p2wpkh
  3. Receive to bech32, p2wpkh and p2pkh.

The ability of wallets to send to p2wpkh is quickly growing, I'd vote for completely dropping the support for receiving p2pkh. While adding support for sending p2pkh, p2sh, p2wpkh, p2wsh, 2 types of bech32 and even for scriptpubkey in itself.
While ability of wallets to send to bech32 is only slowly growing I'd even vote for not allowing to receive p2wpkh, only to bech32. I'd say Breeze is the wallet of the future, so why not look forward instead of backwards?
Nevertheless these are my preferences, I don't insist to any of those.