On VAKT we built a decentralised architecture with blockchain for commodity post-trading. During this session we would like to talk through; key considerations & challenges around decentralised architectures, patterns around maintaining & evolving immutable code [smart contracts] and building a real world system on top of the utopia of blockchain.
2. Agenda
● Context
○ Delivery/ Organizational / Business
○ What is blockchain ?
● Decision Journey
○ Role of Blockchain
○ Smart Contract
■ What is a Smart Contract ?
■ Degrees of Privacy
■ Managing change - Incremental Delivery
○ Key takeaways
4. Context - Organizational / Business/ Delivery
● Backed by energy and finance consortia [Fortune 20]
● Build for enterprises, in startup mode
● Post-Trade [OTC] Confirmations, Trade finance
integration & Cargo operations for a water borne
market
● Ambition to operationalize in 3 additional markets
● 6 months to operationalizing for investor customers
○ Ramp up to 70 people for delivery in first 6 weeks
● Very little production history of chosen blockchain
technology [quorum]
6. Context - What is blockchain
● Shared/ Distributed - Available to all/ multiple parties
● Decentralized - No central controlling authority
● Permanence/ Tamper resistant - Modifications are extremely hard
● Programmable - Executable logic (ex: smart contracts)
● Data Integrity - Cryptographically verifiable
Considerations / benefits
● Permissioned - Not open for anyone to join
● Private - Not available to all/ multiple parties Enterprise blockchain considerations
18. Smart Contracts
● How does one achieve incremental delivery when code is immutable, permanent &
shared ?
● Every iterative & incremental change in functionality is new a layer of immutable code
● A bug fix cannot be just a change in a smart contract
Incremental delivery and bug fixes
20. Smart Contracts
Smart contracts post upgrade
ScoreCard
Contract
Registry
...
Contract
ScoreCard
Contract
V0 V0 V0 V0
wrapperRegistry
V1
V1
wrapper
V1
ScoreCard
Contract
V1
new Contract
with full
functionality
21. Smart contracts - Managing change
● Testing per release turned out to be uber-expensive
● We needed separate blockchain networks for testing current and new version of
smart contracts at the same time
● Development complexity and effort per wrapper was high
● The smart contract upgrade had a significant impact on deployment times
What we learnt from our choices?
22.
23. Key takeaways
● Business collaboration on evaluating effort vs value trade-off of blockchain usage
● Considerate usage of smart contracts - Immutable code is a world we do not
understand well
● Be ready for multiple pivots/ iterations - Test & Learn is key when dealing with novel
technologies