#Cardano
#ADA
$ADA

A THREAD :

In a distributed computing environment such as a blockchain, multiple distributed nodes are intended to execute the same computation simultaneously, so as to provide distributed representation of the information output of the system as a
universal whole. There are different ways to achieve this, one of which is to use ‘Unspent Transaction Outputs’ (UTXOs), the other being an ‘Account-based ledger’. However in order to implement the account-based ledger approach, the system needs to employ ‘shared mutable state’.
The Bitcoin protocol uses UTXOs, and as a result does not have any concept of ‘shared mutable state’. This is one of the major advantages of the UTXO model; ‘shared mutable state’ is known to lead to highly complex semantics, in the face of concurrent and distributed computations
However, the downside of the absence of ‘shared mutable state’ is that this can lead to limited expressiveness of the programmability which can be achieved under these constraints.
Since the express purpose of Ethereum is to be able to implement smart contracts on distributed nodes, the protocol has attempted to overcome this limited expressiveness by forgoing the UTXO model, adopting instead the 'account-based ledger'.
However, in doing so, it introduces ‘shared mutable state’, which as noted, significantly complicates the semantics of the smart contract code. In particular, contract authors need to understand the subtleties of this semantics or risk introducing security issues.
One such vulnerability is ‘recursive contract invocation’ (i.e. the same code being executed over and over again), which is specifically the flaw that led to the infamous DAO hack.

These shortcomings are inherent in the ETH protocol.
Cardano, on the other hand, implements an Extended UTXO model (‘EUTXO’), which increases the expressiveness of the programmability, while also forgoing any notion of ‘shared mutable state’. This is achieved via the implementation of specific forms of state machine ...
(‘Constraint Emitting Machines’), which are themselves implemented through the use of ‘functional programming’ (‘FP’), specifically the FP language, Haskell.
To summarise the FP paradigm, every interaction within the system is a calculation or a process i.e. a function (specifically of the type 'lambda calculus'),
thus every node that executes this code will end up at the same state since every calculation will produce the same result, wherever it’s executed. In other words, the FP paradigm results in 'immutable state'.

{"Immutability changes everything").
Functional programming powers the operation of the ledger in the Cardano network; Haskell powers both the off chain programming, and the onchain language, Plutus, that will be used to create the smart contracts that run on chain and in the sidechains (Hydra). /ENDS.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Quadrant Capital

Quadrant Capital Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!