You can do much better with composable state machines, because everything you do gets the same level of security as the native token transfers https://www.radixdlt.com/post/radix-engine-a-simple-secure-s...
Disclaimer: I work at Radix
Does it matter whether the language is turing-complete or not? you're trusting a contract, not the PL used to write the contract, and the contract can be very simple (and formally verified, if the PL has a formal semantics).
Do you have an example?
1. https://eprint.iacr.org/2019/748.pdf 2. https://arxiv.org/pdf/1810.11605.pdf 3. https://eprint.iacr.org/2019/775.pdf 4. https://users.encs.concordia.ca/~clark/papers/2019_wtsc_fron... 5. http://homepages.cs.ncl.ac.uk/patrick.mccorry/minerbribery.p...
This one isn't an attack per se, it is mostly an exploration of arbitrage bots in decentralized exchanges running on Ethereum smart contracts. However, they point out that miners can trivially capture the value of the arbitrage transactions by front-running, and that this "free money" is like a bonus block subsidy that falls outside of the PoW consensus models:
6. https://arxiv.org/pdf/1904.05234.pdf
This one actually operates through transaction fees only, so it doesn't depend on smart contract functionality. However, it is waaaaay more expensive (for the attacker) than the others:
But more to the point: allowing smart contracts in a blockchain introduces all of the complexity of trying to make any other piece of software secure. Except... now it’s on a blockchain where the code is open source and mistakes can allow adversaries to steal money, not just data. How is this an improvement?
I think it’s great that more and more people are jumping in and learning what it’s like to develop in such an unforgiving domain (no point here, I just think it’s great!)
One of the ideas of PoW is that if you have enough money to bribe the miners, it's better for you to be a miner yourself. Is this the principle your examples weakens? I may have misinterpreted them.
It’s like... the people most interested in trustless collaboration are people who are untrustworthy. A trustless settlement layer seems fine, but any real human application is going to have an element of trust and doesn’t belong alongside settlement.
How to solve it? Well, I guess it needs more governance and rules :)
They've got a gagillion dollars in funding. What's the problem they're facing.
Everything scales too easily and massively when you digitize things. Especially money and voting.
You are also not going to have a say about paper money getting banned in the coming years. You'll have a choice between different digital currencies, most of them centralized and some that are not.
I also did a blog post in back in 2018 on whats keeping blockchains from full mainstream adoption.
For those interested, its here https://asindu.drileba.capital/2018/05/why-bockchain-is-not-...
Production ready in 18 months! Forever...
These two together have already caused lots of damage https://hackernoon.com/yes-this-kid-really-just-deleted-150-... and they make most real-world uses impossible.
It is pretty much impossible to sell anything digital with smart contracts, because due to the source code being accessible to everyone you can always figure out the password, key, or secret URL to whatever is being sold. Without paying for it.
From what I can tell browsing through this website those digital "assets" seem to be yet another speculative outlet with some limited gamification on top. It's cool from a technical perspective but where do we go from there?
I can confirm that the blockchain is way more convenient than centralized solutions for buying and selling digital assets once you get over the initial friction (which is still way too much). The keys here are open standards, composability, and trustless atomic transactions. As a user, I basically look at ethereum as an in-game currency—and the game is the whole of the ethereum gaming space (still nascent, yes, and polluted by a great many scammy speculative shell games) rather than a single game.
As for working outside of digital asset use cases, there are certainly a large number of people trying to get it to work though I agree the use case is much less clear cut. Without exactly agreeing with Vinay here, I at least appreciated the perspective he shared in detail on this episode of the NonFunGerbils podcast: https://nonfungerbils.com/podcast/3-vinay-gupta-indexing-the...
Pirating most software/movies/music is pretty easy, but people still sell it. I'm not sure this is as big a problem as you think it is.
One example is MakerDAO which has around $300 million in value locked, and has been running without incident for a while now.
Although the main achilles heel with Maker is the governance and the oracle. The new version of maker has minimised the governance, and the new oracle design has better protection against an oracle attack. Ideally, you want as little governance as possible.
This may have been true in the past, but not anymore. Here's [1] an example of a minor bug that was recently discovered in the MCD deployment and how they're going to patch it. The modules in the Maker system have variables that point to which smart contract to call to execute their actions, and the Maker governance is involved in changing these values.
[1] https://forum.makerdao.com/t/proposal-upgrading-the-flopper/...
If some entity holds the keys to control what code is run, why not let them run the code to begin with? This simplifies implementation significantly, and has obvious scaling benefits.
You can still operate this in a transparent way with multiple independent stakeholders that validates data. Many other systems work this way.
The Maker system was bootstrapped this way, but now with the release of MCD, the system will be modified so that the Maker corporation's key is revoked and changes to the system will only be able to be made through MKR token governance votes moving forward. [1] When people refer to the "Maker governance", they refer to those decisions that are voted on by holders of the MKR token. In practice in the short term, the Maker corp will still hold a voting majority of MKR, but it's a long term goal that eventually the Maker corporation won't have to exist and the system is totally maintained by the holders of MKR token.
The more important reason though for doing it on the blockchain is reducing technological centralization. Right now, as long as the Ethereum network exists, the Maker system will be on the blockchain and can't be shut down, even if the Maker corporation is dissolved.
US FinCEN has recently set their eyes on stablecoins, declaring that the entities that offer them will need to comply with KYC regulations. [2] By deploying the system on a public blockchain, it's arguable that the US govt will not be able to cease the distribution of Dai itself and will only be able to go after its holders.
[1] https://forum.makerdao.com/t/mkr-token-authority-transfer/83...
[2] https://finance.yahoo.com/news/fincen-stablecoin-issuers-mon...
If you disagree, would you be fine with changing the political and justice system of your country into a fully opaque black box? As in, you still can vote for the policies you want, but it's impossible to know how the government functions, what are the reasons for its decisions, or even who personally forms the government, to the point it could be run by aliens or an ai. Sometimes people are arrested for crimes, but it's impossible to know what's the evidence or even what the crime was, even after sentencing.
If you don't consider this equivalent to the currently utilized system in your country, you have to agree that there's value in trust minimization.
A blockchain? not so much
You basically replace trust (with doubts) with faith.
All of this research is producing a fascinating array of solutions in search of problems. Fun stuff to think about, but I suspect that the added complexity will only create a system that is just as prone to fraud and abuse as the existing centralized order.