Glossary

Terminology used in RGB sorted in alphabetical order

Anchor

Set of client-side data that proof the inclusion of a unique commitment inside a transaction. In RGB protocol it is constituted by:

  • The Bitcoin transaction ID of the witness transaction.

  • The Multi Protocol Commitment - MPC

  • The Deterministic Bitcoin Commitment - DBC

  • The ETP in case of Tapret commitment scheme.

AluVM

Acronym of Algorithmic logic unit Virtual Machine, it is a register-based virtual machine for smart contract validation and distributed computing, used but not limited to RGB contract validation.

Link

Assignment

The RGB-equivalent of a transaction output modifying, updating or creating some properties of the state of a contract. It is formed by:

Link

Business Logic

The set of operation and rules contained in a contract Schema which allows for the rightful update of the contract state.

Client-side Validation

The operation which allows the verification of some data exchanged between parties according to some defined protocol rules. In RGB protocol these data are in form of consignment; the above data can be exchanged privately between the parties involved as, unlike Bitcoin protocol, they don't need to be registered on a public medium (e.g. the blockchain).

Commitment

Cryptographic process which consist in the creation of a fixed size fingerprint (comcom) derived from some structured data (msgmsg). The commitment can be registered in a defined publication medium (e.g. the blockchain) and consists of two operations:

  • Commit operation, which takes as inputs a public message msgmsg and a random value rr, and by applying to them the chosen cryptographic algorithm returns a value com=commit(msg,r)com = \text{commit}(msg, r).

  • Verify operation, which takes the value returned by the commit algorithm comcom, the public message msgmsg and the secret value rr and returns True/False. verify(msg,r,com)(True/False)\text{verify}(msg, r, com) \rightarrow (\text{True} / \text{False}).

The commitment algorithm is required to possess two fundamental security properties:

  • Binding: requires that there cannot be two valid messages of the same commitment comcom. That is, it is computationally unfeasible to produce different msgmsgmsgmsg' \: | \: msg' \neq msg and rrrr' \: | \: r' \neq r such that: verify(msg,r,com)=verify(msg,r,com)True\text{verify}(msg,r,com)=\text{verify}(msg',r',com) \rightarrow \text{True}

  • Hiding: requires that msgmsg cannot be easily discovered by commitment attempts, i.e., that rr be uniformly sampled in a set RR such that it is statistically independent of msgmsg.

Consignment

The data transferred between parties that are subject to client-side validation. In RGB there are 2 types of consignment:

Container

The RGB format through which stash data are packed and exchanged between users.

Contract

A set of rights established and executed digitally between certain parties through RGB protocol. A contract possesses an active state and business logic, expressed in terms of ownership rights and executive rights. The contract state, rights and conditions of valid operations are defined using RGB schema. Only state and operations which allowed by the schema declarations and validation scripts are allowed to happen within the contract scope.

Contract Operation

An update to the contract state performed according to the rules defined in the contract schema.

Contract operations include:

Contract Participant

An actor which participate in contract operations. Contract parties are classified into the following categories:

  • Contract issuer: an actor creating contract Genesis.

  • Contract party: all actors which have some ownership rights over RGB contract state which have been provided trough an Assignment.

  • Public party: an actor which is able to construct State Extensions. Can exist only in contracts providing Valencies to be redeemed by State Extension.

Contract Rights

RGB contract parties have a different rights as a part of the contract conditions defined through RGB Schema. The rights under RGB contract can be classified into the following categories:

Contract State

The set of up to date, private and public information manifesting the condition of a contract at a certain point in history. In RGB the contract state is constituted by:

Deterministic Bitcoin Commitment - DBC

The set of rules which allows for the registration of a provably single commitment in a Bitcoin transaction. Specifically, RGB protocol embeds 2 forms of DBC:

Directed Acyclic Graph - DAG

A directed graph which do not contains any directed cycle thus allowing topological ordering. A Blockchain or an RGB Contract Shard are examples of DAG.

Wikipedia link

Engraving

An optional fingerprint that past owners of a contract can register allowing verification of following users. It is implemented in RGB21 interface.

