Open Sourcing Our Bounty Protocol

Quantstamp Labs
August 26, 2019

We are open sourcing the code for our Bounty Protocol. A bounty protocol is a marketplace for developers to identify bugs in smart contracts that automation cannot detect. The Bounty Protocol has the potential to leverage software engineering talent from around the world to add an essential layer of infrastructure for blockchain security.  

‍

Why we need it

Over 250 million USD has been lost or stolen due to bugs in smart contract code. In order to scale the security of smart contract blockchains using automation, we created the Quantstamp Security Network. Although the Quantstamp Security Network detects vulnerabilities such as the re-entrancy bug that led to the DAO hack in 2016, there are certain bugs that currently only human auditors can detect. 

The Bounty Protocol supplements our automation by allowing human developers from around the world to report more nuanced vulnerabilities and check for bugs against specifications. 

The Quantstamp Bounty Protocol has 3 roles: Bounty Providers, Bug Hunters, and Judges.

How it works

A Bounty Provider is someone who submits their smart contract for review to the Bounty Protocol. 

Any developer, which we will refer to as bug hunters, can then review the smart contract code and report vulnerabilities if they find them. In order for the bug hunter to receive their bounty, judges must vote to decide if the bug hunter did in fact report a valid vulnerability. The judges are selected using a QSP-based token curated registry (TCR). 

If enough judges vote in favor of the bug hunter, the bug hunter receives their bounty. 

‍

Commit-Reveal Schemes 

The Bounty Protocol uses two commit-reveal schemes in order to prevent judges and bug hunters from gaming the system. 

Bug hunters submit reported vulnerabilities using a commit-reveal scheme in order to prevent front running. Without a commit-reveal process, a malicious actor can wait until an honest bug hunter submits a report on the blockchain. While that transaction is pending, the malicious actor can submit that exact answer but with a higher gas fee. If the transaction is processed first, the malicious actor succeeds. 

Judges only receive a reward if they vote with the majority. In order to prevent early votes from biasing the votes of judges who vote later in the process, judges first submit a hash of their vote. After this period is over, judges submit a second transaction with their revealed vote. 

Why open source?

By open sourcing our code, we anticipate that Quantstamp Security Network users will benefit in two ways: 

  1. Enhanced security and code quality: We anticipate the quality and security of the network to increase because engineers from the open source community have the option to suggest edits to the code. 
  2. Transparency: Users will be able to independently verify that our network operates as we claim it does. 

A couple of users have already submitted issues and we look forward to reviewing them.  

Further Information

Check out our repository or learn more about how the Bounty Protocol works.

Does your smart contract have a re-entrancy bug? πŸ›
Scan Now
September 5, 2019

Securing DeFi with PoolTogether

Quantstamp is facilitating the future of DeFi by enhancing the security of leading open finance projects like PoolTogether, a no-loss lottery and innovative savings account application.

September 3, 2019

Quantstamp Community Update August 2019

Quantstamp Security Network update, releasing our Bounty Protocol, speaking at DEFCON- it’s been an exciting month at Quantstamp.

August 21, 2019

EthBerlin Security HelpDesk Details, Security Award & Hosted Points Bonus from Quantstamp + MythX

Quantstamp and MythX are very excited to support EthBerlin this year. If you're participating, come find us at the HelpDesk, your one-stop resource for any security-related inquiries. Need suggestions on more secure code implementations or advice on mitigating certain vulnerabilities? The HelpDesk is available round the clock to offer guidance and assistance throughout the hackathon.

August 19, 2019

What is a Re-Entrancy Attack?

Computer scientists say that a procedure is re-entrant if its execution can be interrupted in the middle, initiated over (re-entered), and both runs can complete without any errors in execution. In the context of Ethereum smart contracts, re-entrancy can lead to serious vulnerabilities.