Neutro Yellow Paper — “Reaching a Consensus Regarding Blockchain-exogenous values” chapter

This chapter of the Yellow Paper is pretty easy, I believe, to understand, so we won’t dive into the ideas presented there. If I were to give a very short-version presentation of the concept, I would ask and answer two questions about it:

I. How does it work?

The voters can include a limited amount of data, any data, in their votes. In each main-chain block a Schelling Point scheme is performed. Votes that voted too far from the outcome of that Schelling Point scheme are prevented from voting for some time. That time depends on how far were they from that outcome (median of values voted for a given data point).

Smart contracts, in turn, can include in their logic simple IF… THEN rule, where the condition to be met is meeting some threshold of votes in some period of time (range of blocks) that voted for some value and, depending on the outcome of that Schelling Point scheme, a certain logic of the smart contract is executed. Let’s say: if >x votes voted for some value during a period from block Y to block Z and the outcome of that is >1, then all the Neutro tokens allocated in the smart contract would be sent to address A; if it’s <1, they would be sent to address B.

Smart contracts publish information about how much they are willing to pay for a certain data (e.g. for one vote, voting for a specific value) and they’ll need to pay once that data is provided by a voter in a proper way; voters, in turn, can include in their votes information on how much they want for the data they include. Once conditions from both sides are met, everything works.

II. Why it works?

For two reasons. Firstly, the smart contract can put an arbitrarily big requirement for the amount of votes that must vote for a specific value in order for the smart contract’s programmed logic to be executed — the bigger this amount, the more of the consensus-reaching network is engaged in the process and the more difficult it is to corrupt that subset of network participants. Secondly, the engaged values’ validators are unknown beforehand, before the actual validation of value takes place using the Schelling Point scheme. So, logically, if you engage 80% of the network to validate some value, you would need to corrupt (ok, that’s a big simplification, but we won’t do math for that) about half of that; you would need to corrupt 40% of the network (voters in our case). And those voters are unknown, anonymous. They are also invested in the network in long-term, because of the nature of validation tokens as a share in future expansion of the main Neutro token supply (described in detail in the Yellow Paper). How are you going to corrupt them?

Ok, fine. But why do we need the censorship-resistant, corruption-resistant and decentralized way of reaching consensus on external values, like the weather in California on 1st May 2021 or price of 1 Bitcoin in USD on 20th March 2024? Why would the smart contract need it, if we have oracles?

Well, oracles are centralized. If you have a decentralized Daap that uses a centralized Oracle for its functioning, then you’re no better than a centralized service provider. You are no more decentralized, no more censorship-resistant, no more manipulation-resistant than Facebook for example. Not even a bit. And for most applications it’s fine, but blockchain was created to be trustless; trust necessitates power and blockchain is, was and will always be about taking trust along with power from the equation.

So if you want to create a decentralized exchange, insurance company or plain betting platform on the blockchain and create it in such a way that it is trustless — you’ll need this.

Blockchains that allow for Daaps are like a “world computer” (that’s a great comparison made by Ethereum for the first time, I believe — correct me if I’m wrong). But how great is your computer without an access to the Internet? It’s fine for some things, maybe writing some documents or something. But you would agree that it’s no more that maybe 5% of the device’s potential once it’s connected to the Internet, wouldn’t you? So it is with blockchain. We want a trustless way of data-feeding with external data, we want to make a “world computer that’s connected”. So that’s the difference.