Senior Project

View project on GitHub

To see the main page click here.

Why do we Need Certifricates?

The Mallicious Server problem and Man-in-the-Middle attack forces an extra step for non-paying servers and relayed bounties (read: ones that were not sent directly by the issuer). In order to distinguish between attackers and genuine bounties, they must be vetted by a third party. This can be done by making a certificate authority. If a user encounters an unpaid bounty, the user will verify its certificate. It does this as follows:

In the worse case scenario (the bounty contains a certificate and signature, but is invalid), this verification takes an additional 340μs. While this is by no means ideal, it is (as of yet) the best available solution. The certificate authority will be spun off to the overall Bitcoin community in order to keep some element of decentralization.

How to Request a Certifricate

In the main branch of the repo, I've included a file called If you run the method called exportProof() and pass in your private key, it will generate a signed request for a certificate. To request a certificate, publish this in a known channel of your venue, and send that link and the request to I will reply either asking for further proof of identity, or with your certificate.