Editor’s Note: You are viewing outdated material from the DFINITY blog that is being preserved for archival purposes.

If you follow the DFINITY project, you will know that it is conceived as a sister network for Ethereum, where a new “The AI Is Law” paradigm provides a complementary alternative to traditional networks pursuing “The Code Is Law”. The DFINITY project also introduces potentially revolutionary new cryptography and protocol techniques relating to performance and scaling, such as Threshold Relay, which it hopes can be reused within Ethereum too. DFINITY delivers on “The AI is Law” using a Blockchain Nervous System (BNS) as explored in an earlier article. This is an omnipotent hybrid AI system that rejects or approves and then executes proposals anyone can submit for a fee, making use of new privileged instructions added to the Ethereum Virtual Machine (EVM) that allow it to modify economic parameters, upgrade the protocol, freeze miscreant contracts and run arbitrary code that applies the instructions to reverse or ameliorate damaging hacks such as The DAO. In as much as the BNS can have objectives, it is driven to defend the value of dfinities over the long term and the markets act as a kind of dopamine.

In the earlier article I covered the basic mechanisms of the system but did not explore how we might extend the system by incorporating traditional AI techniques. Before proceeding to add notes on such interesting ventures, let’s quickly recap how the basic system works (skip these points if you are already familiar with how the BNS works — and otherwise also consider reading the earlier article, which also has pictures).

Proposals are submitted to the BNS and these are either rejected or adopted and executed (it can also choose between competing options, but this will be addressed in the next post).

The BNS decides by processing the voting outputs of “neurons”.

Neurons owners receive rewards for their neurons voting. Users create new neurons by depositing dfinities, with a neuron’s voting power and potential rewards being proportional to the dfinities locked inside.

You must dissolve a neuron to retrieve the dfinities you locked inside, which takes some months. Neuron owners are thus motivated to configure their neurons so that the BNS makes good decisions, as the value of the trapped dfinities will otherwise be punished by the markets.

A user manages his neuron(s) using special client software that can be run from a laptop or other personal device. This is configured with the neuron’s “voting key”.

The software makes it easy to browse proposals, configure neuron behavior and see how/why the neuron voted (see the previous article for pics).

Proposals are submitted to the on-chain smart contract components of the BNS on different topics such as “governance”, “economics”, and “protocol upgrades”.

For the most part, users configure their client software so that it makes their neurons vote automatically in response to the voting activity of other neurons. This is achieved by configuring “follow relationships”.

For example, with respect to “protocol upgrade” proposals, a user might configure their neuron to automatically follow a neuron whose address a core developer advertised in a reddit post.

Many different kinds of follow relationships can be configured. A simple type of configuration involves a neuron waiting for a default period when it sees a new proposal (allowing the owner to vote manually if they want) and then examining a priority list for votes it can follow. If the first neuron has voted, it follows, and otherwise it backs off. It then checks to see if either of the first two neurons has voted, following the highest priority if one has and otherwise backing off ad infinitum. More complex configurations involve quorums and scoring.

The BNS uses the votes made by neurons to make decisions using Wait For Quiet rather than a simple quorums — it always decides and can do so quickly.

For each proposal, eventually the BNS cascades to a decision. The process is non-deterministic since network timing can affect the outcome.

The follow relationships encapsulate trust and make it possible for crowd wisdom to be processed algorithmically. Because these relationships are only configured and applied inside the neuron client software that is distributed around the edges of the network, the graph of relationships is unknowable.

Since the follow relationships are unknowable, the BNS is a black box and it is not possible to determine why it voted some way, or which neurons might hold the key to a future proposal being adopted. This is an essential property. It means that an adaptive adversary cannot target specific neuron owners with manipulation, threats, blackmail or bribes and they cannot be held accountable, for example by someone who might wish to sue them after their smart contract was frozen, or held responsible for a decision by a government.

The BNS will learn from market feedback. For example, imagine a demagogue on reddit persuaded numerous neuron owners to configure their neurons to follow his en masse (for example with a “Make DFINITY Great Again” campaign in which he advertised some public neuron address…) and then as a result of his influence a dumb proposal was adopted and executed. The markets would not be fooled for long and react negatively, leading people to examine how/if their neurons voted for the proposal. The neuron of the demagogue would be removed from follow relationships, and over time through such actions, the follow relationships shall tend towards more optimal forms.

Now finally to the point of this post. While most neurons will vote automatically by processing the output of others, there must always be origin voters that initiate the cascades. Typically, these will be controlled by influential, knowledgable and responsible people, such as core developers and industry figures, but since they are programmatic constructs there is no reason they cannot be controlled by systems built using traditional AI technologies. This is not nearly as complex as it might seem.

For the purposes of explaining, I will talk about using a rather basic mechanism called a Bayesian classifier. Using the probability theories of Thomas Bayes (1702–1761), these systems can be trained to intuit the probability of some piece of data belonging to different classes. Perhaps most famously, they are responsible for the decrease over the years in the spam that appears in your InBox — for example, when you classify an email on Gmail as being spam, this feedback information is used to improve its classifiers so that they better automatically identify spam in the future and move it to your Trash. Furthermore, the systems are used for tasks such as producing an online advert that, given your profile data, you are most likely to click on(!).

So to finish the article before you get bored, let’s imagine that the BNS were extended such that neuron owners can rate the quality of past decisions some time after their effects on the markets might have become clearer. If well designed this can provide powerful training feedback that in combination with the data points inside proposals (and indeed other contextual data) might allow a classifier to decide upon whether they are likely to be “good” or “bad”. This can be input into the system to help decide on proposals by — you guessed it — connecting the classifier to a neuron.

Trivially, a user might advertise the address of a neuron controlled by a classifier such that others who like its voting record can incorporate it into follow relationships. In practice, we’d prefer that such classifiers are oraclized so that a single trusted operator cannot simply override them to circumvent an opinion they do not like. They should not be considered independently intelligent enough to be directly followed in a priority list, and instead be applied within follow relationships using scoring mechanisms where they only exert influence. Nonetheless, it is a relatively short and easy journey that must be traveled to integrate traditional AI technology by connecting them to neurons in such a manner, and it may even be possible to incorporate such techniques into the system quite early on. If DFINITY Stiftung has spare resource, it may even shoot to complete a PoC for the Copper release. We’re also keen to hear from people with ideas about how traditional AI can be applied within the BNS.

NEXT POST: we will explore more complex algorithms that the BNS can use to decide. Currently I’m thinking this will probably examine how “pairwise voting” can be used to efficiently choose the best option amongst several competing proposals that aim to achieve the same result (such as proposals submitted, say, in response to some earlier decision declaring a bug or feature bounty). Stay tuned ;)