Privacy and Security on Blockchains: What Protection Measures the Networks Are Adopting to Secure Their Users
Decentralization of everything, the great new idea of which the web can’t stop babbling, might still seem a bit utopian if you inspect it closely.
Yes, blockchains are likely to reshape our economy, or a huge part of it, and benefit considerably those who are currently unbanked.
They might also facilitate the creation of rating/reputation systems that are not controlled by any single entity and thus allow people (say Uber drivers who’d like to work for Lyft) to switch employers without having to establish their credibility anew.
They might give users complete control over their assets; protect them, to a degree, from being robbed and provide tools to sustain privacy even when a state-level actor – a bank or a government – is after their identity.
But before these things start to happen the issues of privacy and security, which are currently pressing on blockchains, must be dealt with.
In this article, we’ll discuss how some major networks are trying to tackle the problems of safety and dispense advice to those using decentralized ledgers as to how to keep their assets protected at all times.
Let’s get started!
The concept we should introduce first before we proceed to talk about security is that of digital wallets.
In layman’s terms, a wallet is a software program in which public and private keys are stored. After accessing it, one could manage the crypto assets it contains, and carry out, seamlessly, all sorts of transactions.
Currently, there are four types of digital wallets in the blockchain ecosystem – desktop, web, mobile, and hardware ones. And to protect them, users encrypt the wallets with long, complicated passwords.
So, what might go wrong?
In 2011, a member of bitcointalk forum (someone “allinvain”) wrote a panicky post– a cry for help – to his fellow forum members after finding out that he’d been hacked and robbed of 25,000 BTC (which now, in October 2017, would be worth about $150m).
Evidently, the attacker had managed to gain access to allinvein’s PC and had, somehow, emptied out his digital wallet. He (or she) had either sent the transaction directly from the victim’s machine or copied the wallet.dat file and ran it from his (or her) own.
Another noteworthy theft was reported on the Bitcoin subreddit. The user, asoltys, was fairly careful with his blockchain.info wallet, so it came as an utter shock to him to discover, one day, that 160 bitcoins had been stolen from it.
The vulnerability that made the theft possible lay with blockchain.info mobile app; it had to do with the user’s rooting his Android phone.
Generally, when one attempts to enter their blockchain.info wallet (from a desktop computer) they are asked to type in two passwords – a long one (16-20 digits) to access the entire wallet, and a shorter one (typically 8 digits) to get ahold of private keys.
However, since typing lengthy passwords is tiresome on a smartphone, the wallet app will often have it memorized, and only require you to enter the second one.
Therefore, if someone hacks into your phone, the one that’s been rooted, they might find out where the main password is stored and decrypt it. Afterward, they can crack the second PIN code (hackers often use GPU or cloud-based computing clusters to brute force an 8 digit password promptly) and gain complete control over your wallet.
A few smart contracts on Ethereum, the second largest blockchain in the world, were attacked as well..
Ethereum isn’t just a cryptocurrency. It is also a platform on which one could build decentralized apps.
The software that’s hosted on the network, therefore, must be designed impeccably: its code must contain zero vulnerabilities. Or else, it’s bound to fall prey to clever attackers.
Here are some famous (or should we say infamous) instances of hacking on the Ethereum network:
The DAO hack. One of the first major ICOs had a bug in its smart contract, of which attackers took advantage. Nearly $50m worth of ether was stolen and, though the assets were eventually returned to the DAO token holders (the blockchain developers performed a hard-fork), the hack led to a network split.
The Parity hack. The second biggest hack in the history of Ethereum happened a few months ago and resulted in a 153,037 ETH loss (~$32m at the time of theft). The vulnerability, which hackers managed to exploit, lay in the source code which Parity, a wallet “vendor” on Ethereum, had been giving out to users who wanted to create a personal multi-sig wallet.
We won’t be delving deeply into the technical aspects of the robbery; we’ll just say that, in a nutshell, bad actors sent two transactions to the affected contracts – one to obtain ownership of the wallets and another to drain them; they were able to do so due to a tiny flaw in the multi-sigs’ code.
What happened next, however, was even more amazing. A group of white cap hackers promptly emptied out the rest of the wallets to prevent further damage. They saved over $75m worth of ether and then returned the funds to the rightful owners once the vulnerability was removed.
The weak spot, according to the Parity blog, had been fixed; the new, improved version of their implementation of a multi-sig wallet was deployed after June 20.
But on November 8, just a few months later, it, too, got hacked due to a bug in the multi-sig’s code.This time, the loss of funds amounted to ~$155m worth of Ether.
Both Parity and Ethereum itself have yet to make a decision as to how to return the funds to rightful owners. Most likely, we’ll see another fork.
But, as of now, things are still a bit unclear.
How Can Developers Improve Security on Blockchains?
Since security on public networks depends largely on whether private data is accessed by a malicious actor or not, some major blockchains are planning to adopt something known as zero-knowledge proof (ZKP) protocols.
To understand what ZKP is, imagine this: you’re at a bar, your phone has just died; you’re standing alone, sipping at a cocktail, when, suddenly, a guy shows up from nowhere and starts talking, anxiously, about how your close friend has gotten in some serious trouble.
He invites you to walk a few blocks with him, to the place where she’s currently at, so you can rescue her together. And says persuasively that there’s no time left for stalling.
You realize you’ve never met the guy, but, again, your phone is shut off, there’s no way of finding out whether he’s telling the truth and, frankly, you are worried.
So, what do you do?
Well, you could interrogate him. Ask specific and complicated questions – the ones only a person who has really seen her would be able to answer – and keep requesting more info, again and again, until it’s clear to you that he’s not lying.
In this equation you are the verifier whose making a prover, the other participant in the interaction, jump through hoops to convince you of the validity of his claims. He can’t transmit a memory of meeting your friend from his head to yours – he’s no telepath – so answering correctly to your questions, which you’re making up on the spot, is the only way to make you believe him. This is, essentially, how ZKP works.
In the world of blockchains, a prover isn’t incapable of disclosing sensitive information; he’s just not willing to. He wants to indicate, for example, that a certain transaction has taken place and keep in secret the transaction details. He wants to establish privacy and thus ensure security.
Such level of confidentiality is precisely what Zcash, along with some other blockchain applications, is meant to provide. And after ZKP is adopted widely, experts say, the number of malicious activities on distributed networks will drastically drop.
The smallest bug in an otherwise perfectly written smart contract can still lead to substantial losses – the Parity incident has proved that vividly.
Therefore, having a system on blockchains that checks if a piece of software does what it claims to do, and scans whether its code is buggy, would potentially prevent a great deal of smart contract hacking.
The idea behind this concept comes from math, and it is called formal verification.
Blockchain networks, huge and small ones, are now thinking to launch a piece of code that can formally verify, with mathematical proof, that other pieces of code satisfy predefined fairness properties.
Tezos, for example, a project that has recently raised over $200m via an ICO, is a smart contract technology that’s meant to facilitate formal verification.
And if it succeeds in doing so – if it creates a system that will prevent software with poorly written code from ever being deployed – that might become a game changer for the entire blockchain world.
Decentralization has its flaws; the complete security and privacy are yet to be achieved.
It doesn’t mean, however, that blockchains are unsafe: substantial progress has been made already in the security area and clever developers keep on improving the technology on a regular basis.
The losses, which are, of course, no insignificant ones, still don’t approach even closely the amounts of money that have been stolen from centralized value storages such as banks and centralized exchanges. And, if anything, the trust in blockchains has now even grown.
Ethereum, which used to be perceived as Bitcoin’s less celebrated cousin, could soon be worth more than Silicon Valley. So there’s every reason for blockchain enthusiasts to be optimistic.