This week in class we began to further refine our research questions to help with the final assignment which will be the research proposal.
This blog is not going to focus on that though…
This week I am going to talk about a conference I attended called Ethereum NZ.
The Blockchain – Disrupting Global Commerce.
The pitch for the conference was that the blockchain and something called “smart contracts” have the ability to disrupt and enhance many areas of business; like law, government, health, security, gaming and gambling.
Below is a graphic of some potential use cases for blockchain technology
There were five guest speakers who all spoke about how blockchain has moved from its infancy into a technology able to shape how databases are used today.
To start things off Mark from New Zealand company 3Months.com presented a “Blockchain for Dummies” to help us understand how and what the blockchain is without getting into the technical nitty gritty of it all. This was a great introduction and fed well into the other speakers on the day
An interesting definition of blockchain proposed by Peter Borah of ownage.io is:
a DISTRIBUTED DATABASE which is so ROBUST that it can be made PUBLIC
His talk looked at how the Ethereum platform can be used as
a distributed COMPUTING PLATFORM which is so ROBUST that it can be made PUBLIC
It was very interesting to learn the blockchain is not all its cracked up to be.
Peter stated there are sacrifices to be aware of when using a blockchain such as:
- Speed (the Blockchain takes 15 minutes to write to the chain, ethereum has reduced this to ~15 seconds but is still not as fast as other traditional databases)
- Processing Power – a typical bitcoin transaction can take 43 minutes to be verified. To put this in context, Visa says its payment system processes 2,000 transactions per second on average and can handle up to 56,000 transactions per second if needed.
- Storage capacity (you wouldn’t store BLOB files for example or whole movies)
- Privacy – read-access to non-blockchain databases are recorded in log files. A blockchain database can be accessed via the node it is connected to. It has no inbuilt mechanisms to change this. This IS being worked on
The holy grail of complete obfuscation
Based on the above there are still reasons to use traditional databases… don’t throw the baby out with the bathwater just yet!
An example of the ethereum blockchain stats.
The reason for using a blockchain would be so that:
you can securely define the RULES of INTERACTION for DATA or RESOURCES
Some interesting ways to use etherum’s blockchain are in these four distinct areas
Individuals or organizations
- Personal budgets – a smart contract could be written for example giving you a weekly allowance. Great for people with poor budgeting problems and wanting to stop wasting money on unnecessary items. A contract can be set up to pay yourself a set amount each week or whatever and is locked into the blockchain. A fail safe for this could be a key kept by a partner or someone else should an emergency arise.
- Land registries – in development in the Republic of Georgia
Groups of peers
- Roommates (better than the jar in the kitchen for flat essentials. $20 per week for example per flatmate ensures equal payment is made. – the contract is setup via ethereum)
- Shared loyalty programs – to encourage local businesses to offer loyalty (like fly-buys). If a business stops its participation the other business take up the slack. It allows tracking of where the loyalty points are spent, etc.
- Sharing economies (peer to peer based sharing of access to goods and services – think a more open AirBnB, Uber – disruption of the disrupters…).
- Video Games (like Peter’s company ownage.io)
The ecosystem is enabled by default
What is Ethereum then?
Ethereum is a new kind of Blockchain that, at it’s lowest level, only consists of rights. I have the Right to transfer any amount of Ether – the currency of Ethereum – that is in my account to anyone else or to create Smart Contracts with it.
Smart Contracts allow us to build obligations and contracts directly onto the blockchain. For basic value transfer it could be argued that Bitcoin is better. However, the Smart Contract layer of Ethereum allows us to create obligations: Exchanges of Obligations for Obligations or simply Obligations for Rights.
Smart Contracts essentially allow you to promise away part of your right and put it under control of code that can give rights to others. See From Contract to Smart Contract for more on how this works.
Rights holders interact with Smart Contracts by sending special signed functions call transactions on the network. The Smart Contracts themselves check if the sender has the rights and perform the obligations requested.
What is a smart contract then?
Smart Contracts are essentially contractual clauses that execute and enforce themselves through use of code (programming code not legal code).
In Ethereum a contract is a piece of code that lives on the blockchain. The contract is created as part of a transaction and run by every single node on the blockchain.
The rights and right holders are stored as data and code on the blockchain itself.
Rights holders can access their rights by calling functions that are predefined as part of the Smart Contract.
An Ethereum Smart Contract can separate rights and obligations very clearly.
Rights are generally specified clearly in the Smart Contract itself.
Each function call is in itself a Ethereum transaction and the code within is also executed by every single node on the Ethereum network.
A Smart Contract as defined in Ethereum is not necessarily a contract in the strict legal sense of the world, although it may be.
This is sample code used to create a smart contract. This is written in the primary ethereum programming language used called Solidity
The real contract could be implement as a traditional web app with the operator as the agent (like EBay), or as a dApp – the term used for a new kind of distributed web application run on a combination of the web browser and Ethereum.
How can the blockchain be used though?
To help explain how the Ethereum blockchain can be used with a smart contract, Fran Stranjnar of BraveNewCoin talked about how an Enterprise blockchain can be used.
Some examples of these include:
- Clearing & Settlement (ASX NASDAQ & various others)
- Syndicated-Loans (Independently: over 10 banks – Consortium: R3)
- Smart-Contracts & Smart-Assets (Tradle, Wave & various)
- Federated Bank Feeds & Invoicing (Techemy.co)
- Payments (Swift, R3, Western Union & various others)
- Digital Identity (Skucard, OneName & various)
This was my favorite of all the talks as this was the first time I learnt how blockchain and a service like ethereum be used in a technical sense. This talk probably went over the heads of a lot of attendees but I really enjoyed what was presented. It wasn’t just blockchain. It was networking and app development as well.
The 5 Pillars and 3 Layers to Enterprise Blockchain Solution Design
Some key notes from the talk included (parts of this talk were also published here):
- Bitcoin does 220m Transactions per year
- Ethereum has a dynamic scaling capacity
- Customer Data Privacy and Security
- Legacy Infrastructure is NOT going to be scrapped (remember the baby and the bathwater!).
If you can’t make out from the blurry picture above, the 5 Pillars are:
- Permissioned / Private – writing records is exclusive to members, third parties CAN be granted read access with the general public excluded. The permissions architecture goes beyond “access = everything” and allows 3rd parties to access specific data as appropriate for INTEROPABILITY and Applicaiton requirements.
- Decentralized / P2P – equal control over the shared database between all permissioned participants and of equal importance. The database is distributed to all owners to ensure there will ALWAYS be a complete record in existence and available for those with permissions to access
- Interoperability and Data Integrity – records are guaranteed to be cryptographically secure with no possibility for bad actors to threaten data integrity
- Scalability – trillions of transactions or records WITHOUT compromising the networks synchronisation, security, accessibility or data integrity
- Security – support for data encryption and the management and enforcement of complex permission settings for participants and 3rd parties
What is this? A new OSI model?
“OSI is a beautiful dream, and TCP/IP is living it!”
Layer One – Blockchain Layer:
- Used for: ‘Pointers’
- Pillars: #2 – Decentralized/P2P, and #3 – Immutability and Data Integrity
Instead of trying to achieve all 5 key pillars (solution design requirements) on one public network, we accept the fact that public Blockchains are a terrible storage solution and will struggle to scale.
A key take home message from this to me was:
A public Blockchain is not dropbox, nor is it a conventional database capable of running a billion + transactions per week. Therefore we will not see bitcoin or Ethereum (as they are designed today), power global trade or the Internet-of-Things on their own.
The Data-Store Layer
- Used for: Storage, Business Logic (permission structures), Data Storage, etc
- Pillars: #1 – Permissioned/Private, #4 – Scalability and #5 – Security
The majority of data is recorded in a private data store that behaves like a distributed relational database.
Scaling of the database happens on the private chain, reducing costs on the public chain transactions. the data store can also have child accounts and separate data into these child accounts.
In addition, a third-party cannot derive any meaningful information from the data store unless they have specific keys, which allow them to decrypt each individual data record.
Layer 3 – The application layer
- Used for: Processing the first two layers into a useful business application.
- Pillars: None
This is the connection in and out of the Data-Store (and from the public Blockchain used for data integrity).
This is how a bank or business may use the blockchain to operate.
Ethereum works as an application platform on top of blockchains (that has its own blockchain). – much like java and other application platforms on top of regular databases.
This enables you to choose and replace the application platform to fit the use case.
As the blockchain is good at making sure DATA IS ACCURATELY REPLICATED across UNTRUSTED entities, a smart contract is good at making sure logic is accurately executed across UNTRUSTED entities.
Currently automatic reconciliations of data is done before and after a process. Blockchain and a smart contract guarantees this process at each step.
This is a great example of being able to store an item on the blockchain. note how each item is stored separately