41

Smart contracts and token economy without Blockchains

 5 years ago
source link: https://www.tuicool.com/articles/hit/YfUvuqj
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Abstract

In this post, I explain why I believe Blockchains are just coincidentally associated with “token economy” and smart contracts, and how in essence they are not their enablers, but actually a hindrance. Then I propose an alternative: a concept of an open, federated smart contract system, that maintains all the benefits traditionally associated with blockchain platforms like Ethereum and can practically support a global scale token-economy, without all the problems inherent to blockchain-based systems.

Inherent impotence of Blockchains

By a Blockchain (capital B) I mean a distributed, p2p system maintaining a self-amendable ledger, typically bundled with some crypto-currency, representing a unit of value in such a system. Bitcoin, Ethereum, etc.

There are many aspects of Blockchain, but I'm going to focus on just one: Blockchain is a database – a purely digital phenomenon and not a material thing . Blockchains can not interact with the world directly. In a sense, one could say that Blockchains are completely oblivious to the world outside of the blockchain itself. The only way to interact with a blockchain is altering its state (according to some rules) and observing its state. Because of this, the Blockchain and data it contains can only ever be a representation of value or any other meaning that people associate with it, and not a value in itself.

Eg. without people believing (and acting on it) that owning some coins on Bitcoin blockchain is valuable, “Bitcoins” are just a bunch of otherwise worthless ones and zeroes on computers all over the world: They can not move rocks, shoot guns, or force anyone to do anything.

As such I would separate the following groups of value represented on blockchains:

  • native asset
  • purely digital assets
  • real-life asset tokens

Native currency (eg. BTC for Bitcoin, Ether for Ethereum) is the only asset that is not just a representation of something else outside of blockchain itself. Typically each Blockchain comes with rules of creating it and transferring it which are internally enforced. As such, is the only asset that does not require the outside world to enforce its ownership.

Purely digital assets (eg. digital ownership of game items, digital tacos, reward points), while not necessarily having a real-world representation, require outside world agreement and enforcement. Eg. a social website could use a Blockchain to transfer and keep a ledger of digital reddit-like karma tokens. But as soon as such social website change their system to ignore the token and eg. use a different one, the digital asset loses the outside world enforcement and becomes meaningless.

Finally, the most interesting case: real-life asset tokens. Examples: a tokenized barrel of oil, tokenized real-estate, tokenized car ownership, etc. Such blockchain assets are purely a digital representation of real-life assets. And as blockchain are immaterial and can not “hold” or interact directly with things , there is no escaping the fact that for any such token there has to be a counterparty: a custodian of some sort that will actually hold the real world asset, and promises to respect the state of the asset on the Blockchain.

For any non-native asset on the Blockchain, there is no way to actually enforce anything about it in the real-world through the blockchain itself. There is no point in talking about censorship resistance or trustlessness. For any gold-backed token on a blockchain, there has to exist a real-life gold vault somewhere, that can either deny respecting the state of the token on the Blockchain at any point or be forced to do so by a government.

For the token economy it doesn't really matter if eg. Ethereum has hundreds of thousands of nodes or just one node run by one company. If it's PoW or PoS, if it sharded or not. It's all moot anyway, as each token cannot be censorship-resistant or trustless by definition. Instead, it is only as trustworthy as its unavoidable custodian. ICO is only as good as promises of the company behind it, a digital gold ounce is only as good as the vault string the actual gold.

Smart contracts don't require Blockchains

I believe that part of the reason why Ethereum captured imaginations of many people and spawned the countless number of clones is its ability to execute Touring-complete smart contracts operating on digital assets on a decentralized, censorship-resistant, open platform. It made people realize the potential and efficiencies of encoding arbitrary business rules operating on digital assets automatically, in a predictable and verifiable manner.

However, as we've established in the previous part: the decentralized, censorship-resistant part is mostly a fantasy, due to the inability of any Blockchain to actually enforce anything in the real world. And decentralization and censorship resistance were the only reasons why using a blockchain was necessary.

You can:

  • execute automated, Turing-complete contracts,
  • in a transparent, tamper-evident way,
  • manipulating digital tokens representing real-life assets
  • on an open, standardized platform,
  • using accessible, Open Source tools

with no stinking blockchains! Smart contracts and tokens do not require blockchains! I would go as far as to say that blockchains are actually a smoke screen and a hindrance for a practical, world-scale token economy.

The alternative Blockchainless architecture for a token economy

I propose, that we recognize the fact that trustlessness and censorship resistance are impossible to achieve for digital tokens, as they are only as good as their custodians, and thus move the book-keeping of each token from the Blockchain to the custodian infrastructure. The burden of maintaining infrastructure would be shifted to interested parties, leaving problems and false pretense associated with Blockchains behind.

Each custodian of a given token would keep track of token ownership on their end by running:

  • an instance of a Open Source service,
  • being a part of a bigger Open Source federated network (think web-for-value-transfer),
  • publically accessible just like any normal web platform,
  • identifiable by cryptographic identity as a digital token custodian,
  • exposing a standardized, open, HTTP API,
  • allowing registration of cryptographic pseudonymous “accounts” under cryptographic control of the owner
  • allowing registration of smart contracts utilizing sandboxed, Touring-complete VM (think WebAssembly bytecode),
  • building on top of common primitives like atomic swaps, etc.
  • minimizing trust and increasing transparency with publicly accessible tamper-evident audit log, and other tamper-resistance measures like Triple-Signed Receipts

Cross-token (cross-server instance) operations would be achieved through methods like atomic-swaps, generating and exchanging redeemable cryptographic vouchers and so on.

In a sense, this architecture is quite similar to existing software like OpenTransactions and it's predecessors were aiming at, with the important difference of supporting arbitrary business logic through smart contracts, instead of trying to come up with a limited set of hard-coded operations.

As for UX: end users would use “client-wallets” that would call the standard APIs on multiple instances of respective token servers, triggering contracts, exchanging vouchers, keeping receipts and tamper-evident auto-logs, etc. Similarly, other services and platforms could build on top of a standardized platform like this.

Another way to conceptualize this architecture is a spin on Fix protocol , but more modern, open-participation, with cryptographic identities, and support for arbitrary smart contract logic.

Implementing the vision

In this part, I'll try to describe and estimate the work needed to build such a tool.

First, an initial Open Source implementation would have to be built. A relatively simple REST API web-app, with a db-backed storage, a couple of cryptographic primitives and embedded WebAssembly engine. Nothing too fancy really – much easier task than building an actual Blockchain from scratch, that's for sure.

Coming up with the necessary set of outside-operations for the smart contracts, to support all sorts of useful applications seems like the hardest part. But as the API like this can be versioned, the first version does not have to be perfect. Future versions can gracefully support older API calls with backward-compatibility, etc. No need for hard forks, flag dates, and consensus debates.

Then it's just tooling and business adoption. Which is usually difficult part. But the hardest part is the fact that there's no ICO to be had, riches to promise, and people to take money from.

Summary

Feel free to contact me on twitter or send me an email with any feedback. I am especially interested in constructive criticism and potential improvements, and people that would be interested in actually building it.

# cryptofin # blockchain # bitcoin


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK