GUEST: So, "smart contracts" are rather poorly named, in the sense that that they're
more-properly thought of as 'applications';
a series of 'if-then-else'-type clauses
for drafting up and executing negotiations.
So, the last video I did was on 'block chain' technology with a leaning toward Bitcoin and cryptocurrency.
Without rehashing too much of that video,
a 'block chain' is a technology---a distributed ledger--
and means of validating and seeing a series of transactions
such that no party in the network needs to directly trust or know anybody else.
And the first application of this was cryptocurrency,
most-notably, Bitcoin.
But now people have started talking about using this 'block-chain' technology
not just for storing transactions of Bitcoins or cryptocurrency
but as storing "smart contracts" and running "smart contracts."
INTERVIEWER: Just because we're using an application that allows me to pay a taxi driver
surely I'm still going to need the taxi-lift, ride-sharing application
to get me in touch with whoever's offering the service?
GUEST: That gets a little bit further down the rabbit hole
and into something called "distributed applications"
where, in fact, anyone could---you would have your "smart contract"
that is your business logic for negotiating the transfer of funds
to taking the Uber case to the driver and the client
and you have your front end---you could think of it like your a web developer, like a front-end HTML page to your back-end service.
But instead of having that front-end being a web page---it could be a web page, but it could be a desktop application,
the sorts of Limewire, Napster; something running locally on your machine
and anyone is free to create their own front-end to a given "smart contract" application
and distribute it in any way they like
so it doesn't have to be running from one particular website or run by one particular organisation.
It could even be put on something called the Interplanetary File System, which is
a peer-to-peer networked file system
such that it couldn't actually be taken down or moderated by any one individual
in the way a standard website can.
It has the potential, at least, to completely remove the middle-man
the escrow account because your 'smart contract' ends up performing that function.
An escrow is a third impartial mediating party---it's the function of Uber
Uber take your money, Uber, importantly, take their cut, and then pays the driver.
If you have a "smart contract" taking the place of Uber
there's no middle-man taking a cut.
It really is a technology that represents a revolution rather than an evolution.
And it's something where you're going to move away from
ownership of data or ownership of a service
to designing the best interface to that service
because a service can be put up on the block chain technology
used by anyone, viewed by anyone
so the best written service that performs the job is the one that's going to be used most.
And what determines whether an Uber-type outfit makes money or not
is whether you've got the most user-friendly, prettiest app to interface with the "smart contract"
and you could charge a sum for using your particular interface to the "smart contract."
But we really are talking Wordpress-type---our business logic is gone
we're talking about a user interface, a nice pretty way of interfacing with it
so there's nothing to stop an open-source community
or an individual in their garage producing the nicest pretty---
a graphical design student produces the nicest Uber app, umm...
and distributes it for free because he has the time and because he can.
INTERVIEWER: Let's stick with Uber for now; is it say that the drivers would have to say, "right, I run with this kind of contract"
or would they log themselves with two or three different types of contract and then you just find them through--however you find them?
GUEST: That's the other thing though: they're free to use different contracts, different models.
So you could have a "smart contract" that models a taxi-like service for weekdays and a different one for weekends
that offers some benefit to the driver for weekends
and they can absolutely make use of both contracts.
In fact, you can have the same interface to both contracts.
So, in terms of the client finding them
it's seemless and they don't have to know or care about---
but in terms of the driver, they're optimising, potentially, the way they're getting paid
depending on which contract they're using.
And your "smart contract" could model a "luggage allowance", or something like this
so you end up getting a min-van if you're taking a whole bunch of people and a whole bunch of luggage.
INTERVIEWER: Would there be one block chain that the different contracts all stack their data on
or would there be a block chain for each of the contracts? How does that work?
GUEST: So that's an interesting question.
There are
different block chain outfits out there at the moment
each with their own sort-of
instatiation--or ability--to express "smart contracts."
So in fact, Bitcoin has been expanded to allow some kind of "smart contract" capabilities
but it's not what it was designed for.
The platform which is really sort-of making headway, and is a big name in this area of "smart contracts"
is something called Ethereum.
And Ethereum is a block chain that is designed
not primarily to store cryptocurrencies
and tokens and transactions
but actually to store a global computer state
and a series of computational operations.
Ethereum can be thought of as a very-large, very-slow, global computer
stored on the block chain.
INTERVIEWER: How does the money work then?
GUEST: Although I said the Ethereum block chain was not primarily a cryptocurrency, which it isn't
you still do pay for things in it with cryptocurrency.
So your Ethereum block chain stores a global computer state and a series of computational operations
but you pay for performing those operations and you pay in the Ethereum currency
which is not Bitcoin, but Ether.
And in fact, there's the translation between the Ether, which is the cryptocurrency
and the computational operations which are charged in Gas
and there's a Gas to Ether exchange rate.
This is an account on a distributed application that exists for the Ethereum network
and essentially, I've got this application here, Mist, which I downloaded as my front-end, my GUI, my way of interfacing to the Ethereum network
and it's a browser that allows me to see other distributed applications that are out there
and potentially view them as well.
So, the distributed application that I've searched for here is a service for converting from one cryptocurrency to another, called Shapeshift.
And this application---I can search for it through this browser, I can pull it down, I can display it
this 'Mist' application--this interface is running locally on my machine
but it's negotiating when it's sending its transactions when I'm converting Ether to Bitcoin or vice-versa.
or performing the functions of a given application that I load.
It's then serving as my gateway to the "smart contracts" that are hosted on the Ethereum network
and then whatever function I call
which I call by sending a transaction
is executed on all the nodes in the network in parallel.
You've got---which is why it's very slow because you have a redundant queue of this sort of computation, whatever it might be
it could, you know, add two numbers together
is being performed by every single node and then agreed upon
and then the result of that is added to the global state of the Ethereum virtual machine - global computer is updated.