Enabling off-chain artificial intelligence for Ethereum with iExec

What is Artificial Intelligence ?

Artificial Intelligence is commonly understood as the capacity for a machine or a system to mimic a human-like intelligence through cognitive processes like “learning” and “problem solving”. In the field of computing, the technologies closest to this paradigm are machine learning and deep learning. However, more generally, AI represents the ability of a system to act with “intelligence”, that is to present a logic of resolution relatively complex and high-level to a problem in order to achieve a specific objective. Such a definition allows to integrate many other technologies that belong to the field of Artificial Intelligence, including voice recognition, natural language generation, virtual agents, biometrics and decision management. If you’re interested in AI, we recommend to read up the posts about demystifying AI by Ben Dickson.

Ethereum limitations for Artificial Intelligence

The blockchain responds efficiently to the problematics of “trusted third party” and transaction security but what about performance?

Ethereum through its smart contracts enables execution of programs on its blockchain. Solidity, the language to develop smart contracts is Turing-Complete, that is to say is able to describe any algorithm that would run on a computer. Knowing that, we may want to deploy any program or game on the blockchain. However, because the Ethereum virtual machine has limited computing capabilities, the execution of demanding processing cannot be accomplished.

Let’s take as an example a chess game. Among other things, the game needs some logic control to detect if a move is valid or not and whether a game is over or not. Even detecting the checkmate or stalemate for every move is very costly, and cannot be computed on chain. It requires too much processing to be provided by the blockchain. This blog post explains the problem very accurately.

The solution to benefit from the advantages of the blockchain while still using demanding programs is to use an hybrid solution by deporting the program execution, requiring processing power and memory the blockchain can’t provide, off-chain. In other words, the costly tasks would run on an infrastructure dissociated from the Ethereum blockchain but interacting with it and using it as the reliable canal of communication between a client and the program. That’s what iExec offers.

Stockfish

Stockfish is a chess engine based on Glaurung, another open source chess engine created by Tord Romstadis and released on 2004, and is considered to be one of the strongest free chess engines available today. We have deployed Stockfish on iExec infrastructure allowing interaction with it through a smart contract. The smart contract stores the game for each player but doesn’t achieve any chess processing. It simply allows communication between a client and the chess engine.