Make Polkadot great again

I disagree…

I do think PolkaVM should be a high priority, both for smart contracts and PVFs. Yet, prioritizing smart contracts per se sounds like web2 companies saying they want to scale with SQL stored procedures. If anything, frame/storage already behaves too much like a smart contract language.

It’s actually worse of course…

Smart contracts bring too many additional problems. Ethereum always wanted sharding, but gave up, in part because smart contracts play poorly with sharding. At some point they’d some massive list of proposals, like maybe 40 or 60, so tricks like yanking smart contracts across shards, etc.

There is a semi-crackpot named DataFinnovation who claims scalable blockchains cannot exist because they cannot handle negative balances (via). In reality, we only need negatived balances in accounting so that humans can check everything manually, while computers are plenty fast enough to handle worldwide transactions with only positive balances, but…

There is a kernel of truth in his argument in that you still need data sharding. This is at odds with the smart contract model, but not at odds with messaging models, like parachains or diverse roll ups.

Yes, a single parachain could sequence multiple blocks in one single relay-chain slot, but this remains non-scalable because the collator that creates these little blocks sequence remains non-scalable, and one relay chain can only track so many chained state root updates. Yes, we should make a polkadot based smart contract chain faster than solana.

Yet, if you want to challenge web2 platforms then you need parachains which could in theory scale to hundreds, or even thousands of blocks, within a single step of the multiple blocks across multiple relay chains. This requires paracahins shard their data models sensibly, which really conflicts with them being smart contracts.

We only kinda need smart contracts, better on-boarding, or bridges to ethereum. We really need to deliver useful applications, like actually fun games, built around sharded data models, without using smart contracts, or that use smart contracts super narrowly they cannot mess up the sharded data model. After we build a couple of these, then our ecosystem can then copy them, and produce real products.

We want say a successful massively multiplayer game with say 1 million active users, using maybe 10s of cores per relay chain block. What does an MVP require?

  • Fix storage: Radix 2 hashing. Make thread_local! work, so pallets can bypass storage.
  • User side state channels for interactivity.
  • Messages passed outside the relay chain, like XCMP, but maybe state channels between parachain shards too.
  • And doing the game itself well enough is harder than all the above.

tl;dr Smart contracts have nasty scalability rabbit holes which we’ll never solve, so focus real scalability and final products.

8 Likes