Inspiration

In traditional rollups, reordering of transactions is possible. In some solutions, to prevent this user can encrypt transactions with time-lock puzzle the solution of which would arrive only after user receives the transaction order. Ex.: (Radius) However! The interaction between sequencer and user cannot be trustfully observed by others. Ex.: sequencers can wait till time-lock puzzle solves, and say they sent the order of tx and user can say they did not. Whom to believe?

What it does

To tackle this problem we design our unique architecture! User sends encrypted transactions to the sequencer. Sequencer gives order back the order of tx. Sequencer sends commitment to rollup through IBC and rollup accepts commitment. Then, sequencer encrypted tx payload to rollup through IBC. When rollup receives bundle, user send the time-lock puzzle to rollup by IBC. Rollup can make block only before the time-lock puzzle time passes.

How we built it

We used ignite cli for scaffolding our own blockchain We used javascript and golang for making time-lock puzzles, encryption, decryption

Challenges we ran into

Version clash: apple M chips do not support last versions of lotion or ignite, had to downgrade to use Javascript is slower than go. I made timelock puzzle with js, which takes 10 seconds to solve with javascript, however the same puzzle is solved in couple of seconds with golang. Therefore, I wrote the tlp in golang. We were totally new to ignite cli.

Accomplishments that we're proud of

We had a great experience learning new tools and discussing security of the architecture

What we learned

Ignite-cli, symmetric encryption, time-lock puzzle generation

What's next for IBC Sequencer

millions are awaiting us possibly

Built With

Share this project:

Updates