spesmilo / electrum

Electrum Bitcoin Wallet
https://electrum.org
MIT License
7.4k stars 3.08k forks source link

Taproot support? #7544

Open yura-pakhuchiy opened 2 years ago

yura-pakhuchiy commented 2 years ago

Do you plan to support creation of wallets with taproot addresses?

brianddk commented 2 years ago

@ecdsa , @SomberNight - Is this the best issue to track this under?

SomberNight commented 2 years ago

Yes, naturally we plan to add taproot support. Initially only singlesig wallets with keypath spends will be implemented.

To be able to create watch-only versions of these wallets (required before we can expose it to users), some wallet-refactoring and wizard changes are needed, as we don't want to extend the current x/y/zpub scheme. Most likely some form of output script descriptors should be used.

No ETA, but it is on the TODO list.

prusnak commented 2 years ago

Most likely some form of output script descriptors should be used.

For Trezor we use extended descriptors suggested by achow101: p2tr(xpub..../<0;1>/*)

Engelberg commented 2 years ago

Will electrum recognize taproot addresses as valid when sending to other wallets with taproot support?

paboum commented 2 years ago

I would like to donate 50 mBTC to this feature as a bounty. Please e-mail me with the GPG keys/GitHub nicknames of the developers that are going to drive this, a roadmap and a preferred donation model. I'm also happy to just donate to the project when the feature is released, if all the implementers agree on that.

paboum commented 2 years ago

I don't understand why no contact was made with me for the past 2 months. This feature seems crucial to enabling a widespread taproot adoption on btc network, possibly overcoming ethereum's dominance on smart contracts market, and the reference implementation is already available in bitcoin-core. I've been using bitcoin-core back in 2010s and I strongly prefer not to go back to running a full node (at least until my assets valuate at $10M). I was happy to observe LN adoption in Electrum, I can't wait to get my hands on the first btc sc ever created. Eventually, BIP 340, 341, and 342 was activated and enforced at block 709,632 on November 12th, 2021, now we are only waiting for easy-to-use technical implementation and market adoption. I have offered a financial incentive comparable to 6 months of senior python developer's salary, what else is blocking you? Am I misunderstanding the technical difficulty here? Does it seem strange that I wish to spend money to earn more money? Why is there even no actual interest in changing the status quo? I am now strongly considering to present the same offer to other projects, I am watching this list daily: https://en.bitcoin.it/w/index.php?title=Bech32_adoption&action=history

prusnak commented 2 years ago

... comparable to 6 months of senior python developer's salary, what else is blocking you?

I don't know where do you live, but what you offered is no more than 20 days of senior Python developer's work in country where I live. And salaries in other countries are even 3- to 5-times higher than this.

But most importantly, the work does not magically get done by throwing money at it. What most open-source projects are struggling with is manpower, not money.

PS: I do not speak for Electrum project, I am just a random Electrum contributor.

paboum commented 2 years ago

I don't know where do you live, but what you offered is no more than 20 days of senior Python developer's work in country where I live. And salaries in other countries are even 3- to 5-times higher than this.

An interesting notion. Please let me know about current job offers in your area, I might even learn some python myself. According to Indeed, the highest Python developer salary in New York, reaches $133,526. Python programmers in San Francisco earn about $120,552 per year. Python's salary in San Jose offers a salary of $115,367 per year. In Boston, the Python developer's salary reaches $124,680 per year.

This being said, I'm not looking for specific commits here, but rather for a notion that something is being done. I believe this project, as having 303 contributors, has some managemental and organisational roles too, someone should be coordinating your efforts and setting the course. They should know best how to remove the impediments and how (if at all) my contribution can help with achieving that. The communication so far sounds rather "we are happy with ourselves, please go away" and I'm happy to comply, after all nobody can stop the progress.

prusnak commented 2 years ago

as having 303 contributors

This is very skewed perspective. There are 303 people that at some point contributed to Electrum. There is a very long tail of contributors and most of the people contributed just one thing ("scratching your own itch" as they say) and never returned back. If you look closely at charts presented at https://github.com/spesmilo/electrum/graphs/contributors there are only 2 people who can be considered as core contributors.

You are more than welcome to learn Python and contribute the change, or find someone to contribute instead of you, but you can't be angry with developers not taking your offer, because they have full hands with other things that seem more important to them.

SomberNight commented 2 years ago

I was busy with other things so I did not yet work on this - nor did anyone else AFAICT. It is high on my list however. "it will be out when it's ready"

taproot adoption on btc network, possibly overcoming ethereum's dominance on smart contracts market

Uhmmm maybe we should clarify the scope of this issue... I am only thinking about keypath spends and likely OP_CHECKSIGADD multisig in script-path spends. If upstream libsecp adds musig2, maybe that as well (but that's already a separate task). Not sure what you mean by "smart" contracts. More generic tapscript stuff will also be implemented in the python library, as it will likely be needed for lightning in the future, however there are no plans to expose that to the UI.

I would like to donate 50 mBTC to this feature as a bounty.

comparable to 6 months of senior python developer's salary

Perhaps I should sell some coins to you :) as it sounds like you are using an excessively high exchange rate compared to cost of living. Jokes aside, just out of curiousity, what exchange rate are you calculating with?

In any case, your bounty is welcome, I might ping you if it still stands when this is done.

paboum commented 2 years ago

Ah, okay, it seems your project is not significant at all, the whole magic takes place in bitcoin-core/secp256k1 anyway. Sorry to startle you, the deal is off the table.

Not sure what you mean by "smart" contracts.

Try looking for Nick Szabo, 1994.

blockonomics commented 2 years ago

Yes, naturally we plan to add taproot support. Initially only singlesig wallets with keypath spends will be implemented.

To be able to create watch-only versions of these wallets (required before we can expose it to users), some wallet-refactoring and wizard changes are needed, as we don't want to extend the current x/y/zpub scheme. Most likely some form of output script descriptors should be used.

No ETA, but it is on the TODO list.

Would be great if you can come to a common format along with test vector for xpub scheme for this [ also see slip github issue ]. This would help explorers like blockonomics.co , blockchain.com, cointracker support xpub lookups

prusnak commented 2 years ago

a common format along with test vector for xpub scheme for this

There is already this: https://github.com/satoshilabs/slips/blob/master/slip-0014.md#bitcoin-taproot--p2tr--bip86 (we use extended descriptor syntax proposed by achow101)

Both simplified descriptor format

tr(xpub6Bw885JisRbcKmowfBvMmCxaFHodKn1VpmRmctmJJoM8D4DzyP4qJv8ZdD9V9r3SSGjmK2KJEDnvLH6f1Q4HrobEvnCeKydNvf1eir3RHZk)

and the extended descriptor format

tr([5c9e228d/86'/0'/0']xpub6Bw885JisRbcKmowfBvMmCxaFHodKn1VpmRmctmJJoM8D4DzyP4qJv8ZdD9V9r3SSGjmK2KJEDnvLH6f1Q4HrobEvnCeKydNvf1eir3RHZk/<0;1>/*)#4swej4wz

work on our blockbook.

ghost commented 2 years ago

I would like to donate 50 mBTC to this feature as a bounty.

comparable to 6 months of senior python developer's salary

it seems your project is not significant at all

What a total idiot?

nbourbon commented 2 years ago

Hey just checking in... is Taproot going to be supported?. I'm struggling with this as I've always used Electrum with my HW but I no longer want to use Segwit... so not having taproot will force me to switch tools and I want to stay here :)

ecdsa commented 2 years ago

yes, it is going to be supported. please stop asking...

signverify commented 1 year ago

Adding my +1 here.

KriptoQraf commented 10 months ago

Adding my +1 here.

why

mmmmyah commented 8 months ago

Hi - any updates on this? Other wallets like Ledger wallet have already implemented taproot support.. please add in Electrum thanks

Catlike14 commented 7 months ago

Is there something we can do in order to speed up this development?

prusnak commented 7 months ago

Is there something we can do in order to speed up this development?

You can send a pull request with the change that adds Taproot.

helpau commented 6 months ago

Probably related https://github.com/pyca/cryptography/issues/8202

chrismcfee commented 4 months ago

June 2024 and still no support for taproot addresses. Friendly reminder that Electrum and all related projects amount to a COMPLETE JOKE and no one should ever seriously consider using this garbage.