Awesome! I'll try to implement SegWit in my client.
Awesome right back at you! Core provides a
concise technical overview of what is needed for implementing different levels of Segwit support, with links to the pertinent BIPs.
When you’re done, if desired, you may submit a GH pull request to add your software project or company to the list of
those which have adopted Segwit.
That will be good for your users, and good for the network. It will also prepare you to add important future upgrades such as Schnorr signatures and MAST, which will depend on support for Segwit’s script versioning system. Segwit was not only a capacity upgrade; it was a bugfix (tx malleability, etc.) and a means to add forward compatibility.
With all that in mind, is there a desktop wallet that can create Segwit addresses by default? Electrum is sadly a no.
As of version 3.0, released last month, Electrum does support Segwit! You need to generate a new Electrum wallet for this; and if you select “Segwit wallet”, it will only give you Bech32 addresses. If you want Bech32 addresses, then your problem is solved.
Bech32 addresses are technically superior to old-style addresses; but they are not backward-compatible, so only people with Segwit support will be able to send you money. I myself hope to switch to Bech32 in perhaps 6–12 months. Future viewers of this post will see my signature showing an address which starts with “bc”.
To make Electrum give you a wallet of backward-compatible P2WPKH-nested-in-P2SH “3” addresses like the one you see
now in my signature, use the following procedure, which I have tested: (0) Generate a BIP39 seed by some other means. I wrote a short C program for this, which I should polish up and post online;
BIP 39 itself contains a list of implementations, including the
Python reference implementation. (1) In the new wallet dialogue, tell Electrum that you already have a seed. (2) In the seed entry dialogue, click the button for more options and tell Electrum you’re using a BIP39 seed. (3) In the next screen, change the derivation path to
m/49'/0'/0'. The only part which needs to be changed is the “49”. You may refer to
BIP 49 (as to the 49, the “purpose”) and
BIP 44 (for the two zeroes, “coin type” and “account”) to confirm that I am not giving you bad instructions which will send your money off into the weeds; I mention that because I’ve seen Internet posts get this part wrong.
I also cannot believe that the largest online wallet provider Blockchain.info has not enabled Segwit. Were they not one of the companies that were complaining that their customers are paying high fees?
I see the hypocrisy here because Blockchain is now enabling Bitcoin Cash in their wallets. But why not Segwit?
Though perhaps some of the major players just don’t yet have their acts together, there is much political motivation behind some of these decisions. I will take it as conclusive evidence when a company adds forkcoin support without letting their users use Segwit addresses.
Plus I believe we should start campaigning for Segwit usage in the forum. But first I need to understand how it works. I hope you will me patient with me.
Perhaps you can tell, I agree about that campaigning!
I hope that my posts have helped with understanding.
If you check my post history, you may notice that I am ruthless and downright nasty to anybody who seems to have ulterior motives. Especially anybody who openly promotes a
fork coin (
n.b. that I just tossed that link because it’s handy; here lies a very deep rabbit hole, one where all the rabbits were killed and eaten by poisonous snakes). But for decent people who want to use Bitcoin and desire to better understand it, I am happy to help.