Blockchain for developers, where do we start?

The Computer Weekly Developer Network wants to know what’s next for software engineers, that much you already know.

In that regard then, we want to know how developer-programmers should be thinking about blockchain technologies in relation to the builds they are currently working on and the projects they are about to be involved in in the near future.

Why? Because blockchain is widely lauded as one of the key driving factors influencing tech in 2018 and beyond.

For those that need a reminder, blockchain is a type of distributed ledger for maintaining a permanent and tamper-proof (we often use the term ‘immutable’) record of transactional data.

A blockchain functions as a decentralised database that is managed by computers belonging to a peer-to-peer (P2P) network. Each of the computers in the distributed network maintains a copy of the ledger to prevent a single point of failure (SPOF) and all copies are updated and validated simultaneously.

Blockchain for developers

With countries like the United Arab Emirates working to migrate their entire public sector records bases to blockchain over the next decade (or much sooner), what should software application development professionals be cognisant of in relation to this fast-growing technology standard?

Sandy Carielli is security technologies director at Entrust Datacard, a company specialising in trusted identity and secure transaction technologies.

Carielli points out that today, in 2018, we are at the stage where dozens of possible blockchain applications are being thrown against the wall… and we’re not yet sure what will stick.

“When you’re building a blockchain application, the first step is ensure there is a clear understanding of how blockchain adds value to the application. Like PKI 25 years ago, blockchain is a hyped technology that investors and technologists apply to almost every problem that they see,” said Carielli.

She insists that it’s important for developers to take a step back and ask themselves how solving their problem with blockchain make things better.

The big blockchain developer question

The question to ask is: does ‘solving the problem with blockchain’ actually introduce new complications that didn’t exist before?

“Additionally, developers must consider how to address some of the risks and limitations that blockchain introduces. It’s well understood that blockchain has a scalability problem, when every node has a replica of the entire blockchain, it starts to get unwieldy at a higher scale. Scalability is a focus of many researchers and start-ups, but until they solve the problem, developers still have an application to build. In order to have a useful and cost-effective app, they must assess the amount of scalability their application requires, and reconcile it with blockchain’s current scalability limitations,” said Carielli.

She adds another consideration for developers — they should have a disaster recovery plan if things go wrong.

Carielli reminds us that blockchain is notoriously inflexible, so developers must be able to make tough decisions when problems arise.

“For example, back in November, Parity wallet owners found themselves locked out of their ETH wallets due to a code flaw that was accidentally triggered. Parity now finds itself in discussions with its user community on the possibility of a hard fork to recover those funds. If developers’ applications include the use of blockchain for cryptocurrency (or anything else of value), they need to consider all worst-case scenarios up front and develop a policy for how handle them should the need arise,” said Carielli.

The guiding comment to go away with from Carielli and the Entrust Datacard team is that developers building blockchain applications should think about sharing their contingency plans with the user community and user base — this way everyone (in theory) knows what they are signing up for.

Image: Entrust Datacard