Reddit, we are ready for you. So says StarkWare which has developed a scaling solution that is now being called validium.
To show the current ethereum network can handle Reddit level usage through the validium technique, they made a mock token to correspond to Reddit’s ‘real’ token that is now on testnet. StarkWare says:
“We minted on-chain 2^60 tokens of an ERC-20 we called MockErc20 and deposited them to a smart contract representing a subreddit.
We then trustlessly moved those assets to the off-chain account of the ‘subreddit treasury’. Off-chain, we created 159 batches of 8,192 transfers each. Each batch represented transfers from the moderator’s account to a subset of individual account owners.
For each batch we generated a STARK proof attesting to the integrity of the entire batch, and updated an off-chain Merkle tree of account balances. Each proof was then sent on-chain (in 13 separate tx, 380K gas/tx on average, for a total per proof of 4.94M gas), alongside a commitment to the updated state of the Merkle tree.
Each single transaction costs 603 gas (4.94M gas/8192 transfers). In order not to burden Mainnet, already heavily congested, we submitted 2067 (13 times 159 batches) separate Ethereum transactions.”
So for 8,000 transactions they used about half of an ethereum block. Here is a typical eth block:
In this latest block at the time of writing we have 117 transactions that used about 10 million gas units, with 10 million being the block limit.
So this is basically at full capacity, and it still can handle barely 100 transactions. With the framework that is being called StarkEx, this block could have handled 16,000 transactions.
In their statement StarkWare reveals all the data where you can see the blocks that processed their transactions. Blocks that on the surface look like the one above, one hundred something transactions at full gas limit. Yet those blocks ‘hiddenly’ contain 8,000 account ownership changes.
Hiddenly in this case almost fully literally because they keep ownership changes off chain through Merkle trees and then settle onchain in a ‘normal’ transaction in addition to using zk tech.
That creates a ‘problem’ for Vitalik Buterin, ethereum’s co-founder, because zk-tech solutions are usually called zk rollups as they rollup the compressed data onchain.
“That is, is all data needed to reconstruct the state and publish withdrawals on chain or is there still a data guarantor dependency?” – says Buterin with the former being rollup while the latter is plasma.
Buterin says this StarkEx is Plasma that uses zk tech while keeping the data off-chain, making it a different class and therefore we have a new name to mark the beginning of scaling ethereum some 1,500x at the same resource requirements as bitcoin’s current blockchain with eth’s blockchain too running at about 1MB per ten minutes.
Devs have been working on these smart contract based scaling solutions since at least the beginning of last year but recently they’ve clearly been picking steam as projects begin showing they actually work and are usable right now.
Meaning we may see a lot more implementations and integrations of these solutions to accommodate far more users.