September 4, 2026

Capitalizations Index – B ∞/21M

For Whom the Delegate Calls

Colony Blog
For whom the delegate calls

For Whom the Delegate Calls
For whom the delegate calls

The colonyNetwork codebase is large and complex.

Those of you interested in joining our bug bounty program might want a bit of a primer on the Colony Network contracts before diving in.

This article is meant to just provide a quick lay of the land, and to point you, dear hacker, toward where we think the bugs might be. We’ll also re-cap some of the bugs that have been discovered so far.

As always, we encourage you to read the docs to get a better sense of things, and come to gitter or post in the forums if you have questions!

Onwards!

Network Interface Abstraction

Colony uses the EtherRouter pattern for upgradability. You can read more about the pattern in this post about our token sale contracts, or get the slides from Elena’s TruffleCon presentation on the same subject.

The TL;DR:  the entirety of the colonyNetwork is accessed through a proxy contract called EtherRouter. EtherRouter looks up the correct version of the colonyNetwork in a resolver contract, and then passes the function on via delegatecall.

For whom the delegate calls

This means that contract calls for particular functions never actually are sent directly to the contract in which the logic is written.

Instead, all functions callable by external actors are exposed through an _interface_ contract.

Business logic, such as the creation and funding of a task, is split into separate contracts that are organized by the functionality they describe. The logic contracts inherit from a separate set of storage contracts, in which all storage variables are written.

For whom the delegate callsThe colonyNetwork hamburger model

Maintaining this ‘layered’ separation helps with developer sanity, and will allow for easier upgrades to specific components in future versions of the Colony Network.

Just for fun, here’s a diagram I made of most of the contracts that comprise the Colony Network. You can see the interface, logic, and storage layers separated, as well as which interfaces call which contracts:

For whom the delegate callsThis image is definitely a rough cut. Let @gichiba know on Gitter if you spot any inaccuracies!Bugs Squashed so far: Task Workflow

The most fundamental pattern in the Colony Protocol is the task. Tasks are discrete units of all the work that is being tracked by a colony, and it’s exclusively through the completion of tasks that reputation can be earned within a colony.

The task lifecycle lives in colonyTask.sol

From start to finish, the life-cycle of a task looks like this:

Create

For whom the delegate calls

Modify

For whom the delegate calls

Rate

For whom the delegate calls

Payout

For whom the delegate calls

One recent bug discovered in the task workflow during the rating period enabled an attacker to submit null ratings and trigger finalization early, potentially resulting in an un-deserved reputation bonus if exploited correctly.

The potential impact of this bug was relatively low, given that it would have to go un-noticed by both manager and evaluator for 10 full days, but it’s still an excellent catch!

Thanks Jakob, to the tune of $1,200 DAI!

Token Auctions

One of the more interesting aspects of Colony’s economic model is the token auctions of the Meta Colony, the colony which performs network upgrades and maintenance.

Essentially, the Meta Colony stays funded through a small network fee imposed on any colony’s tasks as they are finalized. For tasks paying out in Ether, that fee goes straight to Meta Colony revenue – but tasks can payout in any ERC-20 token.

Other tokens collected through the network fee are put into a dutch auction contract to be sold for CLNY, which is burned.

User Destiner discovered that under certain conditions, a token auction would not be able close properly. This could have resulted in some* stuck tokens!

$1,500 DAI to you, good sir!

*Because token auctions happen at most once per month per colony, using just a small percentage of each colony’s task value, it wouldn’t represent a lot of lost tokens, but it’s still a significant find.  

Secure the Network (and make some $)

The Bug Bounty program is still going strong! We want YOU to come kick the tires in on our Rinkeby deployment or on the colonyNetwork repo.

To participate, all you gotta do is submit an issue describing the vulnerability, or send us an email at security@colony.io – go on, try us.

For whom the delegate callsFor whom the delegate calls

Colony is a platform for open organizations.

Join the discussion on Discourse, follow us on Twitter, sign up for (occasional) email updates, or if you’re feeling old-skool, drop us an email.

Previous Article

Nvidia Enters a Nosedive After an Underwhelming Third Quarter

Next Article

Regulierungs-ECHO KW46: Internationale Töne aus Deutschland

You might be interested in …

The EU Is One Big Fatal Flaw

zerohedge.com / by Tyler Durden / Apr 1, 2017 6:00 PM

Authored by Raul Ilargi Meijer via The Automatic Earth blog,

The true face of the EU is presently on display in Greece, not in Germany or Holland or France. Brussels must first fix what’s going wrong in Athens and the Aegean, and there’s a lot going wrong, before it can move on towards the future, indeed towards any future at all. It has a very tough job in Italy as well, which it’s trying hard to ignore.

You can’t say ‘things are fine in Germany’ or ‘Finland is recovering’ and leave it at that. Not when you’re part of a political -and to a large degree also economic- Union, let alone when you’re preaching tightening -and deepening- that Union. Not when parts of that Union are not only doing much worse than others, but are being thoroughly gutted. Then again, they’re being gutted by the very Union itself, so Brussels -and Berlin, The Hague, Paris- can’t very well feign surprise or deny responsibility.

Of course the European continent needs a ‘body’, some form of organization -and it needs it badly- that will allow its nations to cooperate, in 1000 different ways and fields, but the EU is not it. The EU is toxic. It is turning nations against each other as we speak. So much so that it’s crucial for these nations to leave the union and dismantle the entire operation before that happens, because there will be no opportunity left to do it once the toxicity takes over. The UK should count itself lucky for getting out while it did.

In its present setting, the EU has no future. And, more importantly, there is no mechanism available to change that setting. It should have been insisted on when the Union was founded, or in one of its various treaties after. This never happened, though, and that’s no coincidence, it was always about power. It’s therefore very hard -if not impossible- to see how the EU could be altered in such a way that it has a chance of survival.

READ MORE

The post The EU Is One Big Fatal Flaw appeared first on Silver For The People.