Manuel Araoz, a 23-year-old developer in Argentina, has an idea for Bitcoin that doesn't focus on money.
Araoz, who works in game development, launched a service this week called Proof of Existence. It's essentially a notary public service on the Internet, an inexpensive way of using Bitcoin's distributed computing power to allow people to verify that a document existed at a certain point in time.
Araoz envisions it as a way to fight efforts to distort or lie about data. "My idea was to give journalists or private statistical agencies the ability to certify data at a certain point in time. If someone denies the data, you have something that proves the data existed," he said.
The Bitcoin system uses a distributed computing network to transfer the virtual currency from computer to computer. Part of the system involves "miners," or computers that cryptographically verify those transactions, which are entered into a public ledger called the "blockchain."
The strength of the blockchain lies in the fact that no single entity controls it. Instead, computers around the world repeatedly verify its integrity, making it a trustworthy, multi-gigabyte ledger based on public key cryptography.
"I always liked the idea of proving a document's integrity by a cryptographic hash," Araoz said in a phone interview from Buenos Aires. The problem, Araoz said, is that you don't know when a document was created.
Algorithms can be used to create a digest, or a cryptographic string that is representative of a piece of data. The digest created by a hash function is based on the characteristics of a document. No two digests are the same, unless the data used to compute the digests is the same.
Hashing algorithms are an important component of computer security and are often used to verify that an application, for example, is what it purports to be. The service Araoz launched this week lets users embed the long string created by the hashing function into the Bitcoin blockchain, which can be viewed by anyone.
The service does this by leveraging how the Bitcoin system sends the currency when a transaction is made. Bitcoins are sent from one 32-character alphanumeric address to another. The addresses are usually generated by a Bitcoin wallet, which handles sending and receiving the currency.
Instead of using those generated addresses, Araoz substitutes half the digest created by the hashing algorithm into one Bitcoin address, and the other half into another address.
He uses SHA-256 hashing computation to create the digest for a piece of data that someone wants to certify. But since the output of that algorithm is in binary code, his service changes the binary code into the hexadecimal number system, which makes it more readable.
Sign up for Computerworld eNewsletters.