The Incubed Client
Incubed is highly optimised for small devices and microcontrollers (running with only 256kb 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 decentralised 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 means zero down time.
Why the Incubed Client?
Securely connecting a device to the blockchain requires a secure, interoperable client.
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 store and update the client, is the list of nodes in the network. This network’s registry contract.
The Incubed network is a decentralised, 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 incentivised to deliver correct and fast responses through scoring and micro payments.
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. In most cases this means
- the full blockheader
- in case of an eth_call, the call is analylised and all needed values from the state are added, including the complete Merkle-Proof
- the signatures of all validators sign the same blocknumber and blockhash. By doing so, these validators risk their previously stored deposit in case they give a faulty hash, as these signed blockhashes can be used to convict the signer directly in the registry-contract.
This allows the client to verify the responsde by replaying the transaction in a local EVM and validate all values by using Merke-Proofs.
Watchdogs are nodes that constantly test other nodes with requests asking for the blockhash. If they give a false hash, the tested nodes lose their deposit.
Virtually any node can act as watchdog for other nodes.