Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Taproot #1656

Closed
4 tasks done
tsusanka opened this issue Jun 8, 2021 · 12 comments
Closed
4 tasks done

Support Taproot #1656

tsusanka opened this issue Jun 8, 2021 · 12 comments

Comments

@tsusanka
Copy link
Contributor

tsusanka commented Jun 8, 2021

Support Taproot in firmware.

Tasks:

Docs:

@prusnak
Copy link
Member

prusnak commented Jun 8, 2021

FTR: Taproot softfork will activate in mid-November 2021.

@tsusanka

This comment has been minimized.

@prusnak

This comment has been minimized.

@andrewkozlik
Copy link
Contributor

andrewkozlik commented Jun 22, 2021

Additional tasks:

  • In SignTx implement the BIP-341 "common signature message" computation.
  • In SignTx disable streaming of previous transactions if all internal inputs are taproot.
  • Implement taproot support in scripts.py, i.e. output_script_native_p2tr() , witness_p2tr(), parse_witness_p2tr() etc.
  • Decide how best to implement multisig for taproot in Trezor
    • MuSig (interactive signing) vs. unagreggated multisig (non-interactive).
    • Consider that taproot allows encoding more complicated schemes, e.g. with four keys A, B, C and D, we can have something like "A or (B and C) or (B and D)". This would require modifications to MultisigRedeemScriptType.
  • Implement multisig scripts for taproot.
  • Use new Bech32m format in GetAddress.
  • Support taproot scripts and Schnorr signatures in SignatureVerifier.
  • Support taproot scripts and Schnorr signatures in GetOwnershipProof and in verify_nonownership().
  • Figure out how to deal with taproot in SignMessage and VerifyMessage. Bitcoin Core doesn't seem to use Schnorr signatures for signing messages. This is related to AOPP support https://github.com/trezor/trezor-firmware/issues/1586.

@prusnak
Copy link
Member

prusnak commented Jun 22, 2021

[ ] Decide how best to implement multisig for taproot in Trezor

I prefer to transfer the multisig related tasks to a separate topic (new epic issue) and focus this effort only for single-sig Taproot.

@andrewkozlik
Copy link
Contributor

andrewkozlik commented Jun 23, 2021

  • Decide BIP-44 paths

Andrew Chow is proposing to use a new purpose number for taproot paths:
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-June/019096.html
bitcoin/bips#1137

@alex-jerechinsky alex-jerechinsky added this to 🎯 To do in FW · August 11 🍎 via automation Jul 19, 2021
@alex-jerechinsky alex-jerechinsky removed this from 🎯 To do in FW · August 11 🍎 Jul 21, 2021
@alex-jerechinsky alex-jerechinsky added this to 🎯 To do in FW · September 8 🍂 via automation Jul 21, 2021
@alex-jerechinsky alex-jerechinsky removed this from 🎯 To do in FW · September 8 🍂 Aug 17, 2021
@alex-jerechinsky alex-jerechinsky added this to 🎯 To do in FW · October 13 🍊 via automation Aug 17, 2021
@alex-jerechinsky alex-jerechinsky moved this from 📥 Inbox to 📽 Product in Firmware · Backlog 🗂 Oct 5, 2021
@alex-jerechinsky alex-jerechinsky moved this from 🎯 To do to 🔥 Priority in FW · October 13 🍊 Oct 7, 2021
@alex-jerechinsky alex-jerechinsky removed this from 🔥 Priority in FW · October 13 🍊 Oct 7, 2021
@alex-jerechinsky alex-jerechinsky added this to 🎯 To do in FW · November 10 🥫 via automation Oct 7, 2021
@alex-jerechinsky alex-jerechinsky moved this from 🎯 To do to 🔥 Priority in FW · November 10 🥫 Oct 7, 2021
@tsusanka tsusanka removed this from 📽 Product in Firmware · Backlog 🗂 Oct 7, 2021
@alex-jerechinsky alex-jerechinsky removed this from 🔥 Priority in FW · November 10 🥫 Oct 22, 2021
@alex-jerechinsky alex-jerechinsky added this to 🎯 To do in Oct 7 - Oct 21 ❄️ via automation Oct 22, 2021
@alex-jerechinsky alex-jerechinsky moved this from 🎯 To do to 🔥 Priority in Oct 7 - Oct 21 ❄️ Oct 22, 2021
@alex-jerechinsky alex-jerechinsky added this to 🎯 To do in Oct 21 - Nov 4 via automation Oct 22, 2021
@alex-jerechinsky alex-jerechinsky removed this from 🔥 Priority in Oct 7 - Oct 21 ❄️ Oct 22, 2021
@tsusanka tsusanka removed this from 🎯 To do in Oct 21 - Nov 4 Nov 5, 2021
@tsusanka tsusanka added this to 🎯 To do in ❄️ Nov 4 - Nov 18 via automation Nov 5, 2021
@prusnak prusnak added this to TODO in Taproot 🥕 Nov 14, 2021
@alex-jerechinsky alex-jerechinsky moved this from 🎯 To do to 🏃‍♀️ In progress in ❄️ Nov 4 - Nov 18 Nov 18, 2021
@alex-jerechinsky alex-jerechinsky moved this from 🏃‍♀️ In progress to 🤝 Needs QA in ❄️ Nov 4 - Nov 18 Nov 19, 2021
@bosomt bosomt moved this from 🤝 Needs QA to ✅ Approved in ❄️ Nov 4 - Nov 18 Nov 22, 2021
@bosomt
Copy link

bosomt commented Nov 22, 2021

QA OK

@gruve-p
Copy link
Contributor

gruve-p commented Nov 22, 2021

Is the support for Taproot also being implemented for altcoins like GRS? GRS has activated Taproot since june 2021 and Electrum-GRS has support for sending to Taproot addresses.

@matejcik
Copy link
Contributor

@gruve-p not at this time, but please create a separate issue. Enabling Taproot for other coins should not be difficult.

@tsusanka
Copy link
Contributor Author

Let's close this and separate some of the subtasks from Andrew into new issues?

@andrewkozlik
Copy link
Contributor

Let's close this and separate some of the subtasks from Andrew into new issues?

Done: #1943, #1944, #1946.

❄️ Nov 4 - Nov 18 automation moved this from ✅ Approved to 🤝 Needs QA Nov 25, 2021
@prusnak prusnak moved this from TODO to DONE in Taproot 🥕 Nov 25, 2021
@bosomt bosomt moved this from 🤝 Needs QA to ✅ Approved in ❄️ Nov 4 - Nov 18 Nov 26, 2021
@hynek-jina hynek-jina added this to the Taproot 🥕 milestone Dec 7, 2021
@gruve-p
Copy link
Contributor

gruve-p commented Dec 20, 2021

@matejcik My attempt to enable Taproot for GRS: #2030

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Development

No branches or pull requests

7 participants