Concepts

Digital Objects

Digital Objects are arbitrarily programmable state machines that can be passed around between Internet users. Concretely, they exist as files containing data and code, in any encoding. The data encodes an arbitrary state (with arbitrary hierarchical structure and of arbitrary size), and the code specifies a set of state transition functions that are allowed for this particular object--i.e. rules that govern how this particular object came to be, and how it can and cannot be modified from its current state. The "type" of a Digital Object is uniquely identified by its state transition function.

The rules governing one DO may also express its allowed relations to other types of DOs--for example, one DO might specify that its creation requires the consumption/deletion of other DOs of certain types; a DO may also specify that it may only update in a certain way if simultaneously another DO of a related type is updated in a specific way in lockstep.

Every Digital Object is uniquely identified by an ID, and at any given time has a single canonical state. A mechanism exists such that, if there is ever a dispute between two users on the network on the state of a particular object, that dispute can always be unambiguously resolved from an objective network-level point of view requiring and leaking no special permissions or information, within about sixty seconds.

For a Digital Object to be live and usable, it is sufficient that a single person on the network possesses its contents--its current state and state transition function. Furthermore, any such person who possesses the contents of a Digital Object can modify it according to those rules; and any person who does not possess the contents of a Digital Object does not know anything about the Object (its contents, its type, or its state transition function) other than the fact that an Object of that ID exists on the network somewhere.

User capabilities

Any digital entity--a person, a business, a bot, an LLM agent--can be a user of the Digital Objects Network. Specifically, a user can access the network and interact with Digital Objects so long as they have the capability to perform a handful of specific cryptographic operations (mostly hashing and zero-knowledge proofs, which can be performed in seconds on a modern consumer laptop), and an Internet connection.

Concretely, any user who satisfies those requirements can:

  • Create a new Digital Object.
  • Execute the state transition function of a Digital Object (or a group of Digital Objects, if their state transition functions specify that they may only mutate via a multi-Object transaction).
  • Destroy a Digital Object, provided that they meet the conditions for destruction according to the Object's code.
  • Receive a Digital Object, meaning that they may receive an encoding of the state and code for a particular Object from another user. Once the receiver possesses a copy of the Object, they themselves now have the ability to Execute, Destroy, and Send this Object--notably, they may now have the ability to revoke those permissions from the original sender.
  • Send a Digital Object, meaning that they may send to another user the state and code for a particular Object.
  • Resolve a Digital Object, meaning that they can check a Digital Object that they possess for integrity (its state transition function has always been correctly executed in the past leading up to this point) and consistency (that its particular state at this point in time is valid and canonical according to an objective network-level view).
  • Present a Digital Object, meaning that they can respond to queries from others about an Object they possess, with cryptographically verifiable correctness.

Additionally, users who don't have the ability to perform cryptographic operations, or who don't have an Internet connection, can still participate partially. For example, users without an Internet connection can still Create and Present new Digital Objects in a limited fashion, and users without access to certain cryptographic capabilities may still Receive and Resolve a Digital Object from other users.

Network requirements

For the network to remain live and operational, the following two requirements must be met:

  • The Ethereum Data Availability network must be live. (The network makes use of Ethereum blobspace as a publicly-accessible broadcast channel.)
  • At all times, at least one Digital Objects Network user with access to upper-end consumer-grade hardware must be operating a piece of software infrastructure called a synchronizer.
    • Operating a synchronizer is not a permissioned role and confers no special network privileges. It's roughly analogous to how a file on the BitTorrent network is available if there is at least one seeder.
    • Many people can operate synchronizers, and this will not cause any conflicts.

The Architecture chapter describes the components that realize these guarantees.