Corda in the Construction Industry
Takeaways from UCL’s first Construction Blockchain Consortium hackathon
“The Construction industries are entering a period of major disruption caused by new technologies such as Blockchain” — Philip Treleaven, Professor of Computing & Director of the Financial Computing Centre, University College London
In September, University College London’s Construction Blockchain Consortium (CBC) kicked off its first blockchain hackathon. This was the first in a series of events aimed at bringing together industry experts and software developers to create open-source applications and tools for solving problems in the construction sector (and if you don’t think there are problems in the construction sector — keep reading!).
For this first hackathon, the CBC decided that the teams would be building their solutions on the Corda blockchain platform. Corda is already in use by construction firms (such as Siam Cement Group who used Corda to streamline its procurement process by 50%). It also has key privacy, identity and workflow properties that are a perfect fit for the industry, as we’ll see below. I joined in a mentoring capacity as a member of the Corda developer relations team (if you enjoy traveling and telling crowds of developers how blockchain is totally the next big thing, we’re hiring).
Unlike most hackathons, which begin with frantic re-readings of the use-case documents and copy-pasting from online code samples, things started leisurely. Abel Maciel, CBC founder and head, had arranged for a first day of talks from construction industry experts. Each took turns detailing the huge challenges facing the construction industry today. Contractors refusing to perform the tasks they’d been contracted for, developers refusing to pay contractors, inspectors failing to perform their duties correctly… But above all, an complete opaqueness about who was being paid to do what and when. In the construction industry, it is common practice for contractors to delegate work to sub-contractors, who then pass this work onto sub-sub-contractors, ad infinitum. Once all various arrangements have been made, tracking a project’s progress accurately was impossible for all but the simplest projects.
It was a perfect example of a situation where blockchain’s promise of You See What I See would save everyone a lot of pain and money. Each firm would be kept completely up-to-date on the progress of the project. But crucially, details such as the sub-contracting arrangements in place couldn’t just be shared with everyone. These deals were key strategic information for the contractors delegating the work. This is where Corda’s ability to finely-tune how data is distributed through the network is vital for making blockchain solutions that are palatable for existing industry actors.
We settled on the creation of a CorDapp to automate construction workflows between developers and contractors. Our design was as follows:
- A developer and a contractor agree on a job. This is represented in Corda as a shared data object called a state. This state ensures that all involved parties have a consistent view of the progress of the job over time
- The state is governed by a contract. This contract enforces that all the participants to the job obey a shared set of rules governing how it evolves over time
- The job is evolved using flows — a flow to propose a new job, a flow to accept a new job, a flow to mark the job as finished… These flows conceal internals such as signing, messaging and database storage from the end-user when using the application
In the end, we had our initial CorDapp design up-and-running with a few hours to spare. Instead of kicking back at the UCL student café, we decided to go one step further and update the CorDapp so that jobs could be split up into a series of milestones. This allowed contractors to be paid per-milestone instead of per-job. This was another common issue in the construction industry, where cashflows can easily run dry over the course of year-long projects.
What features of Corda allowed us to build a suitable solution? I’d list four key areas:
- Corda’s state and contract structures allowed us to define shared data structures and shared rules about how these data structures could evolve over time. This prevented disagreements or mistakes between the various project participants
- Corda allowed all the project participants to hold a shared, consistent view of the project’s progress
- Corda’s need-to-know data distribution prevented external parties from discovering details of the project, despite being present on the same network
- Each Corda node has a well-known identity. Developers and contractors are sure which counterparties they are agreeing jobs with and transferring funds to
As well as the benefits of a blockchain approach, the hackathon highlighted the need for deep industry expertise when creating production blockchain applications. Although we had built a working proof-of-concept, there would be much more to consider in a production solution (I’ve probably mis-articulated the industry’s problems above, let alone how to fix them). In R3’s view, this can be addressed by building an ecosystem of partners who have the required industry expertise to build production blockchain solutions. Check out existing partner solutions here and apply to become a partner here.
It was definitely more than my team could handle in a couple of days, and we were left with a large pile of ToDos. The source code is here, so fork it and see how you get on — there’s probably a little more work required before this CorDapp can replace construction industry tools for real.