...or the contract will outsmart you.
tl;dr: So-called smart contracts are software built into a #blockchain. The problem with that is, very few people can read and understand the precise conditions of the contract. A smart contract may not really be what you think it is. Demonstrated on the real-life example of #SmartCoins on the #BitShares blockchain.
SmartCoins in BitShares
SmartCoins, aka BitAssets or MPAs (for Market-Pegged Assets), are counterparty-free price-stable crypto-tokens implemented on the BitShares blockchain.
Invented by Daniel Larimer, the concept is elegant and simple. It consists of three basic parts:
A group of elected individuals ("Witnesses") monitor the price of BitShares (BTS) on crypto exchanges. They publish the BTS price in relation to real-world assets, e. g. USD, on the BitShares blockchain. From the individual prices published by each witness, the blockchain calculates the "price feed", which is used as the fair value of the #BitAsset, e. g. bitUSD.
Anyone can create BitAssets, e. g. bitUSD, by locking up sufficient collateral in BTS. The newly created BitAssets can be sold, which brings their creator into a short position. He owes the blockchain the BitAssets he created, and has locked up collateral. The blockchain monitors all short positions. If the value of the collateral drops below 175% of the owed BitAssets, the blockchain tries to buy the owed BitAssets on the internal exchange using the collateral, in an attempt to close the position.
Anyone holding BitAssets can request settlement. 24 hours after a settlement request, the holder will have his BitAssets exchanged for an equivalent amount of BTS.
In theory, this set of rules provides provides incentive for market participants to always push the price in the direction of the price feed:
If bitUSD trades below the feed, market participants can make profit by buying and settling, thereby driving the price up.
If bitUSD trades above the feed, market participants can create and sell in the hope for a future profit, thereby driving the price down. Note that going short always comes with a risk - being able to sell at a premium reduces that risk.
The settlement guarantee
The third of the three parts, the settlement option for holders, is the part that indirectly defines the peg. Holders can always be certain that they can get at least the equivalent amount of BTS for their BitAssets, which they can subsequently sell on an external exchange.
Every piece of documentation on BitAssets I've found mentions this settlement option, and some even call it a guarantee:
https://bitshares.org/technology/price-stable-cryptocurrencies/
SmartCoins are guaranteed to be worth at least their face value
Oookaaay... but where's the fine print?
The BitShares ecosystem is supposed to be mostly self-governing. Everyone who is holding BTS can vote on certain aspects. As mentioned above, Witnesses are elected through this voting process. There's also an elected Committee.
While Witnesses perform the grunt work, i. e. keeping the blockchain alive, the Committee is about making policy decisions. Most of the operating parameters of the blockchain can be changed at runtime, by the committee. The committee is supposed to make their decisions based on community input. Obviously, it is a difficult and time consuming job to balance everyone's interests, and I'd like to stress that I'm impressed with the work done so far by the committee members.
The parameters that can be modified by the committee are not only parameters of the blockchain in the narrow sense. The committee can also set parameters of the tokens they have issued. Formally, the committee is the issuer of most BitAssets. And this is where the fine print comes into play.
Two of the modifiable BitAsset parameters are related to the settlement option:
max_force_settle_vol defines how much (as a percentage) of the existing BitAssets can be settled per hour. It defaults to 2%, and it is supposed to prevent abuse.
force_settlement_offset modifies the price at which settlement happens! It defaults to 0, which reflects the "big print" documentation:
https://bitsharestalk.org/index.php/topic,8390.msg241324.html#msg241324
The settlement will always happen AT the feed
In other words, the smart contract which BitAssets holders have entered really goes like
SmartCoins are guaranteed to be worth at least their face value but this "guarantee" is worth less than the average piece of toilet paper because we can rip it out of your hands whenever we feel like it!
WTF???
At the time of writing, a proposal exists to change the abovementioned parameters on the bitCNY #MPA. Should the proposal be accepted, the max_force_settle_vol will be reduced to 0.5% per hour, and even worse, the force_settlement_offset will be set to 1%. This effectively devalues bitCNY by 1%. I call this robbery. The usual term in the cryptosphere is #SCAM.
Ironically, voting on the BitShares chain is only for holders of BTS, not for the holders of bitAssets. IOW only the shorters (who profit from the proposal) get to have a say in the question, but not the holders of BitAssets (who are directly damaged by it).
Astonishingly, discussion on the bitsharestalk forum shows that a large part of the BitShares community doesn't seem to have a problem with the making and breaking of guarantees. This may have something to do with the fact that members of the bitsharestalk forum are more likely to hold BTS than BitAssets.
Conclusion
The damage is done. The mere fact that the proposal exists proves that the so-called "settlement guarantee" is worthless. This applies not only for bitCNY (which is the only BitAsset to be modified by the proposal), but for all BitAssets (because the same rules apply to the other assets as well). Furthermore, the reaction of the community shows that we live in a world where you can't trust anyone.
Thanks for destroying a beautiful, working idea, you selfish bunch of scammers!