ScyNet tech update #3: P2P Validation Protocol

Apr 29, 2019 | Tech Update

Blockchain protocol — More ways to publish and report ScyNet agents

Validating AI Agents

The latest idea for validation within the ScyNet network, included computational nodes who submit their best agents (AI solutions) to compete in tournaments. Tournaments are blockchain processes that cryptographically verify the performance of the participating agents, rewarding the best ones. Only so external clients utilize dependable AI agents.

In theory, this sounds great, but it actually creates a lot of practical complications and deadlock scenarios. Tournaments require a separate Tendermint-based blockchain network for each domain (AI problem) type, yet we want to have a single, unified ScyNet token. One way to counter this is to create an ERC20 contract somewhere and then use Cosmos’s IBC protocol to allow people to transfer tokens from that main chain to domain chains.

Even if this works perfectly fine, consider the following scenario. Person A wants to create a new domain type, so he modifies our controller code and generates the Tendermint chain. He uses IBC to transfer 10 ScyNet tokens in this new Tendermint chain and stakes them to become the first validator in this network. Then comes person B, who transfers 30 ScyNet tokens to the same chain, also becoming a validator. Since B holds more than ⅔ of the consensus power in this small chain, he could easily withdraw any ScyNet tokens he wants from this chain to the main chain, including stealing A’s stake.


We don’t want to have this significant risk in the creation of new domain networks, which is why we’re making tournaments optional. Here’s how. First, let’s forget about any custom blockchains — we have a couple of ScyNet nodes, each one specializing in specific AI problem. Each one of those announces its existence in a global smart contract (for example, somewhere on Aeternity mainnet). Harvesters use this contract to publish their data agents. Miners purchase access to this data and publicly announce their most performant agents in this contract, self-reporting their performance.

This sounds great, but how can we trust that the reported performance of the agent is true? It’s a free market, and false-advertising your product will eventually lose your clients. However, there’s still a risk for the first clients of the agent. We can resolve this by introducing a P2P agent validation protocol. The client communicates with the agent’s hatchery node until the former is cryptographically convinced of the agent’s performance. We can implement this by having the client and the hatchery privately execute the tournament validation protocol to validate one particular agent. And since this is only between two participants, we do not need a separate blockchain network.

But what if a hatchery wants to compete with others in a Tournament? While not mandatory, that’s still possible. The hatcheries that wish to contest will form their own Tendermint-based blockchain network, transfer their participation fees through IBC, execute the standard Tournament process, distribute the Tournament reward, and then withdraw the ScyNet tokens back to the main chain. The risk to steal others’ tokens still remains, but since all tokens in circulation in this Tournament are high-risk anyways, the problem is not that significant.

It’s interesting how the problem of vulnerability on small Tendermint chains led us to this central connecting contract that allows for every vital ScyNet function, while still keeping the tournament functionality intact.

Next Steps

Our next steps are to run a ScyNet node end-to-end locally — with a “Harvester” to provide domain related data and a “Queen” to produce a constant flow of AI agents. (agent producer).

But if you’re nervously waiting, why not join our discord now and figure out what we’re up to?