Cardano A Short Dive
for free divers and not for ocean floor dwellers
Proof of stake (PoS) Blockchain
Ledger properties
Persistence states that once a node of the system proclaims a certain transaction as “stable,” the remaining nodes, if queried and responding honestly, will also report it as stable.
Liveness ensures that once an honestly generated transaction has been made available for a sufficient amount of time to the network nodes, say u time steps, it will become stable
Ledger =List[Transaction]
Leader Node Election
In each epoch a set of randomly selected stakeholders form a committee which is then responsible for executing the coin-flipping protocol. The outcome of the protocol determines the set of elected stakeholders that will execute the protocol in the subsequent epoch, as well as the outcomes of all leader elections for the epoch
Rewards
Incentive structure of the protocol to mitigate attacks like “block withholding” and “selfish-mining” by design.
Delegation to allow protocol to scale even if stakeholders are highly fragmented. Delegation mechanism can enable stakeholders to delegate their “voting rights,” i.e., the right of participating in the committees running the leader selection protocol in each epoch. Stakeholders can revoke their delegative appointment anytime.
Attacks
Double spending attacks- persistence ensures that once the transaction is confirmed by an honest player, all other honest players from that point on will never disagree regarding this transaction
Grinding attacks — Coin tossing provide uniform randomness
Transaction denial (censorship) attacks — liveness ensures that, provided the transaction is attempted to be inserted for a sufficient number of slots by the network, it will be eventually confirmed
Desynchronization attacks — security as long as parties with less than 50% of stake get desynchronized. If more than 50% parties get desynchronized protocol can fail
Bribery Attacks — Malicious slot leaders who agree to deliberately attack the system not only risk to forego any potential profit they would earn from behaving honestly but may also risk to lose equity due to currency devaluation
Other attacks considered and mitigations— Long-range attacks, Nothing at stake attacks, Past majority attacks, Selfish-mining
Wallet Addresses Types
Base addresses — A base address directly specifies the staking key that should control the stake for that address.
Pointer addresses — A pointer address indirectly specifies the staking key that should control the stake for the address.
Enterprise addresses — Enterprise addresses carry no stake rights, so using these addresses means that you are opting out of participation in the proof-of-stake protocol (e.g. exchanges and other organizations)
Reward account addresses — Reward account addresses are used to distribute rewards for participating in the proof-of-stake protocol, Account-style accounting not UTXO, Funds cannot be received via transactions
EUTXO — The Extended UTXO Model
UTXO outputs from being a pair of a validator ν and a cryptocurrency value value to being a triple (ν, value, δ) of validator(script), value, and a datum δ, where δ contains arbitrary contract-specific data (e.g. meta-data to specify any validity constraints on consuming transaction).
Each EUTXO contains value and conditions which allow it to be consumed deterministically and by which validator(script)
Hard Fork
In most blockchains, a hard fork indicates block changes or a change to their interpretation. A hard-forked chain will be different from the previous version and that the history of the pre-forked blockchain will no longer be available.
In Cardano the Hard-fork are smooth transition to new protocol while saving the history of previous blocks.
Tokens on Cardano
Tokens on Cardano are native assets just like ADA and inherits all functionality and security of Cardano including governance. There is no need for writing ERC20 or ERC721 Smart Contract.
Transaction
Cardano support multi assets and multi signatures within one transaction
Transactions have a Set of inputs but a List of outputs
Determinism — Users can reliably compute how much they will need to pay ahead of time. Unlike Ethereum there is no possibility of partial fee and resource consumption during transaction or smart contract execution
Smart contract
A smart contract is an automated digital agreement, written in code, that tracks, verifies, and executes the binding transactions of a contract between various parties. The transactions of the contract are automatically executed by the smart contract code when predetermined conditions are met. Essentially, a smart contract is a short program whose inputs and outputs are transactions on a blockchain.
Smart contract development and deployment
Plutus — Based on Haskell functional programing. Code is divided into two parts on-chain and off-chain code. On-chain code updates the Cardano block-chain ledger and off chain code is executing business logic.
Marlow — A visual editor for building contract without writing low level code. Visual editor enables business domain expert to write and verify written contract meet all business requirement.
Glow — a domain specific language for writing dApps on Cardano blockchain
References:
https://eprint.iacr.org/2016/889.pdf
https://docs.cardano.org/core-concepts/cardano-addresses
https://docs.cardano.org/new-to-cardano/what-is-a-smart-contract