A computer science student in the Netherlands has developed a cheap and censorship-resistant messaging service built on top of the bitcoin blockchain.

The new tool was developed by Krzysztof Okupski as a graduation project while at the Eindhoven University of Technology. Notably, the 25-year-old is also the author of the Bitcoin Developer Reference.

Using a combination of techniques with the explicit goal of being as cost-efficient as possible, Okupski has possibly developed the cheapest method for broadcasting messages over the bitcoin blockchain to date.

“I was on the lookout for a topic related to bitcoin, when my graduation supervisor, Dr Boris Škorić, came up with the idea to use the blockchain for evading censorship,” Okupski explained. “Due to the humanitarian nature of the project, I immediately agreed that it was a good idea and went to work.”

Okupski hopes that his software might one day help dissidents worldwide to circumvent restrictions on freedom of speech.

He said:

“Binding a payments network like bitcoin together with an anti-censorship system forces any repressive government to either accept or abandon both. Abandoning it might not be very smart, however, since bitcoin is an active and growing currency that an economy could benefit from.”

Tuning in

The basic idea behind the software is straightforward. The service connects to a user’s local Bitcoin Core wallet, and recirculates funds within it. To transmit messages, the software embeds data in the fundamental building blocks of each transaction, such as signatures, public keys and even transacted amounts.

Since these transactions transfer funds between addresses that are always owned by the user, they remain in his possession. As such, no significant amount of bitcoin is lost, although a broadcaster does need to pay mining fees in the process.

In order to read the message, a user needs the same client, along with a so called ‘identifier’ provided by the author of the text. This determines what parts of the blockchain should be read, and is therefore somewhat comparable to tuning an antenna to the correct frequency.

Affordable solution

While Okupski’s design is not the first solution for transmitting messages over the bitcoin network, he believes it’s a far cheaper and more efficient option than any existing alternative out there.

“Before I started to write the software, I conducted an extensive analysis on what freedoms the bitcoin protocol has that would allow for the inclusion of arbitrary information in transactions,” he explained, adding:

“In the course of about nine months, I have identified all elements that can embed data, and have constructed a model, which I then optimized with respect to the cost rate in satoshi per embedded byte. Additionally, I’ve included a simple text compression algorithm, which reduces the total size of all data.”

Results from Okupski’s software show that – in the best case – the cost rate lies at approximately 16 satoshis per embedded byte, or about 60,000 satoshis for an article of this size. That’s less than a quarter of a dollar at current exchange rates.

Another interesting attribute of the project is the ability to chain messages together, which might be a useful option for creating news services that run on top of the blockchain.

Whenever a new message is published, Okupski said, it can be chained to the previous one. This allows any user in possession of the required identifier to read all future messages without the need to obtain any additional information. “Just type in the address and check if any new messages have been posted,” he added.

Work still to do

A possible downside of Okupski’s software, however, is the intensive use of the bitcoin blockchain for purposes other than transferring funds.

Not only does this cause ‘blockchain bloat‘, but, if successful, might also drive its own cost of use up, since competing transactions could increase the required mining fees.

“If my messaging system really catches on and becomes very popular this might indeed be an issue,” Okupski said. “But as long as it’s merely used by a handful of news services, it’s negligible. Besides, blockchain bloat is a problem with or without this software.”

Furthermore, Okupski emphasised that it would in practice be difficult to actually use his system right now, since the software is only at the proof of concept stage.

“Several parts of it would need to be improved before it can be deployed in a practical sense,” he said. “For instance, it would definitely need to be made quite a bit more user friendly and, more importantly, there needs to be some kind of evaluation to determine what kind of security guarantees it provides.”

For instance, because of the highly irregular nature of transactions used by the messaging system, it should be noted that broadcasts are not necessarily untraceable. Users who know what to look for should be able to decipher messages from the blockchain even without the identifier.

Okupski added:

“And although broadcasters cannot be censored, they should not expect to be anonymous. Readers, however, cannot be distinguished from ordinary bitcoin users.”

For now, though, Okupski has put his project on hold. “I don’t think it would take much work to finish the implementation, but I won’t be continuing the project at this time. Although I do hope that with the right support, it might evolve into a full grown project in the near future.”

Other approaches

While Okupski’s design is not the first solution for transmitting messages over the bitcoin network, most alternatives create unspendable outputs, meaning transacted bitcoin amounts (although small) are lost forever. They also make limited use of the available transaction types.

One alternative publishing service, CryptoGraffiti.info, lets users write and read arbitrary messages on the blockchain via a web interface. Reddit user Adam Smith also recently released his own blockchain publishing service called Stone.

Other services, such as Proof of Existence, use the same principle to allow creators of original content to timestamp their work to prove authorship. The service stores a cryptographic digest of the digital work, linked to the time at which the document was submitted. Thus, the data can be certified to have existed at that time.

Okupski’s full thesis, titled (Ab)using Bitcoin for an Anti-Censorship Tool, can be read on his website, and the code of the proof of concept will soon be released on his Github page.

Messaging image via Shutterstock