Friday, October 13, 2017

Where are the Gapps in Bitcoin and Ethereum?

Addressability of devices and users may be the next area of research and development for unpermissioned crypto-networks.
New generation crypto-networks will support several types of distributed applications, in addition to financial transactions and distributed smart-contract applications (such as Ethereum Dapps).
For example:
  • Blockchain-registered unique devices may want to interact with IoT objects.
  • Virtual private blockchain networks may need to be supported.
  • Many types of general distributed applications (Gapps) will need to share information among a selected group of peers.
All of the above applications will need primitive functionality for user and/or device addressability in an environment without a centralized directory infrastructure.
All of these applications will need to establish a more permanent session between peers than a one-time transaction. Also, they will involve the participants, but not necessarily the rest of the world.
Some researchers have proposed ways of safely exchanging encryption keys over Bitcoin, for the purpose of confirmation or other post-transaction communication. However, a more general solution is needed to solve the problem of addressability in an unpermissioned crypto-network environment.
Building the Stack.
Each new technology is aimed at making applications development and the user experience simpler. Once accepted as a standard, it becomes part of the base for further developments.
The internet has largely solved the problem of communication for its applications.
Current crypto-networks have solved, in a certain measure, the problems of security and
data replication.
Addressability can be resolved through crypto-network intrinsic functionality, in the same way as communication, security, and data replication have been solved.
Specifics and Examples
Current crypto-networks claiming to support distributed applications, such as Ethereum, do not solve the addressability problem for their nodes or users. In Ethereum, for example, that’s not where the action happens: Contracts embody the Ethereum virtual machine executing Ethereum Dapps.
Ethereum solves addressability for its contracts on the blockchain by retrieving them
by content.
Any user that is interested in a contract and is given the contract’s address (a hash of the contract’s code) can look at it or execute one of its functions. Every time a function is executed, it happens on-the-blockchain, thus these functions need to be executed on all nodes. The resulting blockchain changes also need to be reflected on all nodes.
The blockchain is the computing machine of Ethereum. i.e.: Ethereum computes with the blockchain; more specifically, with a blockchain contract. In essence, Ethereum supports smart contracts that are distributed, but they are not general purpose distributed applications. They are a limited type of distributed applications: Those that need to record events for anyone and posterity to see: memorable events. We will call these applications Contract Dapps.
Example 1: let’s suppose we have an Ethereum Contract Dapp for reserving seats at an event, such as a ball game. The application must solve the possible conflict of multiple people reserving a seat, and prevent overbooking. It must also confirm that the person showing up at the event is the person that booked the seat.

All of the above transactions are recorded on the blockchain, for a fee, and are recorded on all nodes in the world, forever. And for each one of the thousands of people at the event. What’s the use? How many of these actions people take every day? The same people, that day, may have entered a secured area at work, may book a seat at a restaurant, retrieve their car from a parking garage, or book a show for the evening. Why should the whole world see, record and verify all these events?
The requirement to use a blockchain contract for every distributed function is a serious limitation of current crypto-networks.
New generation crypto-networks will instead support general distributed applications, or Gapps. Gapps must be able to run on any device, with the help of the blockchain only for those relevant changes (memorable events) that may need to be recorded forever and/or for anyone to verify.
Most of the actions people do, and computers do for people, are not memorable events.
Going back to our example, we need a Gapp that fulfills the same requirements (i.e.: must be available to anyone, must resolve possible conflicts and must be usable to prove who is the person who booked the seat), but it can do it off-the-blockchain, reading blockchain information for addressability only, and involving only the interested parties.
Here is how our reservation example can work in new generation crypto-networks (See the Gorbyte’s Distributed Operating Environment and BRUD architecture):
You have purchased a unique BRUD device, registered on the blockchain. This is an example of an action done with the help of the blockchain: the device is registered once, and you will be able to use your device for hundreds of applications and thousands of instances in most cases without the need of recording anything on the blockchain.
Your BRUD device can be uniquely identified by anyone with access to the blockchain, including other devices.
When you book your seat for an event (for example using a web page interface), an event management application (EMA) records your device address off-the-blockchain and reserves your seat. When you show up at the event, your device address is recognized, by another BRUD device associated to the EMA, and you are ushered to your seat.
No memorable event has happened. You just went to a ball game. Nobody needs to verify who you are or your ID. The only verification is a look-up of your unique device address on the blockchain.
People around the world do not need to know about your event booking and attendance.
Example 2: A group of two or more people want to privately communicate.
Do we want them to use a smart contract and advertise their event to the world and for years to come? Or do we want their devices to verify each other, just through a look-up on the blockchain, so that they can carry out an exchange of information through a secure session involving only the participants?
On the other hand, in addition to financial transactions and contracts, we can also think of many examples of distributed applications that will need to record memorable events and critical data on the blockchain. However, such recordings will be limited, not only by fees, but by design.
Example 3: an application which may require unique user addressability, is a Gapp for voting at political elections, since people may want to verify the uniqueness of each vote, by each voter, in disputed cases.
New generation crypto-networks will provide some form of user, device or node addressability for selecting specific nodes, for peer-to-peer distributed functions. This can be achieved without compromising user privacy and without requiring user identification. However, user, node or device addresses will need to be unique and readable by anyone.
Network addressability will allow Gapps to use the crypto-network as they sees fit.
For example, a payment Gapp (providing the functionality of basic financial transactions) may require the transaction to be recorded on the blockchain, but may not require a follow-up customer survey to be saved on the blockchain.

No comments:

Post a Comment