The University of Nicosia (UNIC) is the driving force behind this development platform that enables the issuance and verification of certificates on the Blockchain, for everyone. UNIC was the first institution to issue academic certificates whose authenticity can be verified through the Bitcoin blockchain (September 2014). These certificates were issued to students who successfully completed or participated in DFIN-511 Introduction to Digital Currency, which was the first university course offered on the new and exciting field of cryptocurrencies. The new knowledge and technology created, is applicable and can scale to all universities and any organizations that issue certificates and credentials.

The block.co is an open, decentralized and transparent platform that provides a secure method to issue and authenticate certificates without the fear of them being modified or lost, even if the issuing organization ceases to exist, using blockchain. It eliminates the conventional processes of issuing certificates and goes beyond simply digitizing them, to solve a plethora of real world complications such as lost certificates, validation, as well as lost or modified records.

Design Parameters

  1. The process involves no other services or products other than (in this case) the Bitcoin blockchain;
  2. The process allows anyone to authenticate an allegedly valid certificate from any institution without having to contact them;
  3. The process allows someone to complete it even if the institution no longer exists (or, more likely, if the institution’s website no longer exists in its current form or records are lost and so on);
  4. The process ensures that there is no way for someone to copy it and create a set of inauthentic certificates predating first public announcement. A transaction through our system, will always predate any potentially fraudulent submissions to the blockchain;
  5. The actual certificates are easy and intuitive for users to view / share / etc., thus we opted for a method that will be based on normal PDF files.


The whole approach is based on document hashes, in our case using an algorithm called SHA-256 (the same used in the Bitcoin protocol). Hashing, is an algorithm that takes as input any arbitrary data (in our cases, it would be the PDF documents of the certificates) and produce a series of unique numbers and letters. You cannot recreate a document from a hash, but you can recreate the hash from a document.

The hashes we’re using look something like this:


Learn More

There are hundred of students per graduation and each will be awarded a certificate. However, we want to be able to issue only one hash that represents all those certificates.

We achieve this by using a Merkle tree structure. In essence certificates’ hashes are combined and then re-hashed to create a tree like structure which represents the whole set of certificates and any change to any of the certificates will result in a completely different root (top) hash.

Learn More

The hash of the document is then entered into the OP_RETURN field in an unspendable Bitcoin transaction to serve as the permanent record underpinning the overall approach we are taking (something previously demonstrated by www.proofofexistence.com). We remember the transaction identifier for later use.

Learn More

If the certificates are to be self-verifying, each certificate needs to include all the instructions needed to self-verify. This presents an interesting chicken-and-egg problem in that we don’t know which Bitcoin transaction the hash will be included in until we create the transaction, but if we enter the transaction into the certificate we will change its hash.

We resolved this issue by placing extra metadata in the pdf file after the issuing in the blockchain. The metadata are stored in a way that will not change the file structure so it is possible to verify. The metadata contains, at least, the merkle root hash, the merkle proof, the transaction identifier, the issuing institution and the public address used.


The software to issue and validate digital certificates on the blockchain is open source software (MIT license) available in github for everyone to use. It currently provides the following functionality from the command-line:

  • Creates the certificates themselves from a template and a CSV file (readying them for blockchain publishing)
  • Enables existing certificates with the appropriate metadata (readying them for blockchain publishing)
  • Issues blockchain-ready certificates into the Bitcoin blockchain
  • Validate blockchain-issued certificates

A web application is also developed to provide a GUI for validation; a user uploads the certificate which is verified using the command-line tool. A simple version of this application is planned to be open sourced.

Issue Your Own Certificates!