Functor Network Docs
  • Welcome to the Documentation Site
  • Overview
    • What is Functor Network?
    • Why Functor Network?
    • How is Functor enabling the onchain autonomous world?
    • Who can use Functor Network?
  • GETTING STARTED
    • Getting Started
  • USE CASES
    • Omnichain Automation
    • Liquidity Abstraction
    • Access Control
    • Key Management
    • Programmable Signing
    • Enterprise Integration
  • CORE CONCEPTS
    • Glossary
  • Resources
    • FAQs
  • COMMUNITY & CONTRIBUTION
    • Community & Contribution
Powered by GitBook
On this page
  • Going more in depth: Light Node Infrastructure​
  • Functor is seamlessly readable cross-chain​
  • Footnotes​
  1. Overview

What is Functor Network?

PreviousWelcome to the Documentation SiteNextWhy Functor Network?

Last updated 5 days ago

Functor1 Network, at its core, is a keystore (KS) rollup.

A minimal keystore rollup is a cross-chain for smart wallet keys, and other configurations. It is minimal in that its nodes need only to manage this simple , and not balances nor smart contracts. This has the following simple consequences:

  • Nodes are : This means they can be run in lightweight devices such as raspberry pis, mobile apps and web browser extensions. This is thanks to being designed as a 2, as well as its being ultra-specialized to just the task of holding Smart Contract Wallet configurations and nothing more.

  • Its simple state is readable from everywhere: Due to the simplicity of its state, fast updates (through zero-knowledge proofs) and verifications can be done across any L2 through syncing keystore smart contracts on each L2. For censorship-resistance, it's also possible to directly to the keystore smart contract on the L1.

Going more in depth: Light Node Infrastructure

Every node in a traditional blockchain has at least the following components:

  • Execution client: To process incoming transactions.

  • Consensus client: To settle in the correct state of the blockchain in a decentralized way

  • State storage (i.e. data availability): To verify the current state of the blockchain from historic data.

In designs, these components can be decoupled. For example, data availability layers such as Celestia and Eigenlayer DA exist. For consensus, cryptoeconomic security from other systems can be used through (Eigenlayer AVS), delegating all consensus rule checking and slashing logic outside the node.

This means that network nodes become much lighter and modular. As for Functor specifically, the execution client is significantly smaller too, since transactions do not call smart contracts nor keep balances, they just represent changes in the key-value database for sessions and wallet configurations such as creating, invalidating and updating permissions.

Here a diagram representing the node infrastructure:

The consensus client inside the node is as minimal as it needs to be just to communicate blocks, while the latest key-value database is always available (along the rest of the blocks) in the data availability layer.

This allows nodes to be lightweight and run in low-end devices such as raspberry pis, mobile apps and web browser extensions.

Functor's state is settled on an L1 through a keystore smart contract, from which is synced into any L2 in a trustless way to their own L2 keystore smart contract.

This process is better appreciated in the next diagram

A session is created for a user (human or AI agent) who want to use specific permissions over some assets. This is done as follows:

  1. A transaction to Functor is sent, containing the permissions for the session key or global account being created.

  2. At the same time, either (a) the account is being deployed on however many L2s the user wants with the same deterministic address; or (b) a session signing key is produced capable of acting on permitted assets, verified on Functor.

  3. The proposed transaction is validates within a block by the consensus layer.

  4. After this batch of transactions are consented, The key-value database is updated, and the merkle tree root is settled on the L1, as well as all data made available through a data availability layer.

  5. Finally, This state is synced to every L2 with a L2 Key Store contract.

Functor is seamlessly readable cross-chain

Both of these contracts keep the state root of the whole key-value database, in a representation. This are verified for every transaction a smart contract wallet want to make, to make sure their transaction respects the configurations they stored in Functor (sessions, authentication logic, etc.)

VERIFICATION INTEGRITY AND LATENCY The state roots are verified through merkle proofs, with addition of latency-optimizing techniques such as a buffer of beacon roots on the L2 to verify block hashes against beacon root proofs. This is all done without trusting any specific sequencer, since Functor is designed as a , which uses L1 proposers for sequencing, being decentralized by nature.

Footnotes

The mathematically inclined reader might be already relating the mathematical concept of a with our solution. We bridge the gap between the category of AIs and of decentralized systems.

Where responsibilities of , and are separated modularly.

​
read-efficient merkle tree
vanilla based rollup
​
functor
consensus
data availability
execution
key/value store
session keys
key/value database
lightweight
modular blockchain
execution client
force include
​
modular blockchain
restaking