Request for Funding @scilio (CoinSwap Implementation)

Milestone 1 is just about complete. I just have a bit of error handling left and some documentation to write. If someone could create a mwixnet repo in the mimblewimble github org, I’ll be able to create a pull request for everyone to review.

12 Likes

Repository created GitHub - mimblewimble/mwixnet: Implementation of the Mimblewimble CoinSwap proposal.

6 Likes

Thank you. I’ve created the pull request.

6 Likes

I think we need to come up now with a review process in order to accept the first PR.
Great work and now we need a community effort to review the PR.

Who would be able to review it?
@tromp @joltz @davidtavarez

3 Likes

I will do my best to give it a review this week.

First I need to familiarize myself with the protocol we are trying to implement. Is Mimblewimble CoinSwap proposal the completed specification or is there an updated one somewhere else?

7 Likes

The code is based on that design, with some modifications documented in the README

7 Likes

@scilio could you give an update on the 18th Agenda: Community Council (CC), 18 January 2022 · Issue #33 · grincc/agenda · GitHub . If you’re unable to attend could you leave an update on the forum?

1 Like

Milestone 2 is nearing completion. So far, it

  • communicates with a GRIN node’s API using jsonrpc calls
  • validates input signatures using the new Commitment Signature scheme
  • verifies input commitments are in the UTXO set
  • executes round every DAY_HEIGHT (1440) blocks
  • verifies generated output commitments are not in the UTXO set
  • builds the kernel and assembles the transaction
  • submits the transaction to the node

For milestone 2, I still need to

  • add reorg support
  • improve fee handling & wallet support (could fall under milestone 3)
  • add better e2e tests

Trying to add support for handling reorgs efficiently has been the main challenge so far. I’m getting frustrated by the lack of progress, so may skip this and come back to it after the rest of milestone 2 is finished and merged.

My original time estimates were apparently too optimistic. Estimating software is hard. But don’t worry, I’m not going anywhere. I’ll try to give more frequent updates so everyone knows I’m still here.

19 Likes

Thank you for the diligence and excellence, Scilio.

1 Like

Glad to hear that. I’ll take this opportunity to remind about some minor checks that would still need to be done about duplicate inputs/outputs which would stall the process that we left here for the next one.

2 Likes

@scilio I know you have been making some nice progress:
keybase://chat/grincoin.teams.wallet_dev#general/9472
How about a short bullet-point update here, so the community can show/like their appreciation for your efforts :smiley:

4 Likes

How’s the project going hax0rs need

@scilio Any updates on the progress of the CoinSwap implementation?

2 Likes

The (very) long overdue pull request for milestone 2 is now ready for review.

The description of the PR lists some deviations from the original project plan. I included much of the milestone 3 work in milestones 1 & 2, but I haven’t yet added reorg support.

Unless there are objections, I would like to push basic reorg support to milestone 3 with the understanding that much of the more complex milestone 3 work was completed earlier. In its current form, the coinswap server should be fully operational, but if a malicious miner is able to reorg a swap transaction out, the server does not attempt to recreate it.

15 Likes

Are you planning to add tests to the code, right?

I plan to improve test coverage, but there are tests at the bottom of config.rs, onion.rs, secp.rs, and server.rs.

2 Likes

Hi @scilio , can we have an update for informing the community ? We are curious and very excited about Coinswap ツ

3 Likes

so what happened to the coinswap implementation? Was anything of value created here or did scilio just pick up the easy parts first and ran a year later into the issue that the hard parts proofed to be impossible to solve for him?

The topic was not updated here on the forum, good that you bring it up since both @scilio and the CC forgot to post it here. The discussions were on KeyBase in the CC meetings and on github.

CoinSwap is going well actually. Milestone 1 & 2 were reviewed and approved. All that is left is milestone 3 and a part of the work for this milestone was already done for milestone 2.

4 Likes

Developments regularly took place in newsletters also, since May issue.

Github Tracking for Milestone #3.

6 Likes