Skip to content

Latest commit

 

History

History
21 lines (11 loc) · 4.17 KB

Roles.md

File metadata and controls

21 lines (11 loc) · 4.17 KB

Gordian Architecture Roles

A variety of roles can be funtionally partitioned within the Gordian Architecture. What follows is a bare listing of some of them:

Cosigner (aka Signing Device). Accepts partially signed or unsigned transactions (typically PSBTs on the Bitcoin network) and signs them, either as part of a single-sig or multisig transaction. This typically means that the Cosigner is also a Seed Vault, but this is not required: seeds could be hand-entered or scanned from another source whenever a signature is requested. This role was first demonstrated at Blockchain Commons in Gordian Cosigner and is now part of the more fully feature Gordian Seed Tool. Second-generation wallets, which are airgapped, such as the Foundation Devices Passport and the Keystone Pro also support the functionality.

Fee Calculator. Determines appropriate fees for uses of a blockchain network. There is no Blockchain Commons reference for fee calculation services. Sources such as bitcoinfees.earn.com and mempool.space provide the service, which is also often supported by a Network Server.

Network Server. Talks directly to a cryptocurrency network, accepting inputs of blocks and enabling transmission of new transactions. Typically a full node. De facto, also a Broadcast Coordinator, and so the role is not separated out. At Blockchain Commons, this is Gordian Wallet. In a self-sovereign scenario, a Bitcoin Core or Electrum server could also fulfill the role.

Policy Coordinator. Manages the creation of multisigs. Blockchain Commons' Gordian Wallet was an early example, but at this point we lean toward Sparrow as a more fully featured piece of software.

Pricing Calculator. Determines current values of cryptocurrencies, usually in fiat currencies. Blockchain offers the Spotbit microservice to fulfill this role.

Seed Generator. Creates new seeds. This typically means that the Seed Generator is also a Seed Vault, but this is not required: a highly partitioned architecture could separate out the functions for increased security. The prime examples that Blockchain Commons offers for partitioned seed generation are LetheKit and Gordian Seed Tool. Most hardware and software wallets also support seed generation, but in a non-partitioned way.

Seed Vault. Stores seeds securely. Gordian Seed Tool is Blockchain Commons' reference for seed storage. Hardware wallets, both first-generation connected wallets such as Ledger and Trezor and second-generation airgapped wallets such as Keystone and Passport, also provide the service.

Share Server. Stores one share of a sharded secret securely. This is a core element of the CSR system.

Transaction Coordinator. Creates transactions. Though Blockchain Commons' Gordian Wallet creates transactions, its role as a transaction coordinator is a bit dated. Instead, we suggest the Sparrow wallet as a released software wallet that can act as a transaction coordinator, interacting with a variety of Cosigners and Seed Vaults. (The difference between a "software wallet" and a pure "transaction coordinator", is that a "software wallet" can also hold keys, though proper partitioning moves keys to other devices.) We will soon be replaced Gordian Coordinator as a next generation replacement.