Understanding: The Plasma Chain Operator¶
When learning about plasma youâll eventually run into the idea of the plasma chain âoperatorâ. For the most part, the operator is exactly what it sounds like â a single entity thatâs responsible for aggregating transactions into blocks and then publishing those blocks to some other âmainâ blockchain (like Ethereum). Blockchains are only usable if new blocks are being created, so, by producing these new blocks, the operator is quite literally responsible for keeping the whole plasma chain running.
This might be a little confusing at first. Initial reactions are usually something along the lines of, âWhat? Plasma chains have operators? Arenât blockchains supposed to be decentralized?â Well, it turns out that the answer is, as you mightâve guessed, âKinda.â
Back to Basics¶
Letâs go back to basics and talk a little bit about why most blockchains use decentralized block production mechanisms in the first place. Blockchains are big logs of things that have happened, broken into concrete and ordered time-steps we call blocks. Sometimes these âthings that have happenedâ are simple - âA sent X amount of money to Bâ - sometimes theyâre more complex - âKitty A mated with Kitty B and created Kitty Câ. No matter what these events are, we usually want to make sure that we have a few key properties:
- No one should be able to re-write history.
- No one should be blocked from making transactions.
Letâs imagine we have a blockchain run by a single person. For the sake of argument, assume that you must use the blockchain run by that person for some reason. Well, unfortunately itâs quite easy for that person to break the first property. If that person says âtransaction X happenedâ and then later says âtransaction X never happenedâ, thereâs not much you can really do. You know that the transaction happened, but the blockchain itself doesnât.
Itâs also really easy for that person to break the second property. If they donât want you to send transactions, they can just refuse to add any transactions that come from you. Had a bunch of money on that blockchain? Too bad, youâre not getting it back.
Plasma Magic¶
The problems with blockchains run by a single person are why blockchains usually have fancy mechanisms that ensure that itâs extremely expensive to rewrite history. Itâs also why blockchains usually have lots of different people who can create blocks â no single person can stop someone from making transactions. So why can we have a single person running plasma chain? Itâs because we cheat (sort of).
In plasma world, we get the first property by taking advantage of the âmain blockchainâ that we were talking about earlier. Plasma chain operators need to publish a block âcommitmentâ (sort of like a very compressed version of the block) to the main blockchain for every block they produce. A smart contract on the main blockchain ensures that the operator can never publish the same block twice. As long as the main blockchain has the first property, so does the plasma chain! Thereâs no way for the operator to re-write history unless they can re-write history on the main chain.
The second property (blocking users from transacting) is where things get interesting. Unfortunately, itâs still possible for the operator to censor transactions from anyone they want. However, this is where the magic of plasma comes in. Plasma chains are designed in a way that no matter what, a user can always withdraw their money from the plasma chain back to the main chain. Even if the operator is actively trying to steal money from you, youâll still be able to get it back. Being censored obviously isnât great, but itâs not as bad when you can always take your money somewhere else.
Decentralizing the Operator¶
The one thing that wasnât really mentioned here is the fact that the âoperatorâ can actually consist of multiple people making decisions about what blocks to publish. This could be as simple as a having a few designed people who take turns making blocks, or as complex as a Proof-of-Stake system that selects block producers randomly. Either way, itâs complicated than just having a single person run everything, but itâs probably the way to go for projects that want to get rid of censorship. At the same time, it tends to be unimportant research-wise whether the operator is a single person or many people. As a result, youâll often see people just assuming the operator is a single person for simplicity.