The level of code safety in smart contracts is abysmally bad today, Ethereum didn't further the state of the art with EVM/Solidity (quite the opposite), and this needs to be fixed before any serious business can rely on a DApp.
Smart contracts are like aerospace engineering, not like iStore apps development; delivering slightly buggy code, written as fast as possible, by easily interchangeable developers, doesn't cut it. It's worse than for aerospace actually: when you design a plane, your opponents are the laws of physics, which merely don't care about you. When designing a smart contract, hackers are specifically after you, and statistically, some of them are smarter than you and your code.
> 2. I locate and bribe/extort your main influencer/s
How is it different from the current practices of bribing executives and misleading shareholders (naively supposing that shareholders need to be mislead in order to pass bad, narrow-sighted judgements)?
> There are so many other fun problems with code-as-immutable-law for human institutions.
Indeed!
> It's concerning that none of these are even remotely addressed in the Colony literature
I take Colony as an experiment. As hinted above, I think you'd be a fool to bet your livelihood on some Solidity code. I don't think we're able to foresee which of those problems matter, nor the compromises which best mitigate them. Like in code optimisation, you need to measure before acting; Colony will meet those issues, will try to address them, and may or may not survive the process. Whether the lessons learned benefit Colony 2.0 or another project raised from its ashes, it's hard to say, but in the great scheme of things, it doesn't matter much.
> ...bribing executives and misleading shareholders
You raise an interesting point - in a Colony there is presumably no concept of enforceable fiduciary duty to shareholders (because there are none - we're not trading securities, we're trading plastic house chips on a blockchain). There are no legislated considerations for other members/colonists/dappsters/etc. I can vote/act with impunity, regardless of value creation/destruction potential. Welcome to the legal grey zone.
> I take Colony as an experiment.
As do I, and one I hope succeeds. But I'm not sure THEY do, which means early adopters are riding a bet that Colony gets it right the first time.
Oh, the drama! It might be compelling to join as a perfect substitute for an HBO subscription, who needs game of thrones. You might see a group forged in a decade of Eve online alliance warfare fighting mob hackers fighting two competing factions of hedge fund managers fighting a 4chan prank.
On the other hand, sufficiently boring organizations (e.g. stewardship of some greying enterprise software open source) with peeexisting informal trust networks should be perfectly safe. But would they need "colony"?
Security is as security does in a lot of these cases, so if it functions as a security, you're likely to run into encounters with the SEC.
How do you informally convince code to stop trusting a certain influencer? You'd have to put in code paths managing this first, because code is a physically binding regulation.
The situation you really are getting at is one in which the Common Colony is mature enough that the 'recovery mode' features have been disabled and the contract is in full community control (a reasonable assumption if the Common Colony is pulling down $10M a year as you suggested). In this case, it also seems reasonable that some of that $10M a year will be spent by the Common Colony on bug bounties and internal security, paid to experts who have the highest reputation scores. If somehow there was still some brilliant exploit by a hacker who was both skilled enough to outsmart many, many world-class developers all working together, malicious enough to forgo the generous bounty awarded for disclosing the exploit to the Common Colony security domain, and downright detestable enough to willingly crash an enormously successful DAO... well, the answer is simply ¯\_(ツ)_/¯
Hypothetical 2: This is where the reputation system gets interesting. If you really wanted to try to gum up a colony's inner workings by 'objecting to everything' or somehow interfering with the normal day-to-day workflows, you yourself would need some reputation score to do that. With each objection, you would be required to stake your own tokens and reputation on the outcome of the dispute. If the other members of the colony don't approve of what you're doing (I don't see why they would if you're trying to push the colony into the ground), they will vote against you and you will lose tokens and reputation. So with each unsuccessful attempt to interfere with the colony you hate, your own ability to influence that colony will diminish substantially.
Section 9 in the whitepaper describes these mechanisms in detail.
That's not a great answer to a very realistic case.
- brilliant exploit by a hacker who was both skilled enough to outsmart many, many world-class developers all working together.
- malicious enough to forgo the generous bounty awarded for disclosing the exploit to the Common Colony security domain.
- detestable enough to willingly crash an enormously successful DAO
If you think one or all of these attack vectors are not something to be concerned about (or worse, be sarcastically dismissive about) you have no business writing smart contracts or anything security related.
The three points above are all valid and absolutely important, and should be consistently and properly considered by anyone developing smart contracts or anything security related. There's no disagreement about that.
popcorncowboy, however, wanted to make an argument that assumed a security breach in order to make a broader point about "code-is-law" and DAOs in general, but was waiting for a response to unveil his second statement (which you can read now). The sarcasm was a response to the rhetorical and argumentative style of popcorncowby, not an illustration of the Colony dev attitudes toward the security of the smart contracts that will comprise the Colony network.
EDIT: phrasing
The many sentences that come before the shrug do nothing to address the very realistic scenario of a breach. The "sarcastic closing comment" was in fact the final truth of it.
You're assuming quite a lot of this hypothetical hacker - the response above clearly addresses the hypothetical by stating "here are the relevant reasons why this hypothetical is impossible or at least unlikely, and here are the relevant sections in the whitepaper for more verbose information".
>The many sentences that come before the shrug do nothing to address the very realistic scenario of a breach.
If you're assuming blackhat success for any conceivable project/company/database regardless of security measures taken to prevent it, what would an appropriate response even look like? What kind of answer would satisfy you?
Yes, by saying "the hypothetical is moot". Moot. And why? Because "in principle" "this should ... prevent the circumstances enabling such an exploit from ever happening.". Moreover, that we should simply trust that the intrinsic balance of economics means successful projects cannot exhibit a state in which a breach would be profitable, and anyway that the combination of someone smart enough, mean enough and motivated enough to breach is inconceivable.
Which could all be acceptable. Except if they're wrong even once, you lose everything.
> What kind of answer would satisfy you?
I see this response a lot on HN, and it's an obviously cheap shot.
If the asymmetry of outcomes in the two types of breaches is not obvious to you, then lets talk it out.
If an attacker breaches your real world company servers, they can cause a lot of damage. No question. They can steal IP, records, etc etc etc. The examples are legion. You're right.
But if they breach your Colony dAPP? They own you. Not metaphorically. They take de facto ownership of whatever value you've created.
No matter how incredibly well you can hack eg. Apple, you can't ever take over total ownership and control. Even if you hacked the Exchanges and somehow reset all the records, even if you compromised key board members, etc etc in the real world we have recourse, we have liability, we have laws and courts and means to make claims and pursue remedies.
But on the Blockchain? All your Colony are belong to someone-else the moment you edge-case a smart contract. Permanently. (Unless you can convince Vitalik et al to re-fork, case in moot point.) The equivalent would be if Apple ran a server that if you could figure out how to breach you could take ownership of Apple and total control of its operations.
So, "what kind of answer would satisfy"? One in which the design did not fundamentally and existentially depend on no-one ever figuring out a combination to a lock that gave them total and immutable control of a store of ever increasing value.
> It really seems like the most appropriate response to this is indeed ¯\_(ツ)_/¯
Except, if you've ever been decently burned by a clause in a contract, you'll know that the actual felt response is not even close to ¯\_(ツ)_/¯
In the real world, with an actual registered company/cooperative, you can call the police or sue people in court as a last resort. This is not possible in a distributed world, so a new kind of recourse needs to be invented, if that's even possible.
I think we have to forego the stereotype of lone wolf havker (or at least not treat as the only hacker stereotype) when considering having a large population put their valuables into a single pot.
I do the same thing when I assume that there will be bugs in my production software, regardless of any security/testing and measures taken to prevent it. Why is this suddenly less likely when we're talking about a DAO?
The answer that satisfies would of course be you still have the power to revert things if necessary, which you've already provided, but I'd never for the life of me imagine disabling it.
How's that any different from the current state? Execs of current companies are humans with power to run the company into the ground. You can extort/bribe them like that as well. How does it change anything?
> "How does it change anything?"
The action itself may appear the same, but in code-as-law systems the consequences of this action change everything. The system of governance is immutable. If I can coerce your primary influencer to destroy your Colony _there is nothing you can do about it_, because the system is still _working exactly as designed_. Like an AI auto-pilot flying you into a mountain at high speed because it got a correctly formed override instruction to do so.
In the real world we have multiple interpretive, negotiated, social conventions to deal with bad actors, agents and outcomes that violate the spirit or intention of underlying agreements.
The lack of these are EXACTLY the problem in a "code as law" system - and worryingly it shows that most of our intuitive responses to bad agency in these type systems is still "but it's the same in the real world". Except of course for the existential threat posed by immutability of consequence and recourse.
You cannot remove trust from collective human agency, you can only put it somewhere else and pretend like it doesn't matter anymore. Right up until it does.
> Execs of current companies are humans with power to run the company into the ground.
I get what you mean, but in practice you can't wilfully do this without serious consequence. To destroy value is to take it from someone. Fiduciary duty is a legal reality.
Edit: I do think a good "control test" of many of the code-as-law systems is to compare against cases about how it would be different than a ledger managed by a person & the existing legal framework around it, and then a centralized database with security around certain operations.
It is patently not a perfect system, but the failures are notable because they are not common. Most shareholder lawsuits against management are resolved before anyone ends up in headlines.
Hypothetical 1: You and a growing team of incredibly engaged Colony members build out a $10M/yr revenue stream. Edge case leaks 87% of tokens to a dedicated hacker. Sorry?
Hypothetical 2: I like/hate your successful Colony. So I locate and bribe/extort your main influencer/s to push your project into the ground (block work, object to everything, whatever) or in my preferred direction. Code is law. Obey?
There are so many other fun problems with code-as-immutable-law for human institutions, it's concerning that none of these are even remotely addressed in the Colony literature (not to mention that the full, binding, self-regulating dispute mechanism fails horribly in both the above scenarios).