Skip to content

Commit eb84ed1

Browse files
readme for vats
1 parent 15cbe7e commit eb84ed1

File tree

1 file changed

+98
-3
lines changed

1 file changed

+98
-3
lines changed

README.md

Lines changed: 98 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,101 @@
1-
# EthGild
2-
3-
## High Level
1+
# rain.vats
2+
3+
VATS = Verifiable Asset Token System.
4+
5+
## High Level (VATS)
6+
7+
There are two dominiant _representation_ systems in defi today:
8+
9+
- Fungible tokens: Ideal for trading/investment concerns such as liquidity,
10+
interoperatiblity, transerring, swapping, both large/small scale operations,
11+
generalized/bulk behaviours, etc.
12+
- Non-fungible tokens: Ideal for auditability/provenance concerns such as mapping
13+
onchain to external/offchain entities, _specific_ mint/burn histories,
14+
"physical allocation"-esque legalities, etc.
15+
16+
For many use cases, one of these will be the clear preferred representation. For
17+
example an onchain token minted purely to represent voting power in some DAO fits
18+
a fungible model well. A token minted to represent individual and unique
19+
collectable items fits the non fungible model best.
20+
21+
Some use cases need properties of both, notably many RWAs (real world asset) have
22+
concerns relevant to both representations.
23+
24+
Almost every RWA, except those that already have global adoption and relevance
25+
such as USD pegged stables, or gold backed tokens, have hard liquidity
26+
constraints. Hard in the sense that there is always some upper limit of capital
27+
that can be absorbed by the RWA meaningfully due to physical constraints. For
28+
example, we could tokenise a house that could be sold for $500k and then
29+
investors and traders can buy/sell tokens ultimately backed by the sale price of
30+
the house offchain setting a floor on the token value, but the maximum size of
31+
their trades at a liquid price can only ever be some small percentage of $500k.
32+
It is hard to imagine a $100k swap going through without significant slippage,
33+
as this represents 20% of the entire supply.
34+
35+
If every asset on the planet needs to be individually tokenized and build a
36+
liquid market for itself, with its own risk/reward profiles, market participants,
37+
issuer/management, etc. then it is clear that pragmatically the friction is too
38+
high for adoption by anyone except the most motivated and resource rich
39+
participants.
40+
41+
From this perspective we clearly favour the standard ERC20 fungible token. We are
42+
going to want to start grouping similar assets together. Perhaps 100 houses
43+
in the same area of similar investment quality can back a token with a $50M
44+
liquidity cap, rather than the $500k from a single house.
45+
46+
This is certainly an improvement for trading, but it introduces a meta problem.
47+
The nature of a basket of assets is fundamentally different from an individual
48+
asset.
49+
50+
Consider our above example, we have 100 houses in the same area. In one sense
51+
this makes them all similar to each other, which justifies their "sameness", an
52+
important feature of any fungible token. In another sense we have simply shifted
53+
our liquidity problem offchain. What if there is a bank run on the token and a
54+
significant percentage of these 100 houses all need to be sold in a short period
55+
of time in order to maintain the backing. Selling 1 house in a good area is
56+
relatively simple, although still might take months, selling 100 houses in the
57+
same area could take many years to do in a way that doesn't crash the sale price
58+
due to sudden oversupply.
59+
60+
This example even applies to assets that are generally considered to have
61+
essentially infinite liquidity and are commodities, such as gold or silver. There
62+
exists many times more claims on gold and silver in the financial system via.
63+
derivatives and other "paper" than there is real gold and silver sitting in
64+
vaults that can be physically delivered if there was ever a global bank run on
65+
the metals. Different setup, same problem, the quality of the aggregate asset
66+
during times of stress is only as strong as its weakest component.
67+
68+
So now we want some kind of ability to curate or assess the quality of the
69+
investment at the level of a token that is behaving more like a fund that holds
70+
many assets than some specific asset. The ERC20 token doesn't provide any
71+
information or guard rails around the many individual specific assets offchain or
72+
elsewhere that back the liquidity.
73+
74+
For this kind of provenance and audit trail we would typically use a non-fungible
75+
token standard such as ERC721 or ERC1155.
76+
77+
The VATS approach specifies that, at the point of minting and burning, we always
78+
create and destroy _both_ an ERC20 and associated ERC1155 pairwise in equal
79+
amount. This protects the "bridge" between the tokenized representation and the
80+
externally referenced assets, while allowing fully decoupled behaviour of both
81+
tokens onchain outside the bridge processes.
82+
83+
As both the ERC20 and ERC1155 tokens exist onchain and are not simply handled
84+
offchain, e.g. via some system of event emissions, there can be onchain guard
85+
rails and governance enforced at the smart contract layer. The VATS concept is
86+
agnostic to the specifics of governance, other than the requirement that tokens
87+
are created and destroyed in lockstep to maintain supply integrity.
88+
89+
V: Verifiable => "Anyone" can compare the onchain ERC1155 NFT IDs/data/supply
90+
against the offchain assets to check the integrity of the system.
91+
A: Asset => The system is designed to work referencing/backed by real assets.
92+
T: Token => The system is fundamentally a tokenization approach to building
93+
liquidity for the referenced assets.
94+
S: System => This is a system of tokens, both an ERC20 and ERC1155, and cannot
95+
provide all promised features/guarantees without multiple tokens bound together
96+
logically somehow (e.g. at mint/burn time)
97+
98+
## Implementation
499

5100
Defines and implements the concept of a "Receipt Vault".
6101

0 commit comments

Comments
 (0)