Perhaps an unpopular opinion but, I truly dislike the wording "smart contracts".
I used to find it confusing when I first got into crypto years ago, but now I dislike it even more in the context of Cardano.
Why?👇
Compared to most existing smart-contract platforms, Cardano takes a much different road. Recently, we've seen a lot of discussions going on about "concurrency issues" and "EUTXO vs accounts". While equally expressive, Cardano programmability is different and atypical.
Cardano introduces the concept of programmable validators. Validators are fully deterministic: their result entirely depends on the transaction that carries them (= predictable fees).
In a sense, they are similar to the notion of "pure functions" in functional programming.
In a UTXO model, this feels like a very natural extension. So far, the main type of validations that existed was "must be signed by key X", but now, more elaborated validations can be expressed.
Some may require cryptographic signatures, some may not.
Unlike Ethereum, Solana, Algorand and al, there's no such thing as "deploying" a smart-contract on Cardano.
Instead, validators are implicitly referred to by hashes prior to their use, and they are disclosed upon activation.
This can be a little bit unsettling at first.
A direct consequence of this means that, validators aren't actually producing anything.
They just validate.
The on-chain execution is thus only about validation and verification, as it should.
Other more expensive operations are seemingly kept off-chain.
Some see blockchains as fully programmable platforms, game engines, database and whatnot...
But they really aren't.
They're ledgers, and they keep track of transactions. Thus, keeping the on-chain, critical, executions at a minimum is *crucial* for security / audit.
In Cardano, "smart-contracts" tend to refer to the combination of the on-chain validator(s) and the off-chain code that's driving it / them.
Yet, I often see people mixing up validators and smart-contracts: when one says smart contracts, they really mean validators.
Some contracts even use multiple validators!
For example, Hydra heads use 3 on-chain validators to operate and to enable concurrent interactions.
Some also use a combination of validators and monetary policies or timelocks scripts.
In the end, "smart contracts" feels like an imprecise term. Rather, I'd prefer more specific terms such as "on-chain validators" and "off-chain code". I reckon this is a hard one for marketing though...
If anything, "smart-validators" sounds already much better to me 😊
• • •
Missing some Tweet in this thread? You can try to
force a refresh
Ethereum Arbitrum vs #Cardano#Hydra, a thread about Layer 2 solutions.
👇👇👇
With the recent release of Arbitrum on Ethereum, and the upcoming Alonzo hard-fork on Cardano, there has been many discussions and comparisons about layer 2 solutions. As some knows, I've been working on Hydra with a few others for some months now and I want to shed some lights.
Firstly, what's Arbitrum and what problem does it solve for Ethereum?
Arbitrum is a mechanism that allows to move smart-contract execution out of the layer 1, in such a way that participants can put their trust in some chosen validators (a.k.a managers).