NOCUST: A Securely Scalable Commit-chain

EDCON 2019 · 13 Apr 2019 · 15:20

Guillaume Felley introduces NOCUST, a commit-chain that supports off-chain payments with an on-chain dispute mechanism. He compares operation with and without collateral, explains commitments and user challenges, and demonstrates Liquidity Network payments while discussing offline receipt, exit safety and the need for users to monitor the chain.

Speakers

Topics

From EDCON 2019, hosted by EDCON.

Transcript

so without further ado I would like to introduce the first speaker he is Jillian fillet CEO of liquidity Networks welcome onto stage hello there happy to be here so yeah my name is Guillaume fillet from nicotine Network and today I'm gonna speak about locust secure scalable commit chain so I'm gonna speak so it's a layer 2 solution and I'm gonna first present

quickly like the layer 2 landscape so I will speak only about layer 2 solution that do not introduce any additional consensus mechanism because it is more secure to just rely on the current proof of our constants use mechanism of the assyrian blockchain so first we have payment channels to party payment channels it's basically isolated interaction between two parties that lock some amount of money into a channel and we have three phases opening through an unguent transaction then the channel is live and after some period of time we have a dispute challenge procedure

dispute closed your procedure and while the challenge is live we can obtain reallocate the money locked into the collateral the into the channel as much as we want then we have commit chain so coming chains you have a central operator and the user around and there is only one phase it's the periodic comet so the operator of this commit chain will will put on Shane an aggregate of the transaction periodically so some example for commit chain are plasma and noticed that I'm gonna detail now and for payment channels you have lightning network raid

and others so let's look a little bit more in detail how this commission works so the operator commits a hash of the transaction and the users make some often transfers and after a period of time it gets committed onto the blockchain and and so on and so forth so we have this period of time we call it around and something very important is that like all users at every round inspect the checkpoint so look at the integrity of their account to ensure that like the operator didn't cheat so

we can operate an August commit chain in two different manner so with collateral money or without collateral money so without collateral money you get delayed transaction finality so you make it off chain transaction and it will be committed into the future therefore I have a rather long confirmation time right now on our production system we do a round time of 36 hours and yeah so it takes some times to confirm transaction so the advantage is that you don't have any large amount of collateral just locked up on Shane that are just seated there - for not for to guarantee for the security but the drawback is that you

have to wait so now the good news is that you can operate a commit chain with collateral by providing collateral and you get instant transaction finality now so what you have to do is like the this round period you have to ensure not yet committed payments so you get collateral pool that is gonna ensure obtain payment in case something goes wrong in the future in the upcoming checkpoint I can just tap into this collateral pool and this makes transaction instant and which is great is that you can reallocate the collateral for all the users of the commission in one single on chain

transaction so now some UX tweak which which are interesting with commit chain you can receive transaction while being offline this seems like something trivial and that we are all used to with regular on chain transaction I don't need your approval in order to receive a payment but like in the layer 2 world it's often a problem you need to countersign a transaction so for example payment channel often you you need to have your wallet open in order to receive money here you know that that and yeah the transaction is as well instant and but like there is there is still the need for the for user to audit their account

periodically another interesting thing is you can join the network without any initial transaction such as opening a payment channel the registration into the system is just a scientist if in message that you sent to the operator and then you're ready to receive and forward them to other users so quick summary and you have delay finality without collateral instant finality with collateral a recipient can be offline and you can join the network without any on chain transactions and last you have firmus exit meanings that if every users of the system want to exit the system at the same time even if the blockchain get

congested for a very long period of time it's guaranteed that all users will get their money back so wait this is centralized right I'm here for the decentralization so what's wrong here so it is true it is a centralized system but it is untrusted and non custodian so there is very little that the operator can do there is very little bad thing that the operator can do beside censorship so the operator can say no I don't want you to join the network or no I don't want you to make these transactions what the operate operator cannot do is stealing coins double spending coins or minting coins and prohibiting exit as well and

is very important because it means that I don't need approval of the operator in order to leave the system and get just my money back on Shane I can just leave any time without the operators approval so all this is like in the setup that there is only one commit chain but you can have several coming chain right and if you're unhappy with one you can just migrate to another one and yeah we envision a future where they will be like many of this coming chain and you can further like interconnect them with payment channel so this is the key point who understand noticed it is that it's it's data structure and the thing to

