Here are the questions that were answered yesterday by Dimitar Ivanov during the Ask-Me-Anything Session in Telegram:
#1 - Do you know Ethereum state channels technology? What are the advantages of æternity state channels technology compared with Ethereum state channels technology?
Yes, there is a researchers call where people from the most prominent state channels projects gather and bounce ideas. We are part of those calls as well. I believe all the rest are building on ETH and they have to develop everything using smart contracts, usually ending up with a centralized and/or limited solutions. On the other hand - our approach is using a few highly specialized transaction types, aiming at AE channels being more predictable, more stable and easier to reason about. From a broader perspective - we are completely trustless and decentralized.
#2 - Can you show some demos which can show the advantages of the state channels?
We had a demo that ran 1 000 000 off-chain contract calls between two parties with almost zero fees. All participants paid were the channel_open and channel_mutual_close transaction fees. I am afraid this was a “one off” demo that later on imposed a technical debt, nobody supported it and now it is out of date. I believe a shiny æpp demo is being cooked but I am not aware of their progress.
#3 - What are the industries that the æternity is mostly looking at to disrupt?
We are looking at both business and user applications. The idea is to create a secure, efficient platform that could be used in various industries. I think the most important use cases will be related to financial services, insurance, and generally - a new type of decentralized economy based on unlimited value transfers on a global scale.
#4 - What do you think are the advantages of AE over EOS, TRON? What are the disadvantages?
It might be quite hard answering this in an hour. My personal opinion is that EOS got a lot of parameters wrong, trying to solve social problems with half-baked technological solutions. Keep in mind that this is just a personal opinion
Regarding TRON - they’re a nice platform, we will see how they will go.
IMO their main advantage might be both being louder than AE
#5 - Will state channel support multi-party channels? If so, when will it happen?
Multiparty channels are a hot subject. I personally am against them as so far I haven’t seen a solution that cannot be easily attacked in theory. They end up either centralized and trustful or broken by design. I hope we can offer an alternative using virtual channels.
#6 - Assuming virtual state channels are existent. Do you think on-chain transactions volume will drop (Except oracle and AENS transactions)? Do you think miners would still have enough incentives to mine new blocks if the block reward decreases and 95% of the transactions happen within state channels where they don’t get any fees?
Off-chain and on-chain transactions solve different issues, they’re just tools for solving problems. One does not make the other obsolete, on the contrary - they complete each other.
#7- What’s the max tps of state channels?
It depends on your hardware and what you’re doing. On a medium AWS you can have probably 50 smart contract calls in a single state channel per second.
#8 - Yesterday I asked about 3 party channels e.g. to manage a game between two participants. You said that there is already a way to do this by managing signed messages of the 3 channels (A-B, A-C, B-C).
It would be cool to see a PoC or Demo of this scenario. Basically, this is how I imagine multiparty channels - sharing state between channels (either on-chain channels or virtual ones).
#9 - I would like to have a tool to manage my personal state channels and transactions happening within them. Kind of like a private personal state channel explorer. Do you think that makes sense and does the team plan to implement such an application?
I call this a state channels wallet. My personal opinion is that we need this as part of the Base æpp. It is my personal quest gathering political support so such a project can get financing.
#10 - Can the contract living in state channel be modified? If a contract is published how can we guarantee that the contract will not be modified midway? If it can be modified, how can we ensure the safety of the participants in the previous execution contract? In general, can the state channel prevent running away?
Yes. Each channel is a unique universe where laws can be modified only if both participants agree upon the change. If Alice and Bob are happy with the new modified contract - they can change it. This is only if both agree upon this, so if you don’t agree - you’re safe.
#11 - Do you have confidence that the æternity blockchain will be better than EOS?
I consider this a personal question regarding my personal opinion which has nothing to do with an AE statement.
I already think from a technical perspective AE is much better than EOS. EOS on the other hand is more popular. I am not sure what you mean by “better” though. If it is regarding a marketing share - they’re clearly winning at the moment. It is not always the best technology that is most popular. For example, I think ETH is better than BTC from a tech perspective but BTC is more popular.
I think AE provides a much better blockchain than EOS, but we lack some infrastructure regarding IDEs and etc. We are catching up quite fast, though. I don’t see why anyone would use EOS in the first place. Still - a personal opinion.
#12 – Some of the current gaming & betting projects on other platforms, change the contracts when they get funds and run away. How does æternity solve that?
The æternity on-chain smart-contracts do not change (except in channels, when both participants agree). I think it is safe to say that both on-chain and off-chain contracts are safe.
#13 – When will the base æpp support secondary tokens based on æternity (not just Mainnet æternity token)?
This will happen. Currently, the Base æpp is being developed to include some useful functionalities that I consider essential - for example - transaction history and mobile and desktop integrations. You can follow the Base æpp development team’s progress here:
#14 – Will æternity be a PoS blockchain in the future?
I don’t know how to answer this except that æternity is a public blockchain that will soon have a governance mechanism. It will be up to the community to decide.
#15 – The current AE mining power is concentrated in 2-3 mining pools (Beepool has exceeded 60%), such a situation may result in 51% attacks. What’s the team doing regarding that and will there be other issues?
Yes, we are very aware of this. Pools are primarily composed of individual miners. If a pool tries to “cheat”, this could make users move to another pool. This means pools have a game-theoretic incentive to play by the rules. Another factor her is that aeternity is about 5 months old and it takes time for mining power to decentralize. I personally don’t think AE is more decentralized than many of the projects out there. In almost all of the other blockchains (Bitcoin & Ethereum), around 3 pools can do a 51% attack.
That being said, we are trying to get more pools.
What you can do is vote for æternity here: https://twitter.com/pool2miners/status/1112752160305876992
#16 – Will æternity plan and make a public standard for state channel and oracles, that sit on top of the protocol?
Both channels and oracles are quite well defined in æternity, so we leave the freedom for people to use them in the protocol boundaries. I don’t think we need further standardization there but it might emerge organically.
Have a look here for the oracles part: Do you envision or provide some standardization on the 'interface specification' for oracles?
#17 – Will oracles get the outworld data and then activate the contract in state channel?
You can already do so! You can use an oracle’s response to call a contract ever since Mainnet launch!
#18 – Grin mining ASICs might also support æternity. Will æternity do anything about that? Is a mining algorithm change possible?
I cannot speak on AE’s behalf on this, but my personal opinion is that ASICs are good. I think they could happen to be valuable for decentralization of the network in the long run. Still - just a personal opinion. [please look at some clarification on this question below]
#19 – What is the advantage of having the state channels integrated into the core protocol?
I believe there is more than one advantage. Probably the biggest perk will be that this will make channels predictable, secure and homogeneous. That means you can use a client of your own and I can use a different client and, following the protocol, we will be able to build consensus. This will apply to all our channels and channels’ apps. At the moment in order to use another project’s channels, you must use their own application. And usually, trust them being honest when things go bad. In AE you are the one responsible for your actions and your data. There is also the high possibility that our dispute mechanism is much cheaper and much more robust but this is hard to measure so I am not saying it.
#20 – Are multiparty state channels in æternity something you are looking into?
Yep, we have been talking about it quite for a while and there are different approaches to be taken, none of which we particularly like. So, looking - yes, developing: no/not yet/not ever. I strongly hope we can build multi-parties using virtual channels.
#21– What are virtual state channels and why can they be useful?
Channels are opened, updated, disputed and closed on-chain and this includes certain fees, some confirmation times and leaves a trail on the chain of the parties’ interaction. Virtual channels are a means for opening channels off the chain, using already existing channels. Expectations are that those will be much faster regarding confirmations, much cheaper and probably more private. The big thing here is keeping the same level of trustlessness.
#22 – What could be the first æpp using state channels that is announced?
I suspect it could be either a turn-based game (chess, go…) or a betting game using on-chain oracles.
#23 – When will state channels be implemented in the Base æpp? Will they be ever?
This is more or less a marketing positioning question so it might be outside my zone of competence. Please take my answer with a grain of salt. It is my personal opinion that Base æpp must be channels’ aware. I am discussing this with members from different AE teams and I am actively pushing in that direction. So far nobody made any strong argument against it, on the contrary - the idea might be taking shape and form. Please stay tuned.
#24 – What are the major challenges for developers to start using æternity’s state channels? How can they be overcome? Are they larger or smaller compared to other blockchains that are trying to implement this technology?
It would be hard comparing our approach with others as all projects are so different. I would argue that our channels are much more scalable in the sense of holding a lot of contracts in a single channel and being able to force progress on them. This, although great, leads to some complexity and a lot of race conditions to be handled. That’s why we’ve done most of the heavy-lifting already in AE’s state channels’ FSM that handles all of the difficult work to be done. Yet we want just to empower the user and we want the user to be in charge. Thus, the FSM will not make any decisions for the client, it will not sign transactions for the client and etc. This leads to that we need a client app. It must be properly audited, it must have great UX so it communicates all the actions in an understandable manner so the user can make the proper actions. I believe nailing this æpp and especially its UX will be our major challenge.
#25 – How are state channels different to payment channels?
They have state Payment channels can send payments between participants and that’s pretty much it. State channels can hold and execute contracts, they can push progress of a contract’s state unilaterally on-chain and etc. If I can use an analogy: think of a smart phone and a dumb phone - yes, they’re both phones but one can do so much more…
#26 – What is the easiest way to use state channels on æternity today, and how do you plan to make it more intuitive in the future?
Probably the easiest way would be building your æpp using the JS SDK. Soon the Python SDK will have a channel’s support as well. I am not sure if future plans regarding next steps of making it easier to use are announced so I shall not answer the second part of the question
Big thanks to @Dimitar.Ivanov, it was super interesting!
More AMA sessions coming soon!