How to Scale a Smart Contract Blockchain

The simplest solutions are often the best. Let's create a voting system to vote in good block producers, and kick out the bad ones, where everybody has exactly one vote.

Imagine if you were in a big, empty room with one or two other people. It would be very easy for each of you to communicate by shouting at one another from corner-to-corner. This is how blockchains used to be, back when very few people knew about them.

Imagine now you start adding more people to the room. Suddenly, communication relies on everyone shouting at each other in all different directions, and each person is overwhelmed with information. Nobody has time to understand anything that they’re hearing – the channels are clogged. How can you fix this problem?

 

Before you invest in any type of blockchain, you should understand what the cons are to blockchains themselves. When we talk about blockchains and scaling, it’s easy to misconstrue the facts, because just as there are many types of blockchains, there are many different viable ways to scale a blockchain as well.

For starters, “scaling” is just making a blockchain accessible to a lot more people – orders of magnitude more, in fact. On a decentralized network, everyone should be able to help out. But the more crowded a blockchain becomes, the harder it is for every person contributing to the blockchain to process new information related to supporting it. This, effectively, moves power to those with pre-existing wealth– those with more bandwith, more storage space, etc.

Going with the analogy described earlier, one solution to the ‘crowded room’ problem is to charge money before people are allowed to shout information. This makes sure only really serious people get to speak into the crowd. But, it also makes communicating (over blockchains) very expensive. People with a lot of pre-existing wealth can launch “spam attacks” on the network to drive up the fees on regular users’ transactions. If it’s a proof-of-stake chain or a centralized proof-of-work algorithm, then these rich persons are probably profiting in this attack, because they’re basically raising the fee price by paying huge fees while most of the fees go back to them anyway. As the network becomes clogged, its market price tumbles, and said “bag-holders” profit off their margin-traded short position. If we’re talking about a smart contract blockchain, this becomes a fundamental problem for developers too.

Experienced programmers can imagine the tiny, but not-so-negligible cost of running a website on one external server. It’s only about $5 per month to get a user database up and running on Amazon AWS. With dApps, things get a lot more expensive. Rather than only one user database, you’re effectively paying everyone on the network to calculate your program’s output at the exact same time, in addition to listening for basic communications. More computational power means higher fees. In the crowded room scenario, imagine if someone had to not only listen to transactions, but also type in each one’s instructions on a handheld calculator before they could process the next one.

 

Another solution to the crowded room is the “telephone game”. People at the corners of the room might whisper information towards central spokes near the middle. This is a bit like how Ripple works. It might also be an analogy for payment channels. But Ripple and payment channels don’t seem to apply to smart contracts, the part where people have to type stuff into calculators. This sucks, because smart contracts have proven to be incredibly useful. If we’re not only asking people to share information, but having each person do calculations on it, the “whisper method” really doesn’t play.

On Project Oblio, nodes that are “ordained”  run smart contracts in subgroups and tie their output to their own biometricity and staked wealth. The difference here is that rather than running the same program across many nodes (traditional smart contract chains), only a small group of ordained nodes need to run, verify, and sign a particular program’s output with their unsheddable biometricity. Because a person can’t shed their biometricity, one person can’t spin up more than one node to dupe the network (Project Oblio is one-person-one-vote, anti-Sybil system). Thus, this proof-of-individual system is a highly-secure way to evaluate smart contracts.  More importantly, it reduces fees by  requiring considerably less computational power.

The gist of it is, on wealth or work-based blockchains, a single smart contract needs to be run by every single node before a block is verified. On Project Oblio, a smart contract or “service” only needs to be verified by one or more trusted individuals to reach approval of the network.  This reduces fees, and allows for greater computational prowess than previously described.

As one eerily might have expected after reading Satoshi’s white paper, one-human-one-vote offers a lot more for society than one-CPU-one-vote. Only through one-person-one-vote  can you scale a smart contract blockchain.

One thought on “How to Scale a Smart Contract Blockchain”

  1. I think for this scaling to be successful there should be enough nodes on the blockchain to verify each transaction so that security is not compromised, but few enough so that the system can process many transactions in parallel

Leave a Reply

Your email address will not be published. Required fields are marked *