A Merkle Tree is a data structure used to organize and encrypt huge data sets.
Merkle Proofs can be used to efficiently verify that data exists in a dataset (confirmation a piece of data exists without transferring the whole dataset).
Settlement is the "final step in the transfer of ownership, involving the physical exchange of securities or payment".
After settlement, the obligations of all the parties have been discharged and the transaction is considered complete.
In 2008, Satoshi Nakamoto gave us Bitcoin and introduced the dream.
In 2015, Vitalik Buterin gave us Ethereum and delivered on that dream: the World Computer was born.
In its early years, the World Computer is painfully slow. Fortunately, we have scaling solutions.
The first category: state channels.
To open a channel, the participating parties fund a smart contract where the funds are held in on-chain-escrow. The participants can transact off-chain as much as they want. When finished, the smart contract settles channel.
While state channels are powerful; they have limits.
The next development in blockchain scaling is a technology called Plasma.
A plasma chain is a separate blockchain anchored to Ethereum but that executes transactions off-chain (with its own consensus system).
Users interact with a plasma chain by depositing assets into a smart contract on Ethereum mainnet.
The plasma operator then mints an equivalent amount of assets on the plasma chain and gives it to the depositor.
The on-chain assets remain in escrow.
Because the plasma chain ultimately relies on Ethereum for decentralized property rights, the plasma operator can be much more centralized (often a single entity) resulting in cheap and fast execution.
A virtual machine state describes everything within the virtual machine (and therefore blockchain/plasma computer) - every account, every smart contract, and every balance.
Blockchain computers, including plasma chains, store the state in a (modified) Merkle tree. A Merkle tree can be reduced to a single hash.
A Merkle tree allows the efficient confirmation a piece of data exists without transferring the whole dataset.
Once every interval (15 sec, 1 hour,etc), the plasma operator batches all the txns they have received and generate a Merkle tree for the state of the plasma chain.
First, the operator posts the Merkle root (the single hash representing the full state of the plasma chain) to mainnet.
Next, the operator sends the Merkle branch to the current owner of each asset.
To withdraw an asset, the user sends the Merkle branch (proving they own the asset) to the smart contract.
This begins a withdrawal period.
During the withdrawal period, anyone can invalidate the withdrawal by submitting a Merkle branch that proves the withdrawer doesn't own the asset.
If the period passes without any successful challenges, the assets can be withdrawn.
The biggest difference between state channels and plasma is that plasma supports a persistent state.
Plasma provides much stronger security properties than state channels; a record of your transactions exist on-chain while in operation.
It also allows users to send assets to participants who are not yet part of the system (state channels require opt-in).
However, Plasma has trade-offs:
The biggest weakness of plasma is shared with state channels: they both rely on explicit ownership (for example, the plasma must deliver the Merkle branch).
Each asset must have a logical owner, and if the owner isn't paying enough attention then their asset is vulnerable.
This is a reasonable trade-off for some applications, but fundamentally cannot support more EVM-native applications that don't have an explicit owner.
Plasma even struggles with applications that can change a balance without a users explicit consent (eg paying interest).
These factors the main reasons that it is just not possible to build a full EVM environment in a plasma. Therefore, the Ethereum community has taken the learnings from plasma and built something better. Something we call a rollup!
Source Material - Twitter Link
Source Material - PDF