Hi, aeternity is participating in the state channel research group, a self organised group of various state channel researchers and teams. These are some of the questions from the past meeting. Feel free to add your thoughts:
How to explain to user the trust model of state channel clearly?
What should be the main user interface? Web? Mobile? Electron local app? Why?
How do users move money from existing on-chain user wallets to off-chain and from off-chain to existing on-chain user wallet?
How do users interact with existing ecosystem entry points like Metamask, myetherwallet, centralized exchange and ledger for example?
How does a off-chain service provider decide how much money to deposit into the counterpart channel on user’s channel opening request?
How to explain to user about the requirement of on-chain ETH balances for on-chain dispute? How much should a user leave onchain?
How to handle the case of sending to an offline user and explain that to the sender?
How to handle the case of sending to a user that is not part of the network?
How to explain to a user about not-enough-capacity on a route to receipient? 10. How to explain fees to users, especially about exactly who and why users are paying (nodes, watch tower, state guardian, route finding services and etc)? What is the service model of off-chain service provider?
Emin
EDIT: not all questions fit to the way aeternity handles state channels but many are relevant for us too.
I have 2 questions:
1.As we know ,routing system is also a part of lightning network ,Which makes A can pay C via route B. So, in that case , route B may hold lots of state channel and get some profit when he providing service to the network . That’s kind of POS for route B. So, will you build this routing system onchain or offchain for AE ? And will this routing system build by your team or a third party team in the future ?
2. Just wondering what kind of smart contract is good for running in a state channel between 2 peers without global variable? Gambling ? Anything else ?
I’ve unfortunately seen this late but i’m posting some of my nodes and questions here:
State Channels Researchers Call
Dispute resolution in 1-to-1 channels is hard enough; what are the best candidates for solving it in multi-party channels?
I would like to hear if they had played with the idea of multiple-party channels - more than 2 parties. Our thought experiments so far had proved being either trustful¢ralized (there is one or more trusted entities that persist the state, they sign every change) or plain broken (everyone signs everything, if anyone is missing - channel can not continue)
In-band coordination: You have to be able to rely on clear event ordering rules, basically trusting that if you do A, and then B, the effects of A and B will happen in the same order
Channels are fast, cheap, while keeping the same level of trustlessness the blockchain provides. I an wondering how do they communicate the trustlessness of channels with the end users
Verify off-chain contracts that are too big for on-chain (Dispute resolution for gas intensive smart contracts can get very expensive, is there any idea how to make this better, for example with using ideas like trubit.io)
Development tools for state channels, developer tutorials, developer onboarding (counterfactual, aeternity playground)
Formal specification for off-chain and on-chain FSM, e.g. TLA+
Maybe special VM for state channels
Incentives for miners once a significant amount of traffic happens in state channels
CDRTs in channels
STARKs/Bulletproofs for both off-chain and on-chain execution
Different types of state channels (ours are baked into the protocol and therefore less flexible than if they’d be a smart contract), what are the most promising “designs” or “standards” right now compared to token standards for example
Notes
1, 2:
More on Slack
Perun is publishing a paper
a hard and unsolved problem yet
3:
Nonces are usually used
colision detection
maybe a lightweight messaging / handshare
“off-chain dispute relution”
if people take turns you have the nonce (strict ordering)
4:
How is it different from centralized chess
“court mode”, why do i have to wait if someone leaves => have to match the dispute in the non-blockchain world
Userbase doen’t understand trustlessness, we don’t advertise it, trying to sell other USP
Casino is different for example: custody of funds, i can always get my money back
If someone cheats, you can verify/show this
5:
Oracle token stakes, comparable to side chain, trust model changes
Proofs if someting is right / wrong (zero knowledge)
All of this is yet to be discussed and formalized. My 2 cents will go into routing will not being part of the on-chain protocol. I hope there will be a couple of different approaches regarding routing (possibly solving different problems) and some could as well be third party software, this is the whole idea of decentralization.
That would be a million AE coins question
Probably that would be anything that could fit the soft real time approach: turn based games, micro payments, SaaS but also many more. I personally would use IoT in a trustless manner via state channels. Other contracts could benifit from the improved privacy, insurances for example. Probably this is just the tip of the iceberg but only time will show.
" My 2 cents will go into routing will not being part of the on-chain protocol. I hope there will be a couple of different approaches regarding routing (possibly solving different problems) and some could as well be third party software, this is the whole idea of decentralization."---------Agree ! I do think routing should be an off-chain protocol and it can be done even by a third party software from now on, cause the on-chain part of state channel is ready .You all do great job.
" Probably that would be anything that could fit the soft real time approach: turn based games, micro payments, SaaS but also many more. I personally would use IoT in a trustless manner via state channels. Other contracts could benifit from the improved privacy, insurances for example. Probably this is just the tip of the iceberg but only time will show."----- It’s sooooo bright future of contracts in state channel. But to be honest, the details will determine success or failure .For example, as an off-chain smart contract running in state channel , how can I send an query request to an on-chain ORACLE which is also outside of the state channel. Both loT & Gambling badly need ORACLE. So, still a lot of details to be worried about. But I do believe you all will make AE great ! Thank you very much .
You can simply send a query to the Oracle on-chain Oracles only operate on-chain and you can send a query request to it on-chain and still use its answer off-chain. This is already implemented and is working with channels. What is more: you can already have a dispute about it. Ex. Alice and Bob have a state channel. They are into football games and are gambilng for a certain game. They have a smart contract inside their channel and if Alice’s team wins - Alice takes the reward stored in the contract, otherwise - Bob gets it. Inside the contract itself there is stored the specific OracleId that they both agreed is the source of truth. This could be a set of oracles and we could build a consesus around their answers, but out of simplicity let’s have it a single oracle called Oliver So if Oliver states on-chain a certain result - Alice use his response to call the smart contract she has with Bob off-chain and claim her reward. If Bob is missing or somehow unhappy with the state of events, Alice can take this same off-chain smart contract and Oliver’s response with the result and execute the contract call on-chain and finally get her reward. This is all in place at the moment and is working in a trustless manner.
Then it comes the question who pays the fees required by Oliver for his answer. Obviously it is the one that calls it and if this is fair might not have a simple answer but since the off-chain smart contract can reffer to on-chain persisted data - for example oracle queries - they can have a special function handling that: if Alice asks Oliver for the match results once, she can claim the fees from the smart contract they have off-chain. In this way they could split the fees in any way they see fair and that’s the whole point of it.
If your question was more regarding some bridging service connecting on-chain and off-chain worlds (and for example calling oracles) - we still don’t have something like that. We already have all the on-chain infrastructure it would need, though: for example if Sarah is providing this service - she can ask Oliver (instead of Alice) and Alice still can use Oliver’s response in her off-chain contract with Bob. This can be greatly improved with virtual channels, but at the current moment Alice can have a state channel with Sarah and a contract saying hey, Sarah, if you ask Oliver THIS from my behalf, I will pay you the fees and some more tokens for the service.
So at the moment Alice can use Sarah to call Oliver in a secret and private way and can still use his on-chain response with her contract with Bob and then they can split the fees in some fair manner. What is even better is all of this is completely trustless. If all Oliver’s responses must always be on-chain is a matter of another discussion (hint: no, Oliver can sign messages to Alice, so she can use them in her contract with Bob).
But I agree there are ton of detailes yet to be polished. We all work in that direction.
This is an excellent reply with ideas, solutions and directions .
I’m transfering my development from Ethereum to AE ,Cause I’m sure AE will become great.