Plasma Cash, as originally specified, requires that users maintain an ever-growing history of transactions, inclusion proofs, and non-inclusion proofs. Currently, this history is too large to be feasible.
Assuming we have a (very) small Plasma Cash chain with only 2^16 (= 65536) coins, then the Merkle proof of either existence or non-existence for a given coin will be at least 32 bytes * 16 siblings = 512 bytes per block. If we assume that Plasma block is created once every 15 seconds, then we’ll end up with 31557600 / 15 = 2103840 blocks per year. 2103840 blocks per year * 512 bytes per block = 1077166080 bytes per year = ~1.077 gigabytes per year. 1 gigabyte per coin, per year!
2^16（= 65,536）個のコインが存在する（非常に）小さな Plasma Cash チェーンを仮定すると、これらのコインについての existence proof と non-existence-proof の Merkle proof は、少なくとも 1 ブロックあたり 32 bytes * 16 siblings = 512 bytes となる。Plasma ブロックが 15 秒毎に生成されると仮定した場合、1 年で 31,557,600 / 15 = 2,103,840 ブロックが生成される。よって、2,103,840 blocks per year * 512 bytes per block = 1,077,166,080 bytes per year = ~1.077 gigabytes per year。1 コインあたり 1 年で 1 GB！
This means that the owner of a coin would, after one year, have to send more than a gigabyte of proof data simply to make a single transaction. Although the exact proof size can likely be slightly optimized, the proof size still grows linearly with the size of the Plasma Cash chain. That’s a lot of data! It’d be hard to store and validate a proof this big on devices that might be computationally limited, like phones or embedded devices. After enough time, it might even be difficult to validate these proofs on laptops or workstations.
This post attempts to solve this problem by specifying a protocol in which coins can be checkpointed. The owner of a coin will, therefore, only need to provide a proof back to the coin’s last checkpoint.