Building a blockchain proof of concept
Posted 25 Oct 2018Blockchain was the buzz technology of the last year. Everyone started talking about it, companies doubled their value by mentioning it, and Initial Coin Offerings (ICOs) popped up everywhere. At the same time, it was increasingly clear that not many blockchain-based products were making it to market or were proving to be commercial viable, other than a few examples of cryptocurrency trading.
Why use blockchain at all?
Why should we add a complex component like this to our system? Why should we run the same code on thousands of machines around the world, pay money for transactions, and wait minutes for them to be approved? What problem does blockchain solve which can’t already be answered by existing products?
The answer is that blockchain reduces the risk of fraud, improves transparency and therefore increases trust. When using blockchain as a data layer there is no way to erase its history. Once a transaction is approved and ‘mined’ it is in the blockchain forever; everyone can see it, verify its content and its origin. Transparency, traceability, immutability and security are inherent features of any blockchain implementation.
Blockchain is the underlying technology behind Bitcoin and other cryptocurrencies, and was initially designed to prevent double spending, a big challenge in developing a decentralised currency exchange system. The real hype began when software developers realised blockchain could be used as a special database with unique features and benefits which could be used to build decentralised applications.
Working with UK Games Fund
To help companies understand blockchain and filter the value from the hype, Digital Catapult has created a team to design and build full-stack blockchain applications. Collaborating with the UK Games Fund, we developed a user-centric product to allow ad-hoc teams of game developers to agree on ownership and share allocation for a specific game, recording their decisions on a public blockchain without the burden of opening a limited company.
How do traditional companies solve these issues today? They spend a lot of money buying cyber security tools and products, they develop internal processes and replicate their data to make sure service level agreements are kept.
Our experiment with creating a test case for the UK Games Fund used a public permissionless blockchain network because it was faster and simpler to get up and running. Setting up a private blockchain network requires commitment from a group of organisations who are each responsible for validating and maintaining records in the system, and although this is probably the way forward for companies willing to share data in the long term, we wanted to prove the viability of our use case in the most straightforward manner.
Our alpha version allows creative teams to allocate different types of shares for a project, add new team members, and to vote on proposals using a transparent and tamper-proof process. It also allows teams to manage disputes and involve agreed arbitrators (e.g. from the UK Games Fund) to resolve future disagreements between team members.
Does blockchain provide the best solution?
The games industry has been an early adopter of innovative technologies like blockchain and cryptocurrencies, and the collaboration with UK Games Fund on the project has helped to understand how blockchain-based technologies can help facilitate interactions between content creators and their customers, as well as unlocking new value across the gaming ecosystem.
Developing a production-ready blockchain product was complex in many ways – from a user experience, engineering, and operations point of view. When we build products that manage ownership of assets and rights, we can use blockchain in order to get the particular benefits of trustless data sharing ‘out of the box’, or we can try to use traditional solutions and wrap them with the right tools and processes to get the same results.
Three years ago, if one had described our example to professional software developers, they would probably have suggested developing a product and implementing it using a three-tiered architecture: a database that holds the share allocations and user details, a backend which handles application-specific logic, API requests, authentication and authorisation, and a frontend that implements the user interface.
We believe that blockchain does hold many promises to enable a future decentralised economy, but also that sometimes traditional, simpler and less hyped solutions may be the best way to solve a particular problem.