[bisq-network/projects] segwit migration design/plan (#34)

Oscar Guindzberg notifications at github.com
Fri May 15 19:41:03 UTC 2020

> _This is a Bisq Network project. Please familiarize yourself with the [project management process](https://bisq.wiki/Project_management)._

## Description
<!-- Briefly summarize the proposed project. Strive for one or two sentences of plain language that any user, contributor or stakeholder will understand. -->

Design a plan for migrating to bitcoinj 0.15 and using segwit in bisq. Implementation is not part of this project.

## Rationale
<!-- Make the case for the the project. Why is it important? Why should it be done now? What will happen if we don't do it or delay doing it? -->

Benefits of using segwit:
- Users could withdraw btc from their bisq wallet to an external segwit (bech32) address.
- Pay less fees in btc transactions when segwit is used.
- Eliminate a transaction malleability exploit in the trade protocol which can cause the deposit TX and payout TX
to become invalidated.
- Extra: get access to all the new features in bitcoinj 0.15 (not immediate benefit, but the potential is there)

A design/plan project is created because there are options to evaluate, decisions to make and it would be very hard to estimate implementation before design/plan is done. 

## Criteria for delivery
<!-- Make a checklist defining the end state of the project. How will we know that the project is complete, i.e. delivered? What will exist at the completion of this project that does not exist now? What will have changed? What communications, promotions and/or documentation will exist to ensure people know about these changes? -->
- Document with a design/plan for using segwit in bisq. Alternatives, roadblocks, pro/cons and migration concerns should be described.

## Measures of success
<!-- After this project has been delivered, how will we know whether it was a success? What can be measured to indicate that this project was worth the time, effort and compensation it cost? -->
- An implementation project is started.
- Once implemented...
- User withdraw btc from their Bisq wallet to a external segwit (bech32) addresses.
- btc transactions are cheaper, users perceive it is cheaper to use bisq.
- Malleability exploit in the trade protocol is gone.
- bitcoinj 0.15 features are used by bisq devs.

## Risks
<!-- What risks do we run by undertaking the project? What sensitive areas of code are to be modified? What negative implications might this project have on privacy, security, performance, compatibility, maintainability, user experience, etc? -->
- Since this is a plan/design project, the only risk is its outcome is not implemented.

## Tasks
<!-- Make a checklist defining in as much detail as is foreseeable who will need to do what in order to deliver the project. The checklist may be modified throughout the course of the project as new tasks emerge. Alternatively, once the project proposal is approved, you may choose to migrate the task checklist to a dedicated GitHub project board. -->
- Plan migration to bitcoinj 0.15
- List different parts of bisq where segwit could be adopted and evaluate cost/benefit of each one.
- List segwit migration alternatives and evaluate cost/benefit of each one.
- Write an implementation plan for the chosen alternative.

## Estimates
<!-- Estimate the cost in USD of delivering this project. Indicate which teams are involved and provide subtotal estimates per team. This section need not be complete for the project proposal to be approved but must be complete for budget to be allocated. -->
4000 USD

## Notes
<!-- Include anything else worth mentioning about this project. This section is optional and should be omitted if empty. -->

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bisq.network/pipermail/bisq-github/attachments/20200515/b7d47e13/attachment.html>

More information about the bisq-github mailing list