MeerToken Series — UTXO Asset Offering
Asset offering relies on smart contracts because even the simplest transfer transactions involve some transaction processing logic in the specific implementation and UTXO model assets are no exception. I believe many of you know that the account model supports smart contracts but how UTXO’s smart contracts are implemented may not be clear to some of you. First, let’s look at the definition of a smart contract in the blockchain field: “Smart Contract” refers to the technology that uses blockchain technology to ensure that transactions are executed automatically in a trustless manner. So the key is whether blockchain technology can be used to ensure the automatic execution of the contract.
A blockchain system is essentially a state machine, i.e., a machine that can change its internal state by inputting external variables. Here the external variable is the transaction and the internal state is the data such as the balance of the ledger. Therefore smart contracts need to be implemented by accepting transactions and then triggering a change in the state of the blockchain. The UTXO model of blockchain represented by Bitcoin uses a stack-based scripting language.
Those who have some programming knowledge know that the last-in-first-out feature of the stack allows multiple subroutines to be executed in an orderly fashion. A simple understanding of the stack-based scripting language can express high-level language, so it can realize more complex smart contracts. But the blockchain is a decentralized value exchange system, and overly complex smart contracts may not only be prone to vulnerabilities that cause instability but also bring down the entire blockchain. So Bitcoin not only limits the number of instructions, but also removes circular statements, so Bitcoin’s scripting language is Turing incomplete. A simple understanding of UTXO-based smart contracts is limited in expressiveness, but can still support common applications for value circulation, typically cross-chain atomic exchanges or multi-party signatures.
With the development of smart contracts, there is a higher demand for the functionality of the UTXO scripting language, so many schemes to enhance UTXO have been created. The most intuitive solution is the dye coin solution, which uses OP_RETURN to terminate script execution early and then leaves 83 bytes of data space free for definition. So an application can write consensus data to this space and then extend the standard client-specific data rules for that application to parse the data. The obvious advantage of this solution is that it is flexible. The disadvantage is that the data cannot be secured by the blockchain consensus.
A more desirable solution would be to add a proprietary asset offering directive which was used in the testing phase of Qitmeer. Qitmeer adds an Op_Token asset offering directive that converts the Qitmeer test network’s native asset PMeer into the same number of assets in the smallest unit (Qit, $1Pmeer=10⁸Qit$). For example, if you want to issue some asset named TestToken, the smallest unit of TestToken is TestBit, $1TestToken=10*10⁸TestBi$ , then it costs 10 PMeer. As you can see, the assets issued by Qitmeer have a cost that avoids the generation of junk assets to some extent. More importantly, compared to the dyed-in-the-wool solution, the issued assets are subject to the same network-wide consensus as the native assets so you can get the same security and high-quality value circulation service as the native assets.
At the Qitmeer mainnet stage, Op_Token is further upgraded to MeerToken asset offering scheme. As we can see from the previous analysis, although the assets issued by the Op_Token command can enjoy the same security and value support as the native assets, there are still differences in the offering mechanism so it requires different processing for the native assets and the issued assets in the process related to the assets which is not a high degree of abstraction in computer jargon. Therefore the maintenance cost is high and there is a potential risk of instability which also limits the scalability. To address this issue, in the Qitmeer mainnet phase, the issued assets and the native assets are completely unified at the data structure level and all the operational mechanisms are identical. Each asset has an asset number and the native asset is unique only in that it is the first asset that is issued by default as the mainnet goes live.
To conclude, with the continuous development of blockchain applications, the UTXO model is also in the process of continuous upgrading. The transition from the most primitive transaction model with a static data structure to a smart contract model with a stacked scripting language with some flexibility. The demand for asset offering has also led to the derivation of the dyed coin transition solution in the blockchain community. Qitmeer in the test network phase OpToken asset offering solution solves the problems of dyed coin solution transactions without value support and transactions are cannot be secured by the consensus and in the main network phase, they innovatively unify the native assets and issued assets to a high degree, further improving the Qitmeer’s stability and scalability.
Qitmeer is the next-generation public chain based on BlockDAG, which is dedicated to serving the ecosystem of Islamic Finance, ethical finance, and socially responsible investment, thereby enhancing financial inclusion and creating social impact.
In contrast to the competition model, BlockDAG’s collaboration model in the mining achieves a desirable balance of typical blocks metrics among the security, openness, fairness, and scalability.
Qitmeer adopts a classic POW consensus and UTXO data model and designs a unique asset issuing mechanism which requires the reserve of native currency, which is in line with core ethical financial values.
As the Qitmeer Network mainnet launched, we invite the investors and the Qitmeer Networks Community to take a look and learn the core idea about Qitmeer Network. This video was presented by our very own Effendy Zulkifly — Qitmeer Network (Council Member).
Website / Qitmeer talk / GitHub / Twitter / Facebook / Telegram / Instagram / LinkedIn