We don’t make money we multiply money πŸ’―

Sometimes when you put your heart, mind and soul even into your smallest acts, it’s always a secret of success.

INVESTMENT

Although Bitcoin is mostly used as a decentralized application to transfer cryptocurrency,
over the last 10 years there have been several studies on how to exploit Bitcoin to execute
smart contracts. These are computer protocols which allow users to exchange bitcoins
according to complex pre-agreed rules. Some of these studies introduce formal models
of Bitcoin contracts, which specify their behavior in non-ambiguous terms, in some cases
providing tools to automatically verify relevant contract properties. In this paper, we survey
the formal models proposed in the scientific literature, comparing their expressiveness
and applicability in the wild.

SIMPLICITY

Simplicity (O’Connor, 2017) is an alternative language for Bitcoin
scripts, aimed at replacing the Bitcoin scripting language with a
more easily analyzable one, neglecting backward compatibility
with Bitcoin. Technically, it is a first-order simply-typed Ξ»-
calculus. Its types include a unit type 1, product types A Γ— B,
and sum types A + B, but no function types. More complex types
are defined in terms of these basic ones: for instance, the type of
booleans is defined as 2 = 1+1, while fixed-length bitstring types
are defined e.g., as Hash256 = 2
256 = 2Γ—2Γ—Β· Β· Β· . By construction,
each type is inhabited by finitely many values. Because of this,
Simplicity can be proven to be universal, i.e., its combinators
allow to define any function f : A ⊒ B between types A and B.
Among the primitive combinators, we find pair a b : C ⊒ AΓ—
B which constructs a pair with the outputs of functions a : C ⊒ A
and b : C ⊒ B. Dually, take t : A Γ— B ⊒ C applies t : A ⊒ C to
the first component of the input pair, while drop s: A Γ— B ⊒ C
applies s: B ⊒ C to the second component. Values in sum types
can be eliminated using case s t :(A+B)Γ—C ⊒ D, which checks
whether its first input is a β€œleft” value of type A or a β€œright” value
of type B. In the former case, case s t applies s: A Γ— C ⊒ D
to the inputs, otherwise it applies t : B Γ— C ⊒ D. Note

Leave a Comment