TruCol aims at building a decentralized, trust-less platform for test-driven programming development.

The problem TruCol solves

Utilizing Ethereum smart contracts and a bounty-based system, we hope to contribute to the online programming job market by providing developers the opportunity to contribute regardless of their geosocial circumstances, gender or ethnicity.

The presented protocol has the potential to increase market efficiency of new and existing developer bounty programs. This potential is realized by eliminating the need for trust between sponsors and bounty hunters allowing the middle-person to be eliminated from the transactional chain. That way, the protocol creates a free and fair job market within which income inequalities between countries are eliminated. Such a free and fair developer market enables a thriving community of development that can positively stimulate growth of experience and knowledge. This way, we contribute to UN Goal #8, to “Promote sustained, inclusive and sustainable economic growth, full and productive employment and decent work for all”. The emphasis for us lays on inclusive, fair, accessible and decent work for all.

Challenges we ran into

One crucial element of our protocol is the prevention of gaming and hardcoding the answers to the bounty tests. Of course, the smart contracts are public, on the chain. To prevent gaming, some kind of encryption or randomization needs to be implemented, while still remaining as decentralised and trustless as possible. The protocol now presents various solutions. One would be to make use of an oracle, which provides random values to the test contracts. Or, by random hash verification via an oracle, which can be read more about in
Within the protocol it is not possible for the sponsor to obscure tests for the bounty hunter because this would require the bounty hunter to trust the sponsor to write accurate tests. A possible solution to this would be for the sponsor to ask for a computationally more efficient implementation of a pre-specified problem.

The public nature of smart contract also introduces the problem that solutions to the bounty tests are visible to third parties. This is not a problem when focussing on open-source bounty tests, which is what we decided to do.

Expanding the possibilities of the protocol by allowing other commonly used programming languages to write tests and solutions is one of our key goals.
Often, smart contracts are written in solidity, and require quite some gas. Therefore, it is expensive to run the tests of the sponsors as well as the solutions of the bounty hunters in the smart contracts. The decrease in gas cost associated with more efficient blockchain technology, like Ewasm 2.0, mitigates this problem. When gas prices are lower again, it is possible to create larger test and solution contracts without paying a large sum of money. Another solution that we have implemented to avoid extensive code in the smart contracts, is an extension of the protocol to the universally used development platform GitHub and usage of Continuous Integration (CI). The smart contract uti