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
- golang
- ibc
- ignite
- javascript

Log in or sign up for Devpost to join the conversation.