Holo Chain
Holo Chain
Holo Chain
4. Let there be a state transition function: 1. Call a set of nodes in N for which any of the func-
tions T, V, P and E have the properties of being
τ (σi , t) = (τX (Xi , t), τD (Di , t)) (3.1) both reliably known and also known to be identical
for that set of nodes: trusted nodes with respect
where: to the functions so known.
(a) τX (Xi , t) = Xi+1 where
2. Call a channel C with the property that messages
Xi+1 = Xi ∪ {xi+1 } in transit can be trusted to arrive exactly as sent:
(3.2) secure.
= {x1 , . . . , xi , xi+1 }
3. Call a channel C on which the address An of a node
with n is An = H(pkn ), where pkn is the public key of
xi+1 = {h, t} the node n, and on which all messages include a
digital signature of the message signed by sender:
h = {H(t), y} (3.3)
authenticated .
y = {H(xj )|j < i}
4. Call a data element that is accessible by its hash
Call h a header and note how the sequence content addressable.
of headers creates a chain (tree, in the general
case) by linking each header to the previous For the purposes of this paper we assume untrusted
header(s) and the transaction. nodes, i.e., independently acting agents solely under their
(b) Di+1 = τD (σi , t) own control, and an insecure channel. We do this be-
cause the very raison d’être of the cryptographic tools
5. Let V (t, v) be a function that takes t, along with mentioned above is to allow individual nodes to trust the
whole system under this assumption. The cryptography
only if valid calls a transition function for t. Call
V a validation function.
8. Let C be a channel that allows all nodes in N Using this definition, Bitcoin can be understood as that
to communicate and over which each node has a system Ωbitcoin where:
unique address An . Call C and the nodes that com-
municate on it the network . ! !
1. ∀n, m ∈ N : Xn = Xm where = means is enforced.
9. Let E(i) be a function that changes functions 2. V (e, v) e is a block and v is the output from the
V, I, P . Call E the evolution function. “proof-of-work” hash-crack algorithm, and V con-
Explanation: this formalism allows us to model sepa- firms the validity of v, the structure and validity of
rately key aspects of agents. e according to the double-spend rules5 .
First we separate the agent’s state into a cryptograph-
ically secured hash-chain part X and another part that 3. I(t, n) accepts transactions from clients and adds
holds arbitrary data D. Then we split the process of up- them to D (the mempool ) to build a block for later
dating the state into two steps: 1) the validation of new use in triggering V ().
transactions t through the validation function V (t, v),
4. P (i) is the mining process including the “proof-of-
and 2) the actual change of internal state S (as either X
work” algorithm and composes with V () and τX
or D) through the state transition functions τX and τD .
when the hash is cracked.
Finally, we distinguish between 1) state transitions trig-
gered by external events, stimuli, received through I(t),
and 2) a node’s internal processing P (x) that also results
in calling V and τ with an internally created transaction.
5 pointer here
We define some key properties of distributed systems:
3
5. E(i) is not formally defined but can be mapped problem in distributed systems which consist entirely of
informally to a decision by humans operating the multiple vantage points by definition.
nodes to install new versions of the Bitcoin soft- In the distributed world, events don’t happen in the
ware. same sequence for all observers. For Blockchain specif-
ically, this is the heart of the matter: choosing which
The first point establishes the central aspect of Bit- block, from all the nodes receiving transactions in differ-
coin’s (and Blockchain applications’ in general) strategy ent orders, to use for the “consensus,” i.e., what single
for solving or avoiding problems otherwise encountered vantage point to enforce on all nodes. Blockchains don’t
in decentralized systems, and that is by trying to main- record a universal ordering of events – they manufacture
tain a network state in which all nodes should have the a single authoritative ordering of events – by stringing
same (local) chain. together a tiny fragment of local vantage points into one
By contrast, for Ωgit there is no such constraint on any global record that has passed validation rules.
Xn , Xm in nodes n and m matching, as git’s core intent The use of the word consensus seems at best dubious
is to allow different agents act autonomously and diver- as a description of a systemic requirement that all nodes
gently on a shared code-base, which would be impossible carry identical values of Xn . Especially when the algo-
if the states always had to match. rithm for ensuring that sameness is essentially a digital
Through the lens of the formalism some other aspects lottery powered by expensive computation of which the
of Ωgit can be understood as follows: primary design feature is to randomize which node gets
1. the validation function V (e, v) by default only to run Vn such that no node has preference to which e
checks the structural validity of e as a commit ob- gets added to Xn .
ject not it’s content (though note that git does also The term consensus, as normally used, implies delib-
support signing of commits which is also part of the eration with regard to differences and work on crafting
validation) a perspective that holds for all parties, rather than sim-
ply selecting one party’s dataset at random. In contrast,
2. the stimulus function I(t) for Ωgit consists of the
set of git commands available to the user
3. the state transition function τX is the internal git
function that adds a commit object and τD is the
by add
a
git function that adds code to the index triggered
1. With respect to a machine M , some values of Sn 3. Let the initial entry of all Xn in N
can be interpreted as: executable code and the re- be identical and consist in the set
sults of code execution, and they may be accessible DNA{e1 , e2 , . . . , f1 , f2 , . . . , p1 , p2 , . . . } where
to M and the code. Call such values the machine ex are definitions of entry types that can be
state. added to the chain, fx are functions defined as
executable on M (which we also refer to as the
2. ∃t and nodes n such that In (t) will trigger execution set Fapp = {app1 , app2 , . . . }), and px are system
of that code. Call such transaction values calls. properties which among other things declare the
expected operating parameters of the application
being specificed. For example the resilience factor
A. Ethereum as defined below is set as one such property.
Ethereum6 provides the current premier example of 4. Let ιn be the second entry of all Xn and be a set
generalized distributed computing using the Blockchain of the form {p, i} where p is the public key and i
model. The Ethereum approach comes from an ontology is identifying information appropriate to the use of
of replicating the data certainty of single physical com- this particular Ωhc . Note that though this entry is
puter, on top of the stratum of a bunch of distributed of the same format for all Xn it’s content is not the
nodes using the blockchain strategy of creating a sin- same. Call this entry the agent identity entry.
gle data reality in a cryptographic chain, but commiting
computations, instead of just monetary transactions as 5. ∀ex ∈ DN A let there be an appx ∈ Fapp which can
in bitcoin, into the blocks. be used to validate transactions that involve entries
This approach does live up to the constraints listed of type ex . Call this set Fv or the application
validation functions.
above as described by Wood [EIP-150] where the bulk
of that paper can be understood as a specification of a
validation function Vn () and the described state transi-
tion function σt+1 ≡ Υ(σ, T ) as a specification of how
constraints above are met.
a
Unfortunately the data-centric legacy inherited by
Ethereum from the blockchain model, is immediately ob-
servable in its high compute cost7 and difficulty in scal-
ing8 .
ft 6. Let there be a function Vsys (ex, e, v) which checks
that e is of the form specified by the entry definition
for ex ∈ DNA. Call this function the system entry
validation function.
DHT are sufficiently mature that there are a num- Call the union of such sets Vδ , from a given
ber of ways to ensure property 11c. For our cur- node’s perspective, the overlap list and also
rent alpha version we use a modified version of note that q ≥ r.
[Kademlia] as implemented in [LibP2P]. (i) Allow every node n to discard every δx ∈ ∆n if
the number of closer (with regards to d(x, y))
12. Let DHThc augment DHT as follows:
nodes is greater than q (i.e. if other nodes are
(a) ∀δkey,value ∈ ∆ constrain value to be of able to construct their Vδ sets without includ-
an entry type as defined in DNA. Furth- ing n, which in turn means there are enough
more, enforce that any function call dhtx (y) other nodes responsible for holding δ in their
which modifies ∆ also uses Fv (y) to validate ∆m to have the system meet the resilience set
y and records whether it is valid. Note that by r even without n participating in storing δ).
this validation phase may include contacting Note that this results in the network adapt-
the source nodes involved in generating y to ing to changes in topology and DHT state mi-
gather more information about the context of grations by regulating the number of network-
the transaction, see IV C 2. wide redundant copies of all δi ∈ ∆ to match
r according to node uptime.
(b) Enforce that all elements of ∆ only be changed
monotonically, that is, elements δ can only be Call DHThc a validating , monotonic, sharded
added to ∆ not removed. DHT.
(c) Include in FDHT the functions defined in A. 13. ∀n ∈ N assume n implements DHThc , that is: ∆ is
(d) Allow the sets δ ∈ ∆ to also include more a subset of D (the non hash-chain state data), and
elements as defined in A. FDHT are available to n, though note that these
(e) Let d(x, y) be a symmetric and unidirectional functions are NOT directly available to the func-
distance metric within the hash space defined
by H, as for example the XOR metric defined
in [Kademlia]. Note that this metric can be
applied between entries and nodes alike since
the addresses of both are values of the same
a
hash function H (i.e. δkey = H(δvalue ) and
An = H(pkn )).
(f) Let r be a parameter of DHThc to be set de-
ft tions Fapp defined in DNA.
14. Let Fsys be the set
{syscommit , sysget , . . . } where:
of functions
all nodes reliably have the same data then that provides only have considered confidence in (RC ). Still unclear is
strong general basis from which to prove the integrity how to measure a concrete confidence level Ψα . In real-
of the system as a whole. In the case of Bitcoin, the world contexts and for real-world decisions, confidence is
X holds the transactions and the unspent transaction mainly dependent on an (human) agent’s vantage point,
outputs, which allows nodes to verify future transactions set of data at hand, and maybe even intuition. Thus
against double-spend. In the case of Ethereum, X holds we find it more adequate to call it a soft criteria. In
what ammounts to pointers to machine state. Proving order to comprehend this concept objectively and relate
the consistency across all nodes of those data sets is fun- it to the notion conveyed by Woods in the quote above,
damental to the integrity of those systems. we proceed by defining the measure of confidence of an
However, because we have started with the assump- aspect α as the conditional probability of it being the
tion (see III A) of distributed systems of independently case in a given context:
!
acting agents, any proof of ∀n, m ∈ N : Xn = Xm in a
Ψα ≡ P(α|C) (4.3)
blockchain based system is better understood as a choice
!
(hence our use of the =), in that nodes use their agency where the context C models all other information avail-
to decide when to stop interacting with other nodes based able to the agent, including basic and intuitive assump-
on detecting that the X state no longer matches. This tions.
might also be called “proof by enforcement,” and is also Consider the fundamental example of cryptographi-
appropriately known as a fork because essentially it re- cally signed messages with asymetric keys as applied
sults in partitioning of the network. throughout the field of cryptographic systems (basically
The heart of the matter has to do with the trust any what coins the term crypto-currency). The central aspect
single agent has is in the system. In [EIP-150] Section in this context we call αsignature which provides us with
1.1 (Driving Factors) we read: the ability to know with certainty that a given message’s
Overall, I wish to provide a system such that
real author Authorreal is the same agent indicated solely
users can be guaranteed that no matter with
which other individuals, systems or organizations
they interact, they can do so with absolute con-
fidence in the possible outcomes and how those
outcomes might come about.
The idea of “absolute confidence” here seems impor-
a
tant, and we attempt to understand it more formally and
generally for distributed systems.
questioning the confidence in every thought, we project expend differing levels of resources to validate. We de-
his famous statement cogito ergo sum into the reference signed Holochain to allow such validation functions to be
frame of multi-agent systems by stating: Agents can set contextually per application and expose these con-
only have honest confidence in the fact that they texts explicitly. Thus, one could conceivably build a
perceive a certain stimulus to be present and Holochain application that deliberately makes choices in
whether any particular abstract a priori model its validation functions to implement either all or par-
matches that stimulus without contradiction, i.e., tial characteristics of Blockchains. Holochain, therefore,
that an agent sees a certain piece of data and that it is can be understood as a framework that opens up a spec-
possible to interpret it in a certain way. Every conclusion trum of decentralized application architectures in which
being drawn a posteriori through the application of Blockchain happens to be one specific instance at one end
sophisticated models of the context is dependent on of this spectrum.
assumptions about the context that are inherent to the In the following sections we will show what categories
model. This is the heart of the agent-centric outlook, of validation algorithms exist and how these can be
and what we claim must always be taken into account stacked on top of each other in order to build decen-
in the design of decentralized multi-agent systems, as tralized systems that are able to maintain integrity with-
it shows that any aspect of the system as a whole that out introducing an absolute truth every agent would be
includes assumptions about other agents and non-local forced to accept or consider.
events must be in RC , i.e., have an a priori confidence
of Ψ < 1. Facing this truth about multi-agent systems,
we find little value in trying to force an absolute truth
! 1. Intrinsic Data Integrity
∀n, m ∈ N : Xn = Xm and we instead frame the problem
as:
Every application but the most low-level routines uti-
We wish to provide generalized means by which lize non-trivial, structured data types. Structured im-
decentralized multi-agent systems can be built so
that:
1. fit-for-purpose solutions can be applied in order
to optimize for application contextualized confi-
dences Ψα ,
a
2. violation of any threshold ε(α) through the ac-
tions of other agents can be detected and managed
by any agent, such that
ft plies the existence of a model describing how to interpret
raw bits as an instance of a type and how pieces of the
structure relate to each other. Often, this includes cer-
tain assumptions about the set of possible values. Cer-
tain value combinations might not be meaningful or vio-
late the intrinsic integrity of this data type.
Consider the example of a cryptographically signed
message m = {body, signature, author}, where author
Dr
3. the system integrity is maintained at any point in
is given in the form of their public key. This data type
time or, when not, there is a path to regain it (see conveys the assumption that the three elements body,
??). signature and author correspond to each other as con-
strained by the cryptographic algorithm that is assumed
We perceive the agent-centric solution to these re- to be determined through the definition of this type. The
quirements to be the holographic management of system- intrinsic data integrity of a given instance can be val-
integrity within every agent/node of the system through idated just by looking at the data itself and checking
application specific validation routines. These sets of val- the signature by applying the cryptographic algorithm
idation rules lie at the heart of every decentralized ap- that constitutes the central part of the type’s a priori
plication, and they vary across applications according to model. The validation yields a result ∈ {true, f alse}
context. Every agent carefully keeps track of their repre- which means that the confidence in the intrinsic data in-
sentation of that portion of reality that is of importance tegrity is absolute, i.e. Ψintrinsic = 1.
to them - within the context of a given application that Generally, we define the intrinsic data integrity
has to manage the trade-off between having high confi- of a transaction type φ as an aspect αφ,intrinsic ∈ RA ,
dence thresholds ε(α) and a low need for resources and expressed through the existence of a deterministic and
complexity. local validation function Vα (t) for transactions t ∈ φ that
For example, consider two different use cases of trans- does not depend on any other inputs but t itself.
actions: Note how the intrinsic data integrity of the message ex-
1. receipt of an email message where we are trying to ample above does not make any assumptions about any
validate it as spam or not and message’s real author, as the aspect αsignature from the
previous section does. With this definition, we focus on
2. commit of monetary transaction where we are try- aspects that don’t make any claims about system prop-
ing to validate it against double-spend. erties non-local to the agent under consideration, which
roots the sequence of inferences that constitutes the va-
These contexts have different consequences that an agent lidity and therefore confidence of a system’s high-level
may wish to evaluate differently and may be willing to aspects and integrity in consistent environmental inputs.
8
2. Membranes & Provenance transactions. This resembles how knowledge gets con-
structed within social fields and through interaction with
Distributed systems must rely on mechanisms to others, as described by the sociological theory of social
restrict participation by nodes in processes that without constructivism.
such restriction would compromise systemic integrity. The properties of the DHT in conjunction with the
Systems where the restrictions are based on the nodes’ hash function provide us with a deterministically defined
identity, whether that be as declared by type or author- set of nodes, i.e., a neighborhood for every transaction.
ity, or collected from the history of the nodes’ behaviors, One cannot easily construct a transaction such that it
are know as permissioned [Swanson15]. Systems lands in a given neighborhood. Formally:
where these restrictions are not based on properties of
the nodes themselves are known as permissionless. ∀t ∈ ∆ : ∃η : H → N r
(4.6)
In permissionless multi-agent systems, a principle η(H(t)) = (n1 , n2 , . . . , nr )
threat to systemic integrity comes from Sybil-Attacks
[Douceur02], where an adversary tries to overcome the where the function η maps from the range H of the hash
system’s validation rules by spawning a large number of function H to the r nodes that keep the r redundant
compromised nodes. shards of the given transaction t (see 12i).
Having the list of nodes η(H(t)) allows an agent to
However, for both permissioned and permissionless compare third-party viewpoints regarding t, with its own
systems, mechanisms exists to gate participation. For- and that of the transaction’s source(s). The random-
mally: ization of the hash function H ensures that those view-
points represent an unbiased sample. r can be adjusted
Let M (n, φ, z) be a binary function that evaluates depending on the application’s constraints and the cho-
whether transactions of type φ submitted by n ∈ N sen trade-off between costs and system integrity. These
are to be accepted, and where z is any arbitrary extra properties provide sufficient infrastructure to create sys-
information needed to make that evaluation. Call M
the membrane function, and note that it will be a
component of the validation function V (t, v) from the
initial formalism5.
a
In the case of Ωbitcoin and Ωethereum , M ignores the
value of n and makes its determination solely on whether
z demonstrates the “proof” in proof-of-X be it work or
ft tem integrity by detecting nodes that don’t play by the
rules - like changing the history or content of their source
chain. In appendix C we detail tooling appropriate for
different contexts, including ones where detailed analysis
of source chain history is required - for example financial
transaction auditing.
Depending on the application’s domain, neighbor-
hoods could become vulnerable to Sybil-Attacks because
Dr
stake which is a sufficient gating to protect against Sybil- a sufficiently large percentage of compromised nodes
Attacks. could introduce bias into the sample used by an agent
Giving up the data-centric fallacy of forcing one ab- to evaluate a given transaction. Holochain allows ap-
!
solute truth ∀n, m ∈ N : Xn = Xm reveals that we plications to handle Sybil-Attacks through domain spe-
can’t discard transaction provenance. Agent-centric dis- cific membrane functions. Because we chose to inher-
tributed systems instead must rely on two central facts ently model agency within the system, permission can
about data: be granted or declined in a programmatic and decentral-
ized manner thus allowing applications to appropriately
1. it originates from a source and land on the spectrum between permissioned and permis-
sionless.
2. its historical sequence is local to that source. In appendix D, we provide some membrane schemes
that can be chosen either for the outer membrane of that
For this reason, Ωhc splits the system state data into two application that nodes have to cross in order to talk to
parts: any other node within the application or for any sec-
ondary membrane inside the application. That latter
1. each node is responsible to maintain its own entire
means that nodes could join permissionless and partic-
Xn or source chain and be ready to confirm that
ipate in aspects of the application that are not integrity
state to other nodes when asked and
critical without further condition but need to provide cer-
2. all nodes are responsible to share portions of other tain criteria in order to pass the membrane into applica-
nodes’ transactions and those transactions’ meta tion crucial validation.
data in their DHT shard - meta data includes Thus, Holochain applications maintain systemic in-
validity status, source, and optionally the source’s tegrity without introducing consensus and therefore
chain headers which provide historical sequence. (computationally expensive) absolute truth because 1)
any single node uses provenance to independently verify
Thus, the DHT provides distributed access to others’ any single transaction with the sources involved in that
transactions and their evaluations of the validity of those transaction and 2) because each Holochain application
9
runs independently of all others, they are inherently per- recieved from those nodes will result in changing
missioned by application specific rules for joining and mother .
continuing participation in that application’s network.
These both provide the benefit that any given Holochain 5. ∀m ∈ M let the function Gabout (m) return a set of
application can tune the expense of that validation to a nodes important for a node to gossip about defined
contextually appropriate level. by the properties of m.
6. Define subsets of Gwith (m) according to a corre-
lation with what it means to have low vs. high
3. Gossip & World Model confidence value c:
So far, we have focused on those parts of the valida- (a) Pull: consisting of nodes about which a low
tion function V used to verify elments of X . However, confidence means a need for more frequent
maintaining system integrity in distributed systems also gossip to raise a node’s confidence. Such nodes
requires that nodes have mechanisms sharing informa- would include those for which, with respect
tion about nodes that have broken the validation rules to the given node, hold its published entries,
so that they can be excluded from participation. There hold entries it is also responsible for holding,
exist, additionally, forms of bad-acting that do not live in are close the then node (i.e. in its lowest k-
the content of a transaction but in the patterns of trans- bucket), and which it relies on for routing (i.e.
acting that are detrimental to the system, for example, a subset of each k-bucket)
denial of service attacks. (b) Push: consisting of nodes about which a high
Holochain uses gossip for nodes to share information confidence implies a need for more frequent
about their own experience of the behavior of other gossip to spread the information about that
nodes. Informally we call this information the node’s node. Such nodes would include ones for
world model . In this section we describe the nature which a given node has high confidence is a
of Holochain’s gossip protocols and how they build and
maintain a node’s world model.
In 12f we described one such part of the world model,
the uptime metric and how it is used for maintaing redun-
dant copies of entries. In IV C 2 we defined a membrane
a
function that determines if a node shall accept a trans-
action and allowed that function to take arbitrary data
z. The main source of that data comes from this world
ft bad actor, i.e. it has directly experienced bad
acting, or has recevied bad actor gossipe from
nodes that it has high confidence in being able
to make that bad actor evaluation.
7. TODO: describe a gossip trigger function based on
the pull vs. pull distinction that demostrates when
gossip happens
Dr
model. The computational costs of gossip depend on the set of
More formally: metrics that a particular application needs to keep track
1. Recall that each node maintains a set M of metrics of to maintain system integrity. For an application with a
m about other nodes it knows about. Note that in very strong membership membrane perhaps only uptime
terms of our formalism, this world model is part of metrics are necessary to gossip about to balance resil-
each node’s non-chain state data D. lience. But this too may depend on apriori knowledge of
the nodes involved in the application. Applications with
2. Let m be a tuple of tuples: ((µ, c)self , (µ, c)others ) very loose membership membranes may have a substan-
which record an experience µ of a node with re- tial number of metrics and complex membrane functions
spect to a given metric and a confidence c of using those metrics which may require substantial com-
that exprience, both as directly experienced or as pute effort. The Holochain design intentionally leaves
”hearsay” recieved from other nodes. these parameters only loosly specificed so that applica-
tions can be built fit for purpose.
3. Allow a class of entries stored in Xn be used also
as a metric mw which act as a signed declaration
of the experience of n regarding some other node. 4. CALM & Logical Monotonicity
Call such entries warrants. These warrants al-
low us to use the standard tooling of Holochain
TODO: description of CALM in multi-agent systems,
to make provenance based, verifyable claims about
and how it works in our case
other nodes in the network, which propagate or-
thogonally from the usual DHT methods, via gossip
to nodes that need to ”hear” about these claims so V. COMPLEXITY IN DISTRIBUTED SYSTEMS
as to make decisions about interacting with nodes.
4. ∀m ∈ M let the function Gwith (m) return a set In this section we discuss the complexity of our pro-
of nodes important for a node to gossip with de- posed architecture for decentralized systems and compare
fined by a probabilistc weighting that information it to the increasingly adopted Blockchain pattern.
10
Formally describing the complexity of decentralized transaction at least flood through 90% of the network,
multi-agent systems is a non-trivial task for which more block size and time can’t be pushed beyond 4MB and
complex approaches have been suggested ([Marir2014]). 12s respectively, according to [Croman et al 16].
This might be the reason why there happens to be
unclarity and misunderstandings within communities dis-
cussing complexity and scalability of Bitcoin for example B. Ethereum
[Bitcoin Reddit].
In order to be able to have a ball-park comparison be-
tween our approach and the current status quo in decen- Let ΩEthereum be the Ethereum main network, n be
tralized application architecture, we proceed by model- the number of transactions and m the number of full-
ing the worst-case time complexity both for a single node clients within in the network.
ΩSystemN ode as well as for the whole system ΩSystem and The time complexity of processing a single transaction
both as functions of the number of state transitions (i.e., on a single node is a function of the code that has its
transactions) n and the number of nodes in the system execution being triggered by the given transaction plus
m. a constant:
c+n
a
per transaction. The time complexity in big-O notation
per node as a function of the number of transactions is
ft
(5.1)
ity per node as
that is
c+
n
X
i=0
ftxi (n, m)
(5.6)
Dr
therefore: whereas users are incentivized to hold the average com-
plexity favg (n, m) of the code being run by Ethereum
ΩBitcoinN ode ∈ O(n2 ) (5.2) small since execution has to be payed for in gas and which
is due to restrictions such as the block
Pn gas limit. In other
The complexity handled by one Bitcoin node does not 11 words, because of the complexity i=0 ftxi (n, m) being
depend on m the number of total nodes of the system. burdened upon all nodes of the system, other systemic
But since every node has to validate exactly the same properties have to keep users from running complex code
set of transactions, the system’s time complexity as a on Ethereum so as to not bump into the network’s limits.
function of number of transactions and number of nodes Again, since every node has to process the same set of
results as all transactions, the time complexity of the whole system
then is that of one node multiplied by m:
ΩBitcoin ∈ O(n2 m) (5.3)
ΩEthereum ∈ O(nm · ftxi (n, m)) (5.7)
Note that this quadratic time complexity of Bitcoin’s
transaction validation process is what creates its main
bottleneck as this reduces the network’s gossip band-
width since every node has to validate every transaction C. Blockchain
before passing it along. In order to still have an average
Both examples of Blockchain systems above do need
a non-trivial computational overhead in order to work
10
at all: the proof-of-work, hash-crack process also called
For the sake of simplicity and focusing on a lower bound of the
mining. Since this overhead is not a function of either
system’s complexity, we are neglecting all nodes that are not
crucial for the operation of the network, such as light-clients and the number of transactions nor directly of the number of
clients not involved in the process of validation nodes, it is often omitted in complexity analysis. With
11 not inherently - that is more participants will result in more the total energy consumption of all Bitcoin miners today
transactions but we model both values as separate parameters being greater than the country of Iceland [Coppock17],
11
A.
C. Money
1. all the other sys functions...
mutual-credit vs. coins where the complexity of
the transaction is higher, complexity may be O(n2 ) or Appendix C: Patterns of Trust Management
O(log(n)) see holo currency white paper: [? ]
Tools in Holochain available to app developers for use
in Considered Requirements, some of which are also used
VII. IMPLEMENTATION
at the system level and globally parameterized for an
application:
At the time of this writing we have a fully operational
implementation of system as described in this paper, 1. Countersigning TODO
that includes two separate virtual machines for writing
DNA functions in JavaScript, or Lisp, along with proof- 2. Notaries TODO – “The network is the notary.”
of-concept implementations of a number of applications 3. Publish Headers e.g. for chain-rollback detection
including a twitter clone, a slack-like chat system, DPKI,
and a set mix-in libraries useful for building applications. 4. Source-chain examination. TODO
13
5. Blocked-lists. e.g. DDOS, spam, etc ments/passports/identity cards within the agent
entry (second entry in X ).
6. ... more here...
• Proof-of-Service
Cryptographic proof of delivery of a service / host-
ing of an application. We intend to leverage this
Appendix D: Membranes technique with our distributed cloud hosting ap-
plication Holo, which we will build on top of
Holochain. See our Holo Hosting white paper for
• Invitation much more detail [? ].
One of the most natural approaches for membrane
crossing in a space in which agents provide identity • Proof-of-Work
is to rely on invitation by agents that are already If the application’s requirement is not anonymity,
in the membrane. This could be invitation: other than the cryptographic hash-cracking work
applied in most of the Blockchains, this could also
– by anyone be useful work that new members are asked to con-
tribute to the community or a puzzle to proof do-
– by an admin (that could either be set in the main knowledge. Examples are:
application’s DNA or a variable shared within
the DHT - both could be mutable or constant) – Test for knowledge about local maps to proof
citizenship
– by multiple users (applying social triangula-
tion) – DNA sequencing
– Protein folding
• Proof-of-Identity / Reputation – SETI
Given the presence of other applications/chains,
these can be used to attach the identity and its
reputation in that chain to the agent that wants
to join. Since this seems to be a crucial pillar of
the ecosystem of Holochain applications, we plan to
a
deliver a system-level application called DPKI (dis-
tributed public key infrastructure) that will func-
tion as the main identity and reputation platform.
ft – Publication of scientific article
• Proof-of-Stake / Payment
Depost or payment to have agent certified.
• Immune System
Blacklisting of nodes that don’t play by the appli-
cation rules.
Dr
A prototype of this app was already developed prior
to the writing of this paper. ACKNOWLEDGMENTS
[DUPONT] Quinn DuPont. Experiments in Algorithmic Financial Cryptography and Data Security, Springer Ver-
Governance: A history and ethnography of The DAO, a lag 2016
failed Decentralized Autonomous Organization [Bitcoin Reddit] /u/mike hearn, /u/awemany, /u/nullc et al.
http://www.iqdupont.com/assets/documents/ https://www.reddit.com/r/Bitcoin/comments/
DUPONT-2017-Preprint-Algorithmic-Governance.pdf 3a5f1v/mike_hearn_on_those_who_want_all_scaling_
[EIP-150] Gavin Wood. Ethereum: A Secure Decentralised to_be/csa7exw/?context=3&st=j8jfak3q&sh=6e445294
Generalised Transaction Ledger. Reddit discussion 2015
http://yellowpaper.io/ [Marir2014] Marir, Toufik and Mokhati, Farid and
[Kademlia] Petar Maymounkov and David Mazieres Kadem- Bouchelaghem-Seridi, Hassina and Tamrabet, Zouheyr”,
lia: A Peer-to-peer Information System Base on the Complexity Measurement of Multi-Agent Systems”, Mul-
XOR Metric tiagent System Technologies: 12th German Conference,
https://pdos.csail.mit.edu/~petar/papers/ MATES 2014, Stuttgart, Germany, September 23-25,
maymounkov-kademlia-lncs.pdf 2014. Proceedings, Springer International Publishing
[Zhang13] Zhang, H., Wen, Y., Xie, H., Yu, N. Distributed 2014
Hash Table Theory, Platforms and Applications https://doi.org/10.1007/978-3-319-11584-9_13
[Croman et al 16] Kyle Croman, Christian Decker, Ittay [Coppock17] Mark Coppock THE WORLDS CRYPTOCUR-
Eyal, Adem Efe Gencer, Ari Juels, Ahmed Kosba, An- RENCY MINING USES MORE ELECTRICITY THAN
drew Miller, Prateek Saxena, Elaine Shi, Emin Gn Sirer, ICELAND
Dawn Song, Roger Wattenhofer, On Scaling Blockchains, https://www.digitaltrends.com/computing/
14
a ft
Dr