Incubed is highly optimized for small devices and microcontrollers (running with only 128kb RAM).
A single Incubed client is able to connect to several blockchains simultaneously.
Incubed does not rely on trust. Incubed verifies responses based on proofs delivered by nodes of a decentralized network.
No central server. All permissions are managed by cryptographic keys.
The client does not need to sync, which means you can turn on the device and start using it.
Based on a decentralized network, meaning zero downtime.
Why the Incubed client?
The Incubed client connects in a fully decentralized manner to a blockchain and can verify and validate all information by itself.
How does it work?
The IoT Layer connects devices to the blockchain in order to control access.
The client acts statelessly. The only information needed to be stored and updated by the client is the list of nodes in the network. This list is obtained from the network’s registry contract.
The Incubed network is a decentralized, permissionless network. Anyone can set up a node on the network by registering with a smart contract called the registry. Nodes store a deposit, which they lose upon signing false blockhashes. Each node is incentivized to deliver correct and fast responses through scoring and micropayments.
The client sends a JSON-RPC-Request to a randomly chosen node along with an optional list of validator nodes. The node executes the request and prepares the data needed to verify the result. This date includes full blockheaders and, in the case of an eth_call, the call is analyzed and all needed values from the state are added, including the complete Merkle Proof. Typically, the signatures of all validators sign the same block number and blockhash. By doing so, these validators risk their previously stored deposit in case they give a faulty hash, as these signed blockhases can be used to convict the signer directly in the registry contract.
This allows the client to verify the response by replaying the transaction in a local EVM and validate all values by using Merkle proofs.
Watchdogs are nodes that constantly test other nodes with requests asking for the blockhash. If they give a false hash, the tested node is convicted in the registry and loses its deposit.
Virtually any node can act as a watchdog for other nodes.