elements of computing

icon picker
2. processing

“smart contracts” systems are the popular label for...
systems that do processing in a decentralized fashion.
“smart contracts” are not really smart in any AI-ish sense of the word.
And they usually have nothing to do with “contract” in any legal sense of the word.
the labels “decentralized processing” and within it “decentralized business logic” make more sense.
Stateless vs stateful gives radical differences in complexity, verifiability, etc.

stateless (combinational) business logic

any arbitrary logic that does not retain state internally.
In electrical engineering terms, it can be framed as combinational digital logic circuits.
The logic is represented as a truth table, schematic diagram, or code holding conditional statements (combining if/then, and, or, not).
Because they don’t have state, it’s easy to verify large stateless smart contracts, and therefore to build large verified / secure systems.
N inputs and one output requires O(2^N) computations to verify.
The (ILP) contains the crypto-conditions (CC) protocol to cleanly specify combinational circuits.
CC is good to know of because it’s becoming an internet standard ,
and because ILP is getting widespread adoption among both centralized & decentralized payments networks
CC has standalone implementations in , ,
, and more.
, Ripple, and other systems use CCs; and therefore support combinational business logic / smart contracts.
Bitshares and Eos also support stateless business logic.
Since stateful logic is a superset of stateless logic, then systems that support stateful logic also support stateless logic
(at the expense of additional complexity and verifiability challenges).
BigchainDB, Bitshares, and Eos also support events ().
This gives a level of persistence edging the functionality closer to stateful business logic.

stateful (sequential) business logic

any arbitrary logic that does retain state internally. That is, it has memory.
Or, it’s a combinational logic circuit with at least one feedback loop (and a clock).
For example, a microprocessor has an internal register that gets updated according to machine-code instructions that are sent to it.
More generally, stateful business logic is a Turing machine that takes in a sequence of inputs, and returns a sequence of outputs. Systems that manifest (a practical approximation of) this are called Turing-complete systems.
I say “Turing complete” here in a practical sense, not in a theoretically pure sense.
That is: the machine returns a string of outgoing bits as a function of the incoming bits and its current internal state;
but practical in the sense of not running infinitely long
or claiming to solve the “when does the machine stop” problem (halting problem).
is the best-known blockchain system that manifests stateful business logic / smart contracts running directly on-chain.
, , , , , , , and many more also implement it.
Running code that’s “just out there, somewhere” is a powerful concept, with many use cases.
This helps explain why Ethereum took off, why its ecosystem has grown such that it’s almost a platform in its own right,
and why so much competition has arisen in this building block.
Because sequential logic is a superset of combinational logic, these systems also support combinational logic.
image.png

high performance compute (HPC)

This is processing to do “heavy lifting” compute for things like rendering, machine learning, circuit simulation,
weather forecasting, protein folding, and more.
A compute job here might take hours or even weeks on a cluster of machines (CPUs, GPUs, even
).
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.