Extra Transaction Proof - ETP

The part of the Anchor which embeds the additional data necessary for the validation of tapret commitment contained in a taproot transaction, such as the internal PubKey and the Script Path Spend.

Genesis

The set of data, regulated by a contract schema, which represent the starting state of every contract of RGB. It's the equivalent of Bitcoin Genesis Block at the client-side level.

Link

Interface

The set of code instructions that allows to transform the compiled binary data of contracts Schema, Contract Operation and States in user and wallet-readable information.

Link

Interface Implementation

The set of code declarations which bind an Interface to a Schema and making possible the semantic translation operated by the Interface itself.

Invoice

A base58 encoded string, which support URL scheme capabilities, embedding the necessary data in order to allow a payer counterpart to construct a State Transition.

Global State

The set of public properties included in the state of a contract, defined in Genesis and optionally updatable according to the rule defined therein, which are not owned by any party.

Link

Lightning Network

A decentralized network of bidirectional payment (state) channels constituted by 2-of-2 mutisig wallet constructing and updating off-chain transactions. It represents a popular Bitcoin Layer 2 scaling solution.

Link

Multi Protocol Commitment - MPC

The Merkle Tree structure used in RGB to include in a single commitment into the Bitcoin Blockchain multiple Transition Bundles of different contracts.

Link

Owned State

Part of the state of a contract enclosed into an Assignment which contains definition and type of the property of a contract subjected to someone's ownership.

Link

Ownership

The control and thus the possibility to spend an UTXO to which some client-side property are assigned.

Partially Signed Bitcoin Transaction - PSBT

A transaction which lacks some element of its signature and which can be completed / finalized with some additional elements later in time.

Link

Pedersen commitment

Particular type of cryptographic commitment that has the property of being homomorphic in respect to addition operation. This means that given a certain commit\text{commit} function, it is possible to verify the commitment given by the sum of two data without revealing the data itself. That is, given msg1msg_1, msg2msg_2, r1r_1 and r2r_2, if com1=commit(msg1,r1)com_1 = \text{commit}(msg_1,r_1) and com2=commit(msg2,r2)com_2 = \text{commit}(msg_2,r_2):

com3=com1+com2=commit(msg1+msg2,r1+r2)com_3 = com_1 + com_2 = \text{commit}(msg_1+msg_2,r_1 + r_2)

So it is possible to verify the without revealing the individual summed values. This operation turns useful in order to conceal the amounts of tokens transacted.

Article Link

Redeem

A construct present in State Extension which reference a previously-declared Valency.

Schema

A declarative piece of code which contains the set of variables, rules and business logic according to which an RGB contract works.

Link

Seal Definition

The reference part of an Assignment which bind the commitment to an UTXO belonging to the new owner.

Link

Shard

A branch of the DAG chain of the RGB State Transitions.

Single-Use Seal

A promise to commit to a yet unknown message in the future, once and only once, such that commitment fact will be provably known to all members of a certain audience.

Link

Stash

The set of client-side data related to contract which have undergone validation and are stored by the users.

State Extension

A contract operation which allows for the redeeming of some Valencies. It needs to be closed by a State Transition in order to put in effect the changes to the contract expressed by the Valencies.

Link

State Transition

The most important contract operation which make possible the transition of an RGB State to a New State, changing state data and/or ownership.

Link

Taproot

The Bitcoin's Segwit v1 transaction format detailed in BIP341 and BIP342.

Terminal Consignment - Consignment Endpoint

A transfer consignment which include the last state of a contract embedding the State Transition constructed from a payee counterparty invoice.

Transition Bundle

A set of RGB State Transition, belonging to the same contract, which are constructed by different parties closing their seal in a single operations.

Link

UTXO

A Bitcoin Unspent Transaction Output. It is defined by a transaction hash and and index which, collectively, constitute an outpoint.

Valency

A public rights having no state but which can be referenced and redeemed through a state extension.

Link

Witness Transaction

The transaction which provide the Seal closing operation around a message which contains the RGB commitment to a State Transition.


Last updated