This post is a shortened transcript of our Telegram community discussion with Kevin Sekniqi, co-founder of AVA Labs. AVA Labs is building the first smart contract platform AVA that is using Avalanche consensus. During this session, Kevin answered our communities' questions starting with his background and details on Avalanche consensus. We then covered AVA's staking implementation and other core design features, its differentiation to other smart contract platforms, as well as timeline and launch plans:
To kick off, why don't you tell us about your background, how you met Emin Gün Sirer and how you discovered Avalanche?
Sure. I was in crypto for a long time (since 2010), but never did anything research-related to the space until I started my graduate studies. When I started grad school, I met with Emin and we had one goal, which was to create a fundamentally new consensus protocol. Grandiose goal, in retrospect.
What previous work on consensus protocols influenced Avalanche the most?
The idea started off by trying to build a consensus protocol that relied on "covert probes” placed in the network randomly across the world, to establish some notion of ground truth and converge towards it.
It turns out that just randomly sampling nodes in the network doubles down as a sort of "probing", and going towards the majority value seems to quickly converge the network.
The closest work I know of is in epidemics networks research (statistics / biology), but I do not know of prior work that builds Byzantine fault tolerant systems out of this basic principle.
Can you talk about the staking incentives? If nodes are randomly sampled, do they have to stake/hold a certain number of AVA tokens to be eligible?
Yep, participation in the network is contingent on staking. Nodes will not sample you unless you are currently a staker.
How does the staking mechanism work? Are the AVA tokens locked? Who and how are the nodes operated?
To stake you simply send a special transaction to the network that locks a minimal amount of AVA. If that threshold is met, you automatically become a staker.
During your staking period, those funds are locked, although staking derivatives can easily exist, can you can say things like "I'll lend you this stake once I'm done with it".
Nodes are operated by anyone really, as long as you run the code. I assume many will want to delegate as well.
So the core idea is that everyone randomly querying nodes will ultimately lead to the network converging to the majority value. I heard that it is not easy to uniformly sample from a set of which I do not necessarily know all elements (i.e. all the other nodes in the network). Can you expand on your insights/approach here?
Yes, the sample will not be representative of the true network since your own view of the network doesn't include all nodes. In AVA, there is a canonical staking chain (which is just basically a metadata chain that includes the list of all stakers across all subnetworks, AVA being a subnetwork itself). This staking chain provides uniform sampling for all nodes. The only thing you have to be careful about is the "tail" of the staking chain, in other words any nodes that came in at the last minute. This is handled appropriately since a) the staking chain is rate limited, and b) the system can tolerate some small amount of discrepancy.
If you just have to lock a minimal amount, can an attacker create lots and lots of nodes and try to sybil the system?
No, doesn't matter how many nodes you create, you will only still just have a representation in the network that is proportional to the total stake you own.
So if I have a node A that stakes 1 AVA and another node B that stakes 10 AVA. Node B will be sampled 10x as often by other nodes?
Effectively, although implementation wise it simply has more "probability" of being sampled.
Continuing on the staking theme - are there (dis)incentives for nodes to stay online / not double-sign?
For staying online, we don't see disincentives. System is built to incentivize normal operation and active participation.
In regards to double-signing, you mean double spending? No disincentives there, you are free to double-sign as much as you want.
Can you talk a bit about how you see Ava in the competitive landscape of blockchains? There is so much competition and so many new chains. What are the biggest differentiators of Ava?
Great question. This is a bit of a long answer, so bear with me.
The answer, all in all, falls under the larger category of "aesthetics", and this has really broad implications for our entire system. I'll explain:
Let's get the first thing out of the way, which is regards to the engine. We have a DAG-based and a chain-based implementation which outperforms most, if not all, other blockchains in terms of pure scalabilty (number of nodes), and certainly also outperforms purely in raw tps (fully signed, no tricks) and latencies. Some other blockchains might perform faster, but they are doing hyper-optimizations that we can also do, and plus they can't scale.
Now, let me get to the other part of the system, which matters just as much, if not more.
The second big differentiation is a direct implication of our team's "aesthetics". We are a fully customizable, fully hackable, fully configurable blockchain, and I say this with authority. If you were to make a broad-strokes comparison of other blockchains vs AVA, I would say that other blockchains are like "Windows" whereas we are like "Linux". Other blockchains inherit one coin, one VM, etc. In AVA, we basically do not force anything. You can launch subnetworks that are fully customizable to your desired spec. You define the type of engine, the type of VM, the covenants associated with it, any additional plugins/features you want. Attached is an example use case.
The third and final differentiation is the evolution model. It's simple, but sufficient: most contentious parameters in the system are up for governance.
Governance here meaning on-chain governance of AVA token holders? Can you expand on Ava's plans/design here?
Yep. In fact, AVA gets so little in the way of developers and its final end users, that even AVA is a subnetwork itself. But we maintain one invariant: of the global set of validators, all validators of any subnetwork are also validators of the AVA network. AVA is a super simple VM, super lightweight, and its primary functions are for payments, swaps across chains, and fees for creating new subnetworks.
AVA is a super simple and governable currency. It doesn't get in the way of things, and is fully governable in its economics (minting, etc).
How will interoperability between these subnetworks work? Is there a similar protocol like IBC in Cosmos or ICMP in Polkadot?
Yep, something like that.
Ah cool. So the AVA subnetwork is a little bit similar to the relay chain in Polkadot? Does each subnetwork have the same level of security guarantees?
No, total failure isolation. Each subnetwork has its own set of validators. The subnetwork can be permissioned or permissionless, depending on how you configure it.
So one subnetwork can have more (or better?) validators and be more secure than another subnetwork?
Sounds like this will open potentially a serious amount of business for professional validators?
Oh yes, open market of subnetworks for validators.
When you say "outperforms purely in raw tps (fully signed, no tricks) and latencies" - How much tps are you expecting? Based on how many nodes? What happens to tps and finality when node count is above 10k / 50k / 100k?
Avalanche (DAG implementation) does 7k with sig verification (which is the bottleneck, you can add additional cores there), and 19k without sig verification. It doesn't have many optimizations though, so I expect it to go much higher.
Snowman (linear chain) does 3k with sig verification, also highly unoptimized.
What's the launch timeline?
Public testnet coming very soon. Stay tuned for a potentially exciting announcement in Osaka during DevCon.
But we will be launching subnets right away. Before even mainnet launches. Any blockchain right now that can't scale can come in.
Hopefully some markets are high value, like titles. These require very high guarantees of custody.
Every node doesn’t need to talk to all validators during the consensus process right?
Every nodes need to store the entire ledger each?
Only "active set", not history.
How do you ensure equitable and wide distribution of tokens?
By making sure nobody gets large holdings. But down the line, we can't prevent a single entity from accumulating. At least in the beginning though, we will try everything humanly possible to prevent it. Being a VC coin would be disastrous, and we're not in that business.
There will be delegation of tokens to validators?
Yes, you can choose to do so! But not required or anything.
One final question from before we can wrap up: you were recently looking for people with insurance and wall street experience on Twitter, care to elaborate why and did you find them already? ;)
Found some, looking for many many more 🙂
Reason is simple: we are not just infrastructure providers, we want to build a lot of verticals on AVA. This is a long term projects with grandiose goals, so we want to build lots of markets directly on the platform.