sziller.eu - Szilard Gabor LADANYI - 2024
Gold backed digital Asset
Technology
Taproot Assets
LightningLabs has a production-ready protocol to assign custom-made digital assets to Bitcoin UTXO-s using the
2021 soft-fork called Taproot, in order to inscribe Taproot data into a Bitcoin UTXO. Taproot-Assets - as the
technology is called - aims to leverage Bitcoin AND the Lightning Network to transact: 3rd party, centrally controlled
assets - such as USD stablecoins or commodity-backed digital assets.
The on-chain transfer module is Live and production ready, the module to interact with Lightning is comming soon.
With Taproot-Assets we can issue a digital asset:
-
whoes entire stock is verifyable with Zero-Knowledge-Proof model,
-
where we can issue or burn Assets by ourselves,
-
where we can - but do not necessarly have to - build a StockExchange to watch over trading,
-
where assets are tracked in an off-chain Sparse Merkle Sum tree, granting:
-
fully transparent auditing
-
tamper-evident double-spend proofness
-
minimal on-chain footprint
-
scaleable, client based verification
-
TA uses Merkle-sum Sparse Merkle Trees - or MSSMT. Do not let the tech-jibberish fool you. It sounds more complicated, than it is in reality. The MSSMT solves the following:
-
as all trees, the Root lets you verify the content
-
it can prove NON existence of data
-
it can prove the sum of funds in it did not change
Law
The EU issued MICA. It takes effect on the 30th of June. Classification of the product may depend on technical details of the implementation of the digital product. It may also depend on if and how the commodity backing of the asset is realized.
Process
We have a well-designed site for the user to buy an Asset representing real-life goods, we store. Heres our example.
1. issuance
Running a tapd client the Admin server can create a Merkle-sum Sparse Merkle Tree - or MSSMT. In this tree the admin creates the amount of funds he/she wants to issue. Admin keeps the Database in the usual centralized manner, but publishes the ROOT of the MSSMT on chain in a Taproot locking script.
Important to distinguish if data is being stored as Tamper Proof or Tamper Evident. The Tree itself is NOT Tamper-Proof: as it will not be part of the Blockchain. Its Root is though, rendering the MSSMT itself Tamper evident. |
2. tracking
Your client has multiple choices how he/she wants to track their funds. The actual Data is stored in Databases across Nodes, involved in the G-Coin Pocket Universe. As data hashes are their own addresses on the tree, finding ones data in the tree is trivial. Thus, your user can:
-
run a dedicated Node
-
ask any of the dedicated Nodes
-
ask the Nodes of ths Issuer
-
take a look into his/her Wallet on online Dashboard, keeping track of their G-Coins.
3. auditing + validation
Thanks to the Root of the MSSMT being inscribed onchain, using the old MerkleTree validation trick, the user can anytime check if the DB version handed to them is a valid on up-to-date one. Validation serves two purposes:
-
checking the total sum of G-Coins across the DB not having been tampered with
-
validating if all the desired transaction moved G-Coins to new addresses
(while also cheching if old funds were destroyed in the process)
4. transacting
Nodes keep their DB-s locally controlled. They can update their state according to what they know to be true, based on transaction data. And only need to verify data integrity. Stopnig double-spend is also achieved by the Bitcoin TX itself. It does not sound important at this stage, but as TaprootAssets hit Lightning, Nodes do not need to sync the DB-s, but can come to a conclusion locally and even skip verication as Lightning grants double-spend proofness.
5. burning
As far as I understand the protocoll, the Issuer can Burn Assets as well. This is highly important as it enables timed contracts, to be ceased - once they’ve run their course. A feature not possible with Bitcoin alone, as Bitcoin Transactions do NOT expire. TaprootAsset issued tokens can. The Issuer can burn them.
Example
At this stage I’ve built a small token shop, where you can purchase Precious Metal backed products. The issuer promisses to BACK these Assets with real PM. The customer can pay with whatever currency is agreed upon (in my case it is Bitcoin over Lightning). Once paied for the Assets appear in the Users Wallet and/or on the Dashboard on the Issuers Homepage.
Point of Sale
This is a normal BTCPay server featuring different Assets.
In this example the customer pays with Bitcoin over the Lightning Network. You can encurage returning customers to open direct channels towards your shop, to get additional benefit from having remote liquidity.
Sallet Visor Intro page
Once use-case is clear and well-designed, all features can be integrated into Sallet. This is a modular, customizable Desktop and/or Android wallet designed to house necessary functions only.
Sallet Visor G-Coin page
Beside the normal Bitcoin Wallet functionality we can integrate G-Coin management, and communication to G-Coin Nodes.
Fungibility
Based on the legal environment you might consider making Tokens Non-fungible ro Fungible. Having them Non-fungible makes a slight difference in the code, but a huge one in the real life implementation of the backing, namely:
-
If fungible: the Issuer promises to hand out/ ship only the agreed upon amount of Gold (underlying commodity) to the customer upon presenting the token. Fungibility would refer to that of the real life underlying good itself: GOLD. This would however make transacting with the digital asset more flexible, as users could easily trade them among themselves.
-
Non-fungible: the Issuer promises to hand out/ ship a recognizable piece of good (bar with a specific serial number, a specific goldcoin or even another kind of collectible item). The Issuer would have to store these specific items. Insurance might be a bigger issue as well. Also, the secondary market is way more limited, as there is another layer of trust build into the re-selling transaction.
At the same time it is more controllable and the European MICA regulation would not necessarly apply.
Back to the top: G-Coin