For Committee Members
Operations related to stealth transfer of value
Stealth Transfers enable users to maintain their finanical privacy against even
though all transactions are public. Every account has three balances:
- Public Balance - everyone can see the balance changes and the parties involved
- Blinded Balance - everyone can see who is transacting but not the amounts involved
- Stealth Balance - both the amounts and parties involved are obscured
Account owners may set a flag that allows their account to receive(or not) transfers of these kinds
Asset issuers can enable or disable the use of each of these types of accounts.
Using the "temp account" which has no permissions required, users can transfer a
stealth balance to the temp account and then use the temp account to register a new
account. In this way users can use stealth funds to create anonymous accounts with which
they can perform other actions that are not compatible with blinded balances (such as market orders)
Stealth transfers that do not specify any account id cannot pay referral fees so 100% of the
transaction fee is paid to the network.
Stealth transfers can have an arbitrarylly large size and therefore the transaction fee for
stealth transfers is based purley on the data size of the transaction.
||Provides a generic way to add higher level protocols on top of witness consensus
||Instructs the blockchain to attempt to sell one asset for another
||Used to cancel an existing limit order
||This operation can be used to add collateral, cover, and adjust the margin call price for a particular user
||This is a virtual operation that is created while matching orders and emitted for the purpose of accurately tracking account history, accelerating a reindex
||This operation can be used after a black swan to bid collateral for taking over part of the debt and the settlement_fund (see BSIP-0018)
||This is a virtual operation that is created while reviving a bitasset from collateral bids
Transaction Proposal Protocol
Echo allows users to propose a transaction which requires approval of multiple accounts in order to execute.
The user proposes a transaction using proposal_create_operation, then signatory accounts use
proposal_update_operations to add or remove their approvals from this operation. When a sufficient number of
approvals have been granted, the operations in the proposal are used to create a virtual transaction which is
subsequently evaluated. Even if the transaction fails, the proposal will be kept until the expiration time, at
which point, if sufficient approval is granted, the transaction will be evaluated a final time. This allows
transactions which will not execute successfully until a given time to still be executed through the proposal
mechanism. The first time the proposed transaction succeeds, the proposal will be regarded as resolved, and all
future updates will be invalid.
The proposal system allows for arbitrarily complex or recursively nested authorities. If a recursive authority
(i.e. an authority which requires approval of 'nested' authorities on other accounts) is required for a
proposal, then a second proposal can be used to grant the nested authority's approval. That is, a second
proposal can be created which, when sufficiently approved, adds the approval of a nested authority to the first
proposal. This multiple-proposal scheme can be used to acquire approval for an arbitrarily deep authority tree.
Note that at any time, a proposal can be approved in a single transaction if sufficient signatures are available
on the proposal_update_operation, as long as the authority tree to approve the proposal does not exceed the
maximum recursion depth. In practice, however, it is easier to use proposals to acquire all approvals, as this
leverages on-chain notification of all relevant parties that their approval is required. Off-chain
multi-signature approval requires some off-chain mechanism for acquiring several signatures on a single
transaction. This off-chain synchronization can be avoided using proposals.
||Transfers an amount of one asset from one account to another
||Allows the issuer of an asset to transfer an asset from any account to any account if they have override_authority
The Blockchain Worker System
Echo blockchains allow the creation of special "workers" which are elected positions paid by the blockchain
for services they provide. There may be several types of workers, and the semantics of how and when they are paid
are defined by the @ref worker_type_enum enumeration. All workers are elected by core stakeholder approval, by
voting for or against them.
Workers are paid from the blockchain's daily budget if their total approval (votes for - votes against) is
positive, ordered from most positive approval to least, until the budget is exhausted. Payments are processed at
the blockchain maintenance interval. If a worker does not have positive approval during payment processing, or if
the chain's budget is exhausted before the worker is paid, that worker is simply not paid at that interval.
Payment is not prorated based on percentage of the interval the worker was approved. If the chain attempts to pay
a worker, but the budget is insufficient to cover its entire pay, the worker is paid the remaining budget funds,
even though this does not fulfill his total pay. The worker will not receive extra pay to make up the difference
later. Worker pay is placed in a vesting balance and vests over the number of days specified at the worker's
Once created, a worker is immutable and will be kept by the blockchain forever.