Every append-only log is a smart contract platform
- public: true
- tags: cryptocurrency, blockchain
- kb-type: page
- An append-only log is a log that you can append entries to, but not alter existing entries. The most common implementation of a append-only log is a blockchain, where log entries are grouped into blocks, and each block references the previous block. Blockchains are usually associated with decentralised cryptocurrency, but this isn't always the case - e.g. Certificate Transparency is a system of centralised blockchains[^1] used for tracking certificate issuance with no cryptocurrency aspect.
- A smart contract platform is something that can run smart contracts like Ethereum. A smart contract platform maintains some state for each smart contract, and each smart contract invocation produces a new smart contract state. On Ethereum, transfers (including 0 ETH transfers) to smart contracts invoke them.
- It is possible to run a smart contract platform on an append-only log, even if that log doesn't itself have any knowledge of the smart contract platform. You just put smart contract invocations on the append-only log, signed by the transactor. Since the log doesn't know about the smart contract platform, it can have invalid transactions - you just have to ignore those ones. Also, the log might not have mechanisms to prevent spamming a lot of valid transactions. That kinda sucks, so maybe use logs that do have mechanisms that prevent spam.
- E.g. you can run a smart contract platform on Nimbus2024, Bitcoin, or a Matrix channel.
Why does every cryptocurrency have its own append-only log?
- Given all that why does nearly every cryptocurrency have its own append-only log? It seems like a smart-contract platform can work independently of the append-only log that contract invocations come from. Why hasn't everyone settled on one really good append-only log, and then built all their smart-contract platforms on top of that log? Making an append-only log is a lot easier than making a smart-contact platform.
- idk
- [^1]: Technically CT logs aren't blockchains because each entry only has a single certificate - log entries aren't grouped into blocks. This isn't relevant here though.