The Evrmore DeFi Roadmap
Bitcoin's protocol and UTXO model have proven to be
wonderfully secure. Ravencoin built on that base by adding
simple enhancements to natively support assets. Evrmore
plans to add similar enhancements allowing it to support
partial order fulfillment, stop-limit orders, interest
rates, options and futures contracts, and many other useful
financial primitives. This will enable Evrmore to support
much of the DeFi economy without the security risks inherent
in overly complex smart contracts.
- Thank you Satoshi Nakamoto and all the Bitcoin
developers for Bitcoin
- Thank you Bruce Fenton and Tron Black and all the
Ravencoin developers for Ravencoin
How long can
Ravencoin adapt and become stonger? Quoth the Raven:
"Evrmore"
(Not quite Edgar Allan Poe)
Note: The following text and
linked documents describe the design enhancements envisioned
for Evrmore at this time. The intent is to convey a sense of
what is planned for Evrmore, how it builds on existing
technology, and why it is superior in simplicity and
security to the many overly complex smart contract platforms
which have emerged to serve the DeFi market. The order of
implementation is still under review, and details of the
protocol will no doubt evolve as development work
progresses.
Documents:
The Evrmore DeFi Roadmap consists of 3 documents:
- This document including
- Evrmore Guiding
Principles
- Evrmore
Roadmap Summary
- Evrmore
Preliminary Details of Proposed Changes
- Evrmore
Support for 2-step On-Chain SIGHASH_SINGLE Atomic
Swaps
- Level-1
DEX Support
- Level-2
DEX Support
- Level-3
DEX Support
- Oracle-guided
trading
- Implementing
the Price Oracles
- Vault
Assets- Fungible Assets with Native EVR Face Value
- Overview
- Naming
Rule
- New
data maintained by the nodes for each fungible Vault
asset or Vault subasset
- Vault-related
RPC Commands
- Vault-related
RPC Command Details
- Q&A
- A
Simple Use Case Example
- EvrmoreVault-Plus
Evrmore
Guiding Principles:
Vision: Extend the Ravencoin architecture with
simple intuitive features designed to make Evrmore an
excellent platform for DeFi. When core DeFi concepts become
standardized, simple native support should be hard-coded
into the Evrmore protocol.
Ecosystem: Whenever possible, add new ways for
Evrmore users and nodes to benefit financially from use of
the chain. Successful participation in DeFi requires a rich
ecosystem of participants earning money in a variety of
ways.
Diversity: Support for new functionality in
Evrmore means changes to the protocols, data structures, and
RPC calls as well as changes to the consensus rules in
raven-qt/ravend. But it does not require GUI support in
raven-qt for all its features because there will be far too
many options and functions to support them all. GUI support
and related services are best provided by ecosystem vendors
through additional applications or websites on a for-profit
basis. Just as TCP and HTML provide the low-level support on
which internet businesses are built, the various low-level
blockchain features of Evrmore will be able to support a
range of product and service vendor businesses.
Scaling: Adding new data fields to the
transaction and UTXO specification will increase the on-disk
and in-memory storage requirements and the sync time for
full nodes, and therefore should be given appropriate
consideration. However, the required increase to support
most financial primitives is expected to be modest. Unlike
account-based systems such as Ethereum or extended-UTXO
systems such as Cardano, the changes will not be storing
arbitrary persistent system state. Hence, radical changes in
support of scaling are not expected to be necessarily for
quite some time. Long term, technologies such as Utreexo or
Flyclient could be adopted to reduce storage space
requirements. For transaction throughput, larger block size
has been demonstrated as an effective measure by a number of
bitcoin fork projects. Beyond that, technologies such as
rollups and sharding as being used or planned by Ethereum,
would be equally valid and simpler to deploy on Evrmore.
Governance and Funding: The Evrmore team
respects the ethos adopted by Bitcoin- decentralized,
permissionless, cautious progress. Fiercely protective
of the autonomy and responsibility of individual
participants. But when participants in a market or members
of a project choose to be cooperative and voluntarily
trustworthy, performance and competitiveness increase.
Cooperation and compromise can augment blockchain enforced
compliance. Evrmore makes somewhat different choices than
Ravencoin in order to be business-friendly, to provide
stable financial funding for salaried software developers,
and to respect the rights of trademark holders.
Evrmore
Roadmap Summary:
The following changes are
proposed for the Evrmore blockchain, consensus, and
related code.
- Add Asset tolls support: See "
Asset_Tolls"
below for details.
- Each asset will be given a metadata field indicating a
required per-asset Toll qty of EVR (or % of face value
for Vault assets) paid to the asset owner whenever that
asset is transferred.
- The transfer of an asset from one address to another
address in the same wallet could be used as a method of
requesting and paying for a service.
- Tolls can be used as a way to pay Liquidity Providers
who agree to lock up valuable assets on other chains in
order to provide Wrapped tokens for trade on Evrmore.
- Tolls can be used to pay a royalty to the original
creator of an NFT (unique asset) whenever the NFT is
moved from one address to another
- Add a second IPFS field to asset metadata. See "
Second_IPFS"
below for details
- Add Expiring Unique Assets (expiring NFTs): See "
Expiring_Unique"
below for details.
- Unique assets can be given a lifetime ranging from 1
hour to eternal. The price for creating the asset will
vary from 0.05 EVR (1 hour life) to 5 EVR (eternal
life).
- Add Level-1 DEX support: See details
HERE.
- Enhanced support for 2-step
SIGHASH_SINGLE|SIGHASH_ANYONECANPAY On-Chain Atomic
Swaps by adding Asset_Name/Ask_Qty/Signature fields to
every UTXO to communicate the desired trade. This makes
it possible to do offer tracking and broadcast on-chain
as a way to bootstrap initial DEX activity without
requiring a new database of communication channel. DEX
trading can also be taken off-chain to speed up activity
and to save transaction fees.
- Add Asset Consumption support: See "
Consumable_Assets"
below for details.
- Assets can be destroyed as well as issued. This
capability is important for on-chain tokens which
represent off-chain assets, such as wrapped-bitcoin, for
which the number of tokens in existence should be
adjusted up or down to match the number of bitcoin in
escrow. As another example, assets can be issued as
one-time-use utility tickets which are consumed
(destroyed) when used. This is particularly useful when
used with expiring unique assets (#11 below).
- Add Covenant support: See "
Financial_Derivatives"
below for details.
- Covenants will allow Evrmore script to support more
complex smart contracts within limitations. In
particular, an options contract or futures contract on
the sale of a valuable token or stablecoin can reside in
a separate contract token which can be traded separately
from the value token. Recent research on the necessary
contracts and the mechanism to link the contracts to a
tradeable token separate from the underlying value asset
token indicate that this is possible using the covenant
opcode extensions which have already been in production
use for a few years on Blockstream's Liquid Network
blockchain.
- Implement
Evrmore
Vault Assets.
- Vault assets are assets which have a "face value" of
EVR and can be "melted" to extract the EVR.
- Vault assets can pay a daily interest rate as a % of
the "face value" or a fixed amount of EVR. Or they can
cost a daily demurrage rate as a % of the "face value"
or a fixed amount of EVR.
- Add support for Schnorr signatures, Taproot, and Tapscript
- Schnorr will provide performance and privacy
improvements. Taproot and Tapscript, especially when
combined with Covenants and MAST (Merkelized Abstract
Syntax Trees), will allow more powerful scripting
- Add Level-2 Enhanced DEX support: See details
HERE.
- On-chain 2-step Atomic Swaps can support "Partial
Order Fullfillment" with specified "Granularity". They
can also support different order types:
Precise(Legacy)/Market/Stop/Limit/Stop_Limit/Stop_Market.
This primarily requires only new data fields in the UTXO
definition and a change in the related consensus rules.
Independent vendors are responsible for matching offer
and seller half-transactions for submission to the
miners, for which those vendors can make a profit on the
spread.
- It is interesting to note that most of these features
and Evrmore-like asset trading were proposed as a
bitcoin extension by Mark Friedenbach in 2013 for his
Freicoin project, but the project was dropped when Adam
Back convinced Mark to become a co-founder of
Blockstream instead.
- Add Oracle DEX Support: See details
HERE.
- On-chain 2-step Atomic Swap support for Oracle-based
price discovery can provide another vast improvement in
price discovery and flexibility. Markets use many
different methods of price discovery. Some use
traditional off-chain bid/ask order books. DeFi projects
are experimenting with a variety of
Automatic-Market-Maker algorithms. Oracle support allows
the offer creator to select any Oracle of his choice
based on the Oracle's public key and signed price
reports. Only the price quote and signature format need
to be standardized, and a few changes need to be made to
the UTXO definition and consensus rules. The buyer
can choose an Oracle from any independent vendor who
provides that service on a for-profit basis. New
technologies such as "Gravity Protocol" are expected to
make Oracles much more common.
- Add explicit support for PSET (Partially Signed Evrmore
Transactions)
- This will enable more powerful off-chain and Layer-2
financial protocols.
- Implement a 2-way Peg BTC-Relay to provide Wrapped-BTC
liquidity for trading.
- EVRWBTC tokens can be issued on the Evrmore blockchain
specifying a non-zero toll, so the liquidity providers
earn a toll every time a EVRWBTC token is traded.
- Technically, the implementation is similar to a P2SH
HTLC Cross-chain Atomic Swap. During a Peg-in it locks
up BTC on the bitcoin blockchain and issues an equal
number of EVRWBTC on the Evrmore blockchain. During a
Peg-out, the EVRWBTC must be consumed and the BTC are
returned on the bitcoin blockchain. If BTC and EVR had
sufficiently powerful scripting, this could easily be
fully automated as a Relay. Since that is not the case,
and to improve security, many projects implement it as a
Trusted Federation as done by Blockstream for LBTC on
the Liquid blockchain, by Rootstock for RBTC on RSK, and
by WBTC for Ethereum. In some juridiction, this solution
creates KYC requirements for the users. Other projects
use more complex solutions to fully automate the Relay
such as by running both EVR and BTC chains and transfer
code in a Trusted Execution Environment (as done by
pTokens for pBTC) or running a Secure Multi-party
Computation on distributed VMs (as done for Ren). The
maturity of the available solutions and regulatory
changes relating to stablecoins will dictate the best
solution.
- Implement a 2-way Peg Ethereum Relay to enable Wrapped
ERC20 tokens on Evrmore. Same considerations as for
BTC-Relay.
- Implement Relays to additional popular blockchains: LTC,
DOGE, BCH, Cosmos
Evrmore Preliminary
Details of Proposed Changes:
- Assets with
owner-required Toll (trading fee):
- Each asset will be given a metadata field indicating
a required per asset Toll qty of EVR (or % of face
value for Vault tokens) paid whenever that asset is
transferred. Another metadata field specifies the
address to which the payment is made.
- The value of Toll amount and Toll address fields
will be selected at asset creation time, Toll amount
and Toll address can be changed during reissue unless
Toll Amount is zero, in which case it will always be
zero.
- There is no toll charged for a "Consume" operation
(consumes are not transfers), so a Wrapping token
which has a toll can be "cashed in" for its associated
value asset by consuming it without incurring a toll.
- The Toll is paid as a EVR output to the Toll
address. Meeting that requirement is enforced as a
consensus item by all nodes.
- Add a second IPFS field
to asset metadata:
- One of the IPFS fields will be treated as immutable
once the asset has been issued, even during reissue.
The second IPFS field will always be mutable, even for
unique assets and other non-reissuable assets (needs
additional RPC and GUI support). For backward
compatibility, legacy assets which are unique or
otherwise non-reissueable will have their IPFS mapped
to the non-mutable field, while legacy reissueable
assets will have their IPFS mapped to the mutable
field. See Ravencoin Issues #336 and
#547
for the application uses driving this feature.
- Expiring Unique
Assets:
- Unique assets will be given a lifetime when they are
created. There is a minimum lifetime (1 hour) and a
minimum cost (0.05 EVR) to prevent spam and to limit
computational load. All legacy issued unique assets
will be treated as infinite lifetime unique assets.
Only a fixed set of lifetimes and associated prices
will be supported.
- Proposal: 1hour/0.05 EVR,
1day/0.1EVR, 1week/0.2EVR,
1month/0.5EVR, 3months/1EVR,
6months/2EVR, 1year/4EVR, infinite/5EVR
- Such assets could represent concert tickets (serial
numbered with assigned seating) which expire after the
concert, or 1-hr worth of VPN service, or a 10-year
bond.
- The expiring nature of such an asset would also make
it ideal for representing an expiring option or
futures contract. Such securities exhibit unique
pricing behavior because expiring option contracts
trend to a value of zero at the time of expiration
while expiring futures contracts trend toward the spot
market price.
- Consumable Assets:
- An evrmore-script opcode will be created for
"Consume()" for any asset. Note that while an asset
can be "burned" by sending to a non-spendable address,
there are advantages to being able to destroy assets
and remove them from the UTXO..
- If used for voting, then destruction can be done
after voting is completed. More generally, If the
asset is a utility token, then the token could be
consumed after it is used to obtain the service.
- If the token represents a "wrapped" asset such as
for EVR-Wrapped-Bitcoin, then this provides a way for
the existing supply of EVR-Wrapped-Bitcoin tokens to
be made equal to the number of Bitcoins locked on the
bitcoin blockchain, which could vary up or down.
- Adds a Consumable(T/F) metadata to every asset which
determines whether to allow the Consume() asset
function. Legacy assets have Consumable='F'.
- During reissue, Consumable(T/F) can be changed from
T to F but never from F to T
- Note that this makes ^Vote assets unnecessary, and
the "^" symbol is used to identify Vault asset instead
- Owner tokens may not be consumed. Therefore there is
no concern about whether a subasset name exists below
any given asset name.
- Trading of
Financial Derivatives:
- For DeFi, it is critical to be able to trade in
Financial Derivatives such as Options Contracts and
Futures Contracts
- This capability is also a great motivator to attract
Liquidity Providers. People who lock up their bitcoins
on the bitcoin blockchain and accept EVR-WRAPPED-BTC
assets on the Evrmore blockchain could then write and
sell covered Options and Futures Contracts against
their bitcoins in order to earn income.
- For this to work, it must to possible to freely
trade a token which represents the Derivative Contract
separately from the token which represents the
underlying value asset.
- Implementing this requires "Covenants"
- Recent research on the necessary contracts and the
mechanism to link the contracts to a tradeable token
separate from the underlying value asset token
indicate that this is possible using the covenant
opcode extensions which have already been in
production use for a few years on Blockstream's Liquid
Network blockchain as described here:
- Additional details of how the new Opcodes support
Covenants on the Liquid Network is described here:
- Blockstream's Liquid Network directly uses the
open-source code of the Elements project according to:
https://docs.blockstream.com/liquid/technical_overview.html
which was referred to by: https://www.blockstream.com/liquid/
- So Elements on github (which is a bitcoin code fork)
appears to contain the needed code changes to support
the Financial Derivative covenants.
- The contracts as described do not appear to require
SegWit. Further work will be required to verify the
work of Dmitry Petukhov and to implement it on
Evrmore. But the review of Dmitry's work by Russell
O'Connor from Liquid Network is encouraging.
- Vault Assets with On-Chain Native EVR "Face Value":
Copyright 2022 by Hans Schmidt