Why Qtum Choose UTXO Model and the Benefits
I have read the Qtum whitepaper over last 1 hour so understanding may not be 100% but this is my assessment.
0. Basically it is just another bitcoin fork with extension to the bitcoin scripting language to support solidity contracts?
First of all, Qtum is far from being “just another bitcoin fork”. We have a vision for the Qtum project and one of the biggest and most professional teams ever seen in crypto with support from real world companies and investors. Our goals for Qtum go far beyond the crypto scene and it will be a top project, not just another fork.
Our choice of bitcoin core as a main base for Qtum is based on the fact that bitcoin is the most mature, stable and secure blockchain available, in comparison to ethereum, bitshares or others, which are still considered unstable with the numerous problems and security issues they had since they launched. In addition to bitcoin having the biggest support from the community which offers a large collection of tools and software related to bitcoin which can be used by quantum as well, in contrast to the other blockchains which sometimes lack even the simplest software (mobile wallets, stable desktop wallets …).
Also we use bitcoin script as a bridge between the EVM and regular transaction, the Qtum model was very well designed, and is much more complicated than you make it sound.
1. There is no compelling reason to choose UTXO over smart contract via balance.
It is like comparing a general journal vs a general ledger, which is better? The answer is it depends. I guess it is only UTXO because it is using a bitcoin fork and calling it UTXO as a feature is just a gimmick. In fact I suspect scalability becomes bigger problem since you need to maintain SPV to manage UTXO for multiple different states? Will be interesting to see how to implement wallets.
Does that make hyperledger better since they supports both utxo and balance?
Our choice of UTXO is simply choosing the best technology, there have been some efforts made through some articles to make the account model seem as performant and secure as the UTXO model, however, it’s not. Without going into much details, the account model is too naïve and simplistic and offers no parallelism, it always reminds me of the cup telephone transaction model.
For us, a hybrid model as the one used by Hyperledger was the wrong choice since it will cause us to be incompatible with neither bitcoin nor ethereum. In Qtum we have a priority to keep full compatibility with bitcoin which will allow us to implement future bitcoin BIPs to Qtum thus taking advantage of the developments done by the bitcoin core team and community.
For more details,please refer below：
1) If we wanted just a simple smart contract platform to build on top of, it would’ve been significantly easier for us to just fork Ethereum.
2) The UTXO allows for the SPV protocol to work. Ethereum currently does not have anything like SPV. There’s no way to run a simple wallet on Ethereum without downloading the entire blockchain, or trusting a centralized 3rd party.
3) The UTXO model is overall much more simple, and because it’s been used by Bitcoin, it has been thoroughly tested and proven to be secure. Although Ethereum’s account model is conceptually easy to understand, it requires more complexities and edge cases in order to secure it from replay and double spend attacks.
4) Scalibility should not be a problem for Qtum. Although contracts can create state changes etc, these state changes are not directly stored on the blockchain. Rather, state is considered the accumulation of all actions and differences created by executing each smart contract. This could admittingly make syncing the blockchain slower (because block processing will be slower than Bitcoin), but the other benefits provided are worth this performance hit. Furthermore, the only additional thing stored in the UTXO set right now is contract code, and contract-owned outputs (though their data becomes unimportant after the output is initially processed). There may be plans proposed later which prune the UTXO set’s stored data as well, to reduce the UTXO set size further.
5) SPV will work almost identically to how SPV wallets work today. For a quick summary, a light wallet downloads block headers, and then sends P2P nodes requests (using bloom filters) to get all transactions for each block matching the keys that this wallet own. Because the contract system creates normal transactions, this already works. IF you a contract sends funds to a SPV wallet, the SPV wallet will see these funds and can spend them, today. Our next step with SPV wallets would be to implement a workflow so that people can send money to a contract, while also picking which function and what data to send. We do not need to extend the SPV model to work for Qtum, it already works because of our focus on compatibility.
6) Regarding Hyperledger. I’m no expert on it, so I could be wrong. But I think that their support could end up being worst of both worlds. Now, anything wanting to interact with Hyperledger must be capable of dealing with the quirks of both models. From my understanding also, they only support either UTXO or Accounts on one ledger at a time also (though there is much functionality for messaging and sending things between these ledgers). So I do not think it makes Hyperledger’s model better, but rather more complex. Perhaps this complexity provides more power to Hyperledger’s model, but it also introduces more security concerns and increases the implementation cost of Hyperledger itself, and any application that uses it (due to to having to deal with both models)
2) It extended bitcoin script to accept solidity string but another company called CounterParty have already done it on the Bitcoin public blockchain without having to use a new public blockchain. So where is the need? Furthermore, will qtum have to constantly keep in sync with “solc” the solidity compiler to maintain compatibility?
— Qtum is very different from XCP, XCP uses bitcoin blockchain to store data, and the user have to run XCP software on top of that. Some major drawbacks are the cost of XCP transactions which increased so much that it threatens the whole project now and the complexity to build external software on top of XCP.
Qtum aims to offer an all-in-one solution, not based on any external possible points of failure.
For solc support, we made Qtum with that in mind, Qtum uses the exact same ethereum VM, so it will run any solidity compiled code, in the case of EVM updates, and we will be easily able to update it in Qtum as well.
3.Qtum is a new altcoin platform but there are enough ethereum, ripple and bitcoin out there. Why another one?
It is not a bridge as I was led to understand. It is another bitcoin fork.
— In addition to my previous reply about Qtum not being “just another bitcoin fork”, I would like to add that quantum is not the average altcoin, it will be one of the best, if not “the best” we have all the means for that, and we will do it.
You say it is not a bridge, but really it is. It is bridging the technology. We are taking what makes Bitcoin great, and what makes Ethereum great, and bringing them together as one. We expect to bridge not the actual monetary value (ie, the market cap) held in each coin, but rather the communities and separate interest. Right now there is a real divide between serious Ethereum users and developers, and Bitcoin users and developers. By aiming to be compatible with the technology involved with both, we hope to merge these communities and be an answer both for 1) Those who want Ethereum smart contracts, but are uncomfortable with the stability of the Ethereum account model and lack of protocol support such as SPV; and 2) Those who like Bitcoin, but are unhappy with it’s limitations for implementing smart contracts and more powerful types of transactions. We as a team are also tired of these copy-paste coins that people constantly make to try to get a quick buck, and we would not have chosen to make this it’s own altcoin if we had not weighed the cost and benefits very carefully.
4. What is the block confirmation time? Bitcoin is 10 minutes and Ethereum is 18 seconds?
— Ethereumblocktime of 18 seconds is a bit exaggerated and causes a lot of empty blocks and uncles thus bloating the blockchain with useless data (which resulted in the currently atrophied ethereumblockchain), and bitcoin block time of 10 minutes is a bit too long for a smart contracts platform. We aim to have a blocktime of 1 to 3 minutes for Qtum.
5.) I did not go too deep into the details of the POS but the protocol is similar to Peercoin’s DPOS and it maybe susceptible to coin age accumulation attack if the intention is to incentive to miners that leave their stake longer on the chain. In fact it should be the opposite to prevent long range attack, Bitfury and Vitalik has written good articles on the types of attacks it is susceptible to.
—- Qtum uses BCPoSv3.0 which has removed all major attack vectors, including coin age accumulation.In conclusion, Qtum will be the first standalone UTXO and PoS based smart contracts platform thus making use of the best available technologies to deliver an outstanding blockchain solution.
By Patrick Dai and Neil
About Patrick Dai: Cofounder of Qtum. Patrick is a Computer Science PhD candidate at CAS and has worked for Alibaba.
Neil: Qtum blockchain Architect ,Neil has 20 years experience developing software and has four years experience in the blockchain space. Neil has Master’s degree in Business Administration from ISCAE, but later specialized in computer science. Neil was also a professional poker player and speaks four languages.