Blockchain is about decentralised computation. The Perspectives runtime – the co-operating system – is about distributed computation. How do the two relate?
We’ve explored this issue in a number of articles that are published on medium. There, we dissect Blockchain from a technical perspective. We analyse design decisions underlying Blockchain (and Bitcoin) with the approach we have taken with Perspectives in mind. See below for a short introduction to these articles and the links to them.
First, however, we’ll approach the comparison by asking ourselves: what are these systems meant for?
Satoshi Nakomoto’s stated motivation for creating Bitcoin was to become independent of banks. Bitcoin has been named ‘digital cash’. Cash is the ultimate distributed form of keeping track of how much money we all have. Distributed, because when I give you 10 euro’s, I ‘credit’ your wallet while ‘debiting’ mine. That is a purely local transaction. Cash is a rather physical form of administration – but then, pencil marks on paper are physical, too.
This suggests that direct, person to person interaction was what Nakomoto had in mind. If so, his intentions line up perfectly with a goal of Perspectives: distribution. However, Bitcoin falls short of this goal (see the article Bitcoin is overkill).
Blockchain gained new purpose with the invention of Ethereum, a virtual machine carrying a programming language, based on Blockchain. We should understand Ethereum as a platform for deployment. Once uploaded, a program will stay on Ethereum forever; it can be run by anyone; it cannot be censored or taken down by any authority. Ethereum is, in a sense, a computing cloud that is not owned by a single entity. On top of that, a computation is run on Ethereum in a transaction: if the accounts involved in that transaction don’t add up, the computation will be rolled back.
While these are special properties, they are not what we had in mind when designing Perspectives. For starters, we didn’t create a general programming language (as Buterin did for Ethereum). Perspectives supports co-operation patterns, not any arbitrary computation (you don’t do a galactic simulation in Perspectives, while you could run one on Ethereum).
Far more importantly, we don’t put computations center stage. Computation is something that takes place somewhere deep down in the Perspectives Stack. You don’t think about it as designer, nor as user.
Financial transaction is just one kind of co-operation, when seen from Perspectives. We could actually build it easily, in Perspectives. Here is a report on how to do so (please note: it is in Dutch).
Recently, Blockchain has been used to attain transparency in logistic chains (see this paper on fairfood.nl). This is really easy in Perspectives; it was made with transparency in mind (see our report; again, in Dutch).
To sum up: in terms of purpose, Blockchain and Perspectives have things in common. But on the one hand, a Blockchain-based deployment such as Ethereum offers is more general (because it offers a general programming language); on the other, it is far less suited to support co-operation.
We’ve highlighted four aspects of Blockchain.
Closed world assumption
Blockchains operate on transactions. Transactions will be chained and it is of the utmost importance that any transaction output is chained to just one other transaction. Only by guaranteeing that, we can prevent double spending. However, this line of thinking imports the Closed World Assumption. In other words, parties must agree on a shared database. This is anathema to Perspectives. It is also a weakness in Bitcoins design. Read Bitcoin is Overkill on Medium).
Bitcoin (and Blockchain) is all about trust, or rather, the objective not to have to depend on trust. This originally was inspired by the way the worldwide financial sector has misused our trust. However, the Blockchain community has sanctified the non-trust approach.
In the article On the Principles of Financial Transactions Secured by Witnesses we show this throws out the baby with the bathwater. Rather, we break a lance for democratising trust. The only reason the banks can charge us as much as they do for the simple information services they provide, is that they hold the monopoly on trust with regard to money.
A tale of two states
In this article we compare Bitcoin with Ethereum and show how a very desirable quality of Bitcoin is notably absent in Ethereum. However, in its white paper, Ethereum compares itself with Bitcoin in such a way that the reader might not notice this.
This article is about two ways of attributing meaning to formal systems: declarative versus procedural semantics. We show how Bitcoin is declarative where Ethereum is procedural.
Perspectives has a declarative semantics, like Bitcoin. But where Bitcoin’s semantics depends on it being a database, Perspectives is strongly distributed. Furthermore, Bitcoins’ semantics is fixed – it is just about money – whereas Perspectives offers a language to define semantics.
Read A Tale of two States on Medium.
On the Importance of Being Local
This article is a sequel to Bitcoin is Overkill. We elaborate the theme of the Closed World Assumption. Generally implemented by a database, we argue that this assumption can be met, too, by a distributed system. The Blockchain community moves into this direction with the invention of “State channels”.
Read On the Importance of Being Local on Medium (not yet published).