A decentralized, trustless platform for test-driven programming development

ETHCC 4 · July 2021 · 11:58

Victoria Bosch presents TruCol, a protocol for a decentralized market in test-driven programming. She describes Solidity-based automated bounties that allow people to specify or complete development jobs, including computationally difficult problems.

Speakers

Topics

From ETHCC 4, hosted by Ethereum France.

Transcript

okay hey everybody okay this is super exciting this is a really big room um hey i'm victoria and today i'm presenting uh truecall it's a decentralized trustless collaboration protocol for test-driven development and we aim at increasing developer autonomy and market efficiency by leveraging the power of smart contracts in a bounty based system so first of all a little overview of the presentation i will tell you why we are here how it works the challenges that we face how we approach them and the various applications of the protocol and its impact so first of all why why are we here and why did we

develop this so we started developing the protocol at the east denver hackathon earlier this year after we noticed that we did not always have the the time or skill for specific coding work ourselves when we were setting up our own company and we thought setting out bounties would really provide a great solution for this however existing systems really require an often costly middleman and a modicum of trust between all parties so yeah for for whom is the protocol so as a company you may be looking for a specific algorithmic optimization and you want to harness the power that comes out of a global competition also you would maybe not like to give a large cut of the payout to a mediating platform

and as a developer you may want to be more flexible with which jobs you take on and when perhaps you need a bit of extra cash or you want to learn a specific skill and practice or perhaps bounty hunt full time and would like a more secure and higher payout so the truecall protocol allows for both employers and developers to become more independent by removing the middleman and thus the need for trust thereby we increase their autonomy while also increasing the market efficiency you don't have to spend time hiring people for such jobs there's no cut taken from the bounty and the smart contract pays out automatically once the job is fulfilled setting out a bounty allows for a worldwide competition which is

especially interesting in the space of algorithmic optimization we believe that all of this stimulates an open and unfair developer markets because it enables anyone in the world to participate as long as they have access to the smart contracts this also means that a hiring bias is eliminated and the thresholds to getting work may be reduced so how does the protocol work in short all you need is two smart contracts and a source of randomness you need one contract for a test specification and one for a solution the randomness is to ensure that the bounty hunter cannot hard code the solution um so suppose alice the left one wants some well-defined challenge to be solved for example uh the most efficient

employee scheduling of her company so she writes a set of unit tests that check for any given solution using some randomized inputs alice publishes a unit test in a smart contract and sets a bounty for any other contract that solves it bob the bounty hunter codes codes up a solution in his own smart contracts which calls for a contract in order to receive the bounty if alice's requirements are fulfilled the smart contract will automatically pay out the reward so just a little recap for those who don't know test driven development is like a software development practice that determines the quality of a solution on whether it passes the unit tests which are written before the code itself it increases the efficiency of delivering good code results

and we think that it has some great potential and also yielding better code solutions so by increasing the skills of test specification also the solutions will be of higher quality and especially in bounty hunting collaboration utilizing good unit test specification removes unnecessary communication and also ensures a satisfying result for both the employer and the developer the structure of the smart contract really themselves well for test driven development we think because the contracts are essentially pieces of code that are executed when the requirements are fulfilled so i probably already hear you thinking that gas is super expensive writing all the tests on chain in smart contracts is super constraining um it's expensive and constraining when

it comes to programming language choice um so yeah that's true the user can determine their desired level of decentralization has the freedom to choose whether they want to publish a test specification completely on chain or make some use of git continuous integration and oracles to verify the completion of the task furthermore um we intend to host a driving ecosystem in which knowledge is shared and here the users can also find the gui an api if they if they want to make use of it because the protocol is free for everybody to use and implement as they please and but on this in this ecosystem they can also find posts and discuss jobs um okay so we're already faced with

quite some challenges first of all we would like to prevent the hard coding of tests so we propose to do this by for example using chain links verifiable random function vrf to randomize the test inputs um furthermore we would also like to prevent the hacking of tests through edge cases this can be achieved by proper test specification that cover these edge cases we will also as i just said before facilitate more programming languages beyond solidity to increase user freedom we think that there are various solutions to this challenge to this challenge an option would be for example to implement the protocol on various different chains this maybe enables

using rust another option would be to utilize e-wasm to facilitate c and c-plus plus and also enabling some transpiling um or you can use a smart contract to refer to a git repository that contains its test specifications and solutions together with some continuous integration and an oracle that fetches its status the smart contract can then be informed of whether the solution has passed the tests this allows for coding in all programming languages instead of only solidity and in parallel it significantly reduces the gas costs so this approach may sacrifice some decentralization uh but as you may have seen here on the conference there are some decentralized cas

ci sorry available on the market and we think it's up to up to the user to choose one that is most suitable for their project so protocol weaknesses after we have faced these challenges we are left with two weaknesses first of all it can be difficult to identify the appropriate tasks to offload and second it can be quite hard to secure your test specification to prevent hard coding sorry not hard coding but sorry i just lost my words not hard coding but hacking sorry the test hacking yeah okay and this is why we propose a consultancy that helps employers get

the most out of the protocol so the protocol is is an idea it's free for everybody to use but this is how we approach these weaknesses so our value proposition is to aid the identification of appropriate tasks to offload into the protocol and also help improve the security of the smart contract test specification so its applications are various varied so the protocol is aimed primarily at algorithmic optimizations of empty hard and complete problems yet the beauty of the smart contract requirement is that you can work with any deterministically verifiable key performance indicator so for example an example would be airports that set out some bounties for

a predictive passenger uh model that payout if the amount of departing passengers is predicted with uh an accuracy of for example 90 so this can be done with our protocol when the data is published on chain another example uh something for the future we'll be applying the protocol for ai engine specification such that ai engine such as gpt3 could also generate solutions that are compliant with the requirements the various established markets that typically deal with algorithmic optimizations and may make use of the protocol are algorithmic trading logistics for example for a router scheduling material science so for example algorithmic material discovery pharmaceutics

drug discovery artificial intelligence classification also we think there are various upcoming markets that may benefit from the protocol for example neuromorphic computing they're emerging new computational complexity frameworks that may benefit from this worldwide competition space engineering very energy constraints and algorithmic optimizations are always wanted and needed another advantage advantage here in space engineering is that the test-driven development is a really common practice quantum computing many new algorithmic developments coming and currently taking place additionally um

we are interested in diversifying our activities as i mentioned before facilitating some kpi based predictive models uh using on-chain data and teaching requirement specifications such that ai engines can also solve some generic tasks so lastly the impact we think this is a practical application of blockchain technology that empowers autonomy of employers and developers it can enhance the algorithmic efficiency of companies in various sectors the protocol potentially is of use for many growing markets and exports some expertise in a in a driving knowledge ecosystem we really believe that this enables an open and fair developer market

and we think that the protocol does contributes to unsustainability development goal 8 by promoting inclusive fair and accessible workflow for all yeah okay this is roadmap we are currently developing the protocol ecosystem and are soon launching the truecall consultancy and the help is needed if you want to join um please contact us so to close off we think that the presented protocol has the potential to increase market efficiency um and is realized by eliminating the trust between employers and bounty hunters allowing the middle middle person to be eliminated from the transactional chain this way the protocol creates a free and fair developer market

that enables a driving community in which experience and knowledge is shared um yeah so i would be glad to hear your questions and ideas please feel free to contact us and contribute if you want check out our website and github thank you [Applause] any questions no you