understand here is that the data structure makes it obvious if there is any mm if the operator tries to cheat so for example if it doubles pens or if he means new coin it will be very obvious to to any users and therefore they can challenge and stop the system and revert for the length operation okay so now let's look a bit at the security properties and you had the attacks that we can do on the system and see our resilient it is ok so first scenario the the operator is gonna disappear it's gonna go offline and yeah let's see what

happens so we have the Genesis checkpoint there and then we make hundred transactions in 36 hours and then 100 transaction more 36 hours later and after 12 hours the operator disappear so now what happens so the transaction from 1 to 200 are committed into the checkpoint so that's fine they can be withdraw any time now what about the transaction that happened after in the this 12 hour period so this transaction are reverted they were not committed on to the blockchain therefore you cannot withdraw directly this transaction

but we have an insurance pool so these users go to the insurance pool and says and can basically show the signature there and get the money for this transaction that we are not yet committed and that's why you have instant finality in the system because no matter what happened later you will always have your you will owe it you will never lose money okay another another attack but tries to double spend so bob has to account Bob and Bob Prime and he gonna try to send 50 es to both Alice and Bob Prime so it sent 50 is to Alice that works and then it tries to

send 50th to Bob Prime is on account and it and you and it doesn't work and the reason is because the operator sees that Bob is trying to spend more money than you actually as therefore it doesn't approve the second transactions so this was very easy the operator just had to block it now a more interesting attack is like what if Bob collude with the operator so the operator is malicious and will like Bob to double spend so now you can do that Bob gonna double spend fifty ether to Alice and Bob Prime and the transaction will go through but now later on in the checkpoint what will

happens so now you are in this situation where there is more ether in the Commission ledger than they are actually is on to the smart contract of the Commission ledger on Shane so any users will will see that like there is Android inter underneath her in the ledger while there is only 50s around to the smart contract so you initiate a challenge and the smart contract will revert in the check point with this double spent transaction so the system is safe now another attack is like the operator could try to steal steal coins making unauthorized transfers so here again

Alys can challenge and get that reverted so now that we are convinced that the system is secure I hope we can look at the operational cost so the operator has to pay for one on chain transaction every 36 hours in order to submit the commitment and this is pretty cheap so it's gonna be below 10 USD per month then use a storage the user only has to store the latest check points and like the transfer signatures and so on and a miracle branch and this is very this is very small and that's quite important because we want to do light lines so the

user don't need like the wall commit chain ledger to be convinced that it is secure you only need like a small fragment of it and we have this user availability requirement which is a kind of biggest drawback of the system is that if you want to be sure that the operator is not cheating you have to come up online once every 36 hours no matter when but at least once every 36 hours to audit the integrity of your account this is the operational cost in terms of gas so we can see that even with 1 billion users account in the commit chain the gas cost still are quite low right it's only like

400k gas in order to do challenge and we traveled meaning exit the coins so this is like the mobile wallet that we developed so you can set up a wallet and you will get on the home screen the first balance here it's a regular on shiny ether and the second one is F ether for fast and free so I can convert from one to another and when I transact in F ether transaction are instant and free of gas and the wallet support your seat when you talk in the same way so yeah so layer 2 is not only about scalability but also about user

experience it's a great opportunity to fix some of the user experience pain point of blockchain so specifically here we're able to address transaction time so transaction transaction get confirmed within a second no need to wait for to be included in a block and block confirmation and so on and you don't have these complex gas fee structures so that developers can benefit a lot by using our solution today and so this is our our SDK and we met we made it very developer friendly and in less than 10 10 lines of code you

can make option transfers so check it out and yeah that's it thank you very much for listening please check out our documentation for our SDK our mobile app and if you want some proper formalism of noticed how it works the security properties and security proof please check out our academic paper here thank you very much thank you I'm sorry I just have a quick question for you so you mentioned scalability and UX and these are the issues you're solving so how is that different to all the layer 2 solutions to other layer 2 solutions so what would be your like

competitive advantage in this space ok so for example payment channels requires payment channel management and this like an additional burden for four users and as well you need like informational you know you have risk receive ability of funds that are limited and you can you know you are in this weird situation where you can only spend fund but that cannot receive money and this has impact on UX and we don't have that here great okay thank you so much appreciate it