Sunday, June 24, 2018

New-Gen Crypto-Networks: What Can We Achieve?

Current crypto-networks are plagued with limitations, high costs and lack of functionality. New generation crypto-networks will fix those problems and provide users with the services, security and convenience expected from the blockchain technology.
The following diagrams are only part of the story, but address the specific problems of today’s crypto-networks.
  • The first diagram shows how current crypto-networks are constrained in solving their current limitations: Scalability, throughput, high cost of network operation, blockchain space limitations, volatility of prices in their currency, hard forks, lack of security of user keys, lack of user identification, etc.
  • The second diagram shows how new generation crypto-networks may solve those limitations.
  • The third diagrams is an overlap the previous two, to highlight the differences.
LEGEND: See bottom-right of each diagram.
  • The objectives and requirements are in the ellipses at the top.
  • The basic functions are the dark rectangles.

Current Crypto-networks Functional Diagram:

New-gen Crypto-networks Functional diagram:

Composite Dependencies Diagram:

Friday, May 11, 2018

How the Blockchain Can Ensure Virus-free Devices

One of the advantages of the blockchain concept is the capability to register objects on the blockchain, through smart contracts on Ethereum, or entity registration objects on Gorbyte.
Such ability allows for a novel approach to guarantee a virus-free, malware-free software environment on a user device running blockchain applications.
The objects or entities we are talking about can be software programs, or applications, or components of applications, or parts of an operating system environment.
These software entities can be registered and signed on the blockchain by the company that developed the software using a unique identifier. Known companies, who have a reputation to defend, would guarantee that their software registered on the blockchain is virus-free, just as currently happens when we buy and download a software application from a reputable source.
In addition to the unique identifier, and the developing company’s signature, these entities will also contain a hash of the object code.
This hash can then be used to verify a software component loaded in the memory of a device. The hash in memory can be checked against the hash registered on the blockchain for that component.
Because we can trust the blockchain as being secure, and unchangeable, we can then guarantee a virus-free environment on a device using a new approach: We can check for the integrity of the software components running on the device, instead of using the classic anti-virus approach of testing for every possible virus that can penetrate the device. Our object code integrity checker (OCIC) would be faster and require only information about the software we intend to run.
More importantly, the classic anti-virus approach requires a database of virus signatures and can never guarantee that all possible viruses signatures are included in the database.
Our approach instead would guarantee a virus-free environment, at least with the same level of confidence as we trust the original companies we buy our system and applications from.
The conditions for this approach to work are:
  • Software development companies must develop a version of their software for the specific operating system of the target blockchain devices;
  • Software development companies must register and sign their software on the blockchain, providing the hash of the object code for their software module;
  • The target device must include specific firmware and run software, including the OCIC, designed specifically for the device;
  • The target device must run the client code and be a full node of the crypto-network sustaining the blockchain.
Implementation Details
If our system contained a virus, our OCIC code itself could be compromised.
How can our code integrity checker itself run securely in a hostile environment, such as an operating environment of a generic device? How can we make sure that a virus cannot infiltrate the system even before the OCIC code is loaded? How can we make sure that an attacker will not change our loading tables, the OCIC relies on?
The blockchain comes again to our help, when our device is a node of the crypto-network (i.e.: it contains a blockchain replica).
Gorbyte, for example, will release wearable devices that will participate in sustaining a blockchain replica on every user device.
In this case, our OCIC can rely on registration object information because this information is in the device itself as part of the device’s verifiable blockchain replica, before any communication with the outside world is initiated.
Having a positive and secure way to test the integrity of software components, we can apply the test to every component in the system from the time the device is switched on. Note that the blockchain itself, up to the last verified block, has a unique verifiable hash, just like any registered component.
When a device is switched on, the first running code is a bootstrap loader in firmware. This firmware loader can do a first verification of the initial software components when it loads them in memory. It will include a small loading table in firmware with the unique version numbers and hashes of the initial software components, namely:
  • A software bootstrap loader, taking over the bootstrap loading procedure from the firmware loader.
  • The last verified version of the component loading table (saved in storage before the device was switched off), or an initial registered software loading table provided by the device manufacturer, when the device is new.
  • Our Object Code Integrity Checker (OCIC).
The software bootstrap loader will then take over, using the verified loading table. It will load each of the following modules, and run our OCIC to verify them:
  • The required basic communication modules (e.g., for Wi-Fi and internet access).
  • The blockchain, up to the block before the device was previously switched off, or the address of the reliable source of the blockchain genesis block, when the device is new.
  • The client code of the crypto-network (e.g., Ethereum or Gorbyte), or the address of a reliable source where to find this code, when the device is new.
From then on, any new component needed in the system can be verified by OCIC at the time the new component is first loaded.
Our device will then go through the normal initialization procedures: loading and initializing system components, requesting the blocks it is missing on its blockchain replica, etc. until the desired running environment is established.
At this point, only trusted verified software will run in our system (RAM).
This does not exclude that malware software could find its way into the device storage, but it would be discovered and prevented from being loaded in RAM by the (verified) loader.
No other loader can be used, to load software in RAM.
For further insurance, our OCIC could remain running in the background, verifying the loaded components at regular intervals, to guarantee that all the components running in the system have not changed due to unpredictable events. At the same time it can also scan the device storage to detect and flag any object code that is not in the loading table.

Friday, January 5, 2018

Blockchain: What Are the Fundamentals?

I enjoyed reading the article: “2018's Resolution? Revisit Blockchain's Fundamentals” by William Mougayar on Coindesk.
The author warns us that when a new technology comes along, we are often too eager to quickly implement some of the pieces we need, without a vision and an understanding of the full potential of the technology.
We have seen this happen in part with the Internet. It was quickly adopted, even though many designers at the time could already see the lack of those security features that had to be added almost as an afterthought. The whole world still suffers the consequences of the lack of a well designed security architecture for the Internet.
We are now facing similar design choices with the blockchain technology.
As a coach warning us to “stick to the fundamentals”, the author lists some of what he considers the blockchain fundamental innovations, or “fundamental outcomes”.
But are we sure we understand what the blockchain fundamental blocks are?
For example, the first fundamental in his list is “replacing intermediaries”. This objective is definitely important, for applications running on unpermissioned (or public) crypto-networks.
I agree with the author. But the designers and investors of Ripple and Hypercom could argue otherwise. It depends on what the target applications are.
We do not really know what problems future applications will need to solve.
Looking at the following “fundamentals” in the author’s list, his suggestions seem to be somehow limited to the current state of the art.
By looking at what we currently understand as innovations, we risk, as the author says “copying what we already see instead of inventing what we don’t discern yet”, that is, we may miss the full potential of blockchain technology.
For example, we cannot limit our thinking to today’s smart contracts running on today’s crypto-networks as the only engine to run blockchain applications.
If we do so, we may miss 97% of future general distributed applications that will use the blockchain, but will run on different engines, off-the-blockchain.
If we want to create an environment able to support the distributed application of the future, without knowing what they will be, we may need not just a better engine, but a multitude of better engines.
The ability for general distributed applications to use the blockchain functionality without having to run a smart contract on-the-blockchain is a top requirement on my list.
Millions of concurrent distributed applications will need to process and securely exchange many terabytes of information per second among identifiable, unique parties.
Current crypto-networks do not begin to solve the problem. Public crypto-networks do not even contemplate the problem of identifying who the users are: people, IoT objects, vehicles, autonomous robots or something else.
We could describe many characteristics of the blockchain and things that we will be able to do using the blockchain, but we would never finish: any imaginable distributed application should be able to use the blockchain, just as today any App on a cell phone can use the cell phone communication ability.
So what are the fundamentals?
Is the ability of the blockchain to support communication between a person and IoT objects a fundamental?
Is the ability of the blockchain to support Virtual Private Blockchains a fundamental?
Is the ability for autonomous robots to trade assets using their personal accounts a fundamental?
The fundamentals are not what future blockchain applications will do, but what these applications will not do.
We can use the following analogy: An iOS allows the development of Apps without these having to solve the problems of memory management, or using storage commitment techniques, or even be dependent on the CPU instruction set.
In a similar way, a Distributed Operating Environment (DOE) for the blockchain will allow the development of General Distributed Applications (GApps) without these having to solve the basic problems of communication, addressability and unique identification, replication of data, and security.
These seem to be the main requiements of any distributed application. How much easier would it be, for example, to design an airline reservation system if the DOE already solved for us the problems of system security, verification of the passenger identity, and ticket purchase transaction? How faster would the check-in and boarding processes be for the public?
The blockchain technology has been rightfully compared to the introduction of communication technology. Mostly this is because they complement each other.
With the Internet we have solved the problem of communication among any two parties. Now, with first-generation crypto-networks, how close are we to a DOE for general distributed applications?
Which fundamental blocks are still missing?

Our efforts should concentrate in establishing at least these fundamental blocks by developing second-generation crypto-networks, that will create a DOE for future distributed applications.
The longer term goal for application designers is to solve any OTHER imaginable problem, easily and transparently.
A DOE that proves those fundamental blocks will truly add value to what started as a distributed ledger for financial transactions.
Future generation crypto-networks will go even further in doing what future applications will not need to do.

Giuseppe Gori is the designer and CEO of Gorbyte, a new-generation crypto-network that uses a cooperative consensus mechanism replacing miners/verifiers. He has over thirty years experience in the design and development of computer networks.

Monday, November 20, 2017

Using New Generation Blockchains for AI

Dr. Ben Goerzel, and Dr. David Hanson, of Hanson Robotics, have worked in the field of Artificial intelligence for many years and were recently in the news when they introduced Hanson’s humanoid robot Sophia.
They propose to use a network (SyngularityNET) to make Artificial General Intelligence (AGI) available worldwide by using the blockchain, and built on Ethereum smart contracts. They envision an “open market” of AI solutions available to anyone who needs them.
However, several issues seem to be insurmountable using current blockchain technology.
For example, end-user AGI devices (Agents) will need information that includes code and data objects. These may be many terabytes of information. This information may need to be continuously updated, and must be made available in real time.

Blockchain requirements for AGI are conceptually similar to other general distributed applications (GApps). That is, most applications need to solve the CARS problems: Communication, Addressability and unique identification, Replication of data, and Security.
  1. The communication problem has been solved by the Internet and throughput continues to improve.
  2. The addressability of devices, on the Internet, is centralized and subject to attacks. Furthermore, the unique identity of devices and users is not guaranteed and applications must have their own authorization procedures that often involve disclosure of personal information.
    The current public crypto-networks are essentially anonymous and have no way of identifying and addressing devices and users.
  3. The replication of data is tackled by current crypto-networks, but they have scalability, throughput and cost problems.
  4. The security problem is solved by crypto-networks through encryption techniques.
So, “the blockchain” (the term most often used to describe the state of the art in the field of crypto-networks) at this time can score at best two and a half out of four.
Probably for this reason the SingularityNet project already plans to move away from Ethereum to a more advanced crypto-network.
Furthermore, SingularityNet wants to achieve their objective with “near zero transaction cost”. For this reason they are looking for a crypto-network with a new, much less expensive, or free, consensus mechanism.
New generation crypto-networks will need to solve satisfactorily all the above requirements before they can support general distributed applications.
Ethereum smart contracts (DApps), are objects running on the blockchain. They use the blockchain for every elementary operation. They can be found on the blockchain by looking for a hash of their code. This is a very limited and expensive solution, as we pointed out in a previous article ( ). For most distributed applications the blockchain needs to be involved only for critical operations.
Most of the time peer partners could communicate directly, through the network, without issuing smart contract transactions that imply a modification of the blockchain.
This direct communication is possible only if the partners (or Agents) have a method for identifying and addressing each other uniquely, and only if the crypto-network provides a (secure) messaging service. Both these features are missing in current crypto-networks.
SingularityNet is an example of a GApp implementing a specific purpose network over the crypto-network (i.e., a virtual private blockchain network – VPBN). Addressability and unique identification can be provided for their Agents and databases. However, current crypto-networks do not provide addressability and unique identification within the crypto-network, for the Points of Entry to the crypto-network.
Points of Entry to a crypto-network could be, for example, servers of organizations owning IoT devices, or providing any type of service imaginable through GApps. They could be wearable devices uniquely identifying their owners and using any imaginable service provided by GApps through the crypto-network. In the future, they could be unique autonomous robots registered on the blockchain, and using the crypto-network.
Points of Entry to the crypto-network must be specified, uniquely identified, and addressable, when more functionality is required than what is provided by smart contracts.
Furthermore, in general, only a small portion of the data created and used by distributed applications is critical or historical, and needs to be seen and verified by everyone else in the world for ever. Most of the data can be stored and retrieved on a server off the blockchain. This is also very difficult to do, through the crypto-network, without a method for uniquely identifying and addressing Points of Entry.
Most people intuitively understand the advantages of a public network without intermediaries that is able to store needed information reliably everywhere. Thus, all sorts of plans are put in place, and money is invested, to use “the blockchain” for projects that require reliable identification and addressability of distributed partners and information. In the meantime, the trend of existing public crypto-networks is towards user anonymity.
New generation crypto-networks will reconcile both requirements. In addition to scalability and throughput, they will provide new functionality, including addressability of devices, unique identification of users, secure messaging among unique partners, registration objects on the blockchain, network governance by democratic polls, and much more.
They will be able to provide all the above new functionality without loss of privacy, without the need of IDs, passwords or personal information. For more detail, see:
General Distributed Applications
Connecting AGI devices, and sharing information among them, is conceptually similar to connecting and sharing information among IoT devices. Both robots and IoT devices need to share large quantities of information in real time, need to identify and verify each other, need to know how to address each other for sharing information, may need to exchange money for services, and can physically meet each other and cooperate for a specific purpose, while communicating through video and wireless technologies.
They also need to be uniquely identifiable and addressable. They need near zero transaction costs. They can be public, and respond or serve anyone they encounter, or they may belong to a private group, such as a VPBN managed by a proprietary GApp which may offer free services or charge a fee for other services.
Gorbyte, a new-generation cooperative public crypto-network, provides the whole infrastructure. It creates a Distributed Operating Environment (DOE), that can support general distributed applications. The aim is not to support a specific public social network, or an IoT application, or an AGI open market specifically, but to support any distributed application imaginable or ever conceived.
How can Gorbyte do all this? The scalability and the cost problems are solved through a new consensus mechanism. The CARS problems are solved by the crypto-network for all GApps, so that general distributed applications do not need to solve these problems individually.
GApps can be designed and implemented more securely and efficiently at a higher level, just like Apps written for an iPhone do not need to solve time-sharing or virtual memory problems.

The people at Hanson Robotics are on the right track. They included in their design the ability to possibly switch the carrier crypto-network to a new generation crypto-network that supports a less costly consensus mechanisms. New crypto-networks will also provide them with the needed functionality, such as addressability and unique identification of those entities that will need to interact through the crypto-network and use the blockchain functionality in the AGI open market.

Friday, November 3, 2017

Solving the Scalability Problem of Unpermissioned Crypto-networks

How are current crypto-networks going to cope with increased application demand?
Bitcoin’s demand is generated mostly by financial transactions. These are an important, but small fragment of all distributed applications. Ethereum’s demand, in addition to financial transactions, is generated mostly by smart contracts used to generate tokens for ICOs.
Although ICOs are becoming very popular, again this is just a fragment of all possible distributed applications that could take advantage of “the blockchain”.
The researchers involved with both networks are aware of their current limitations in scalability. How could these network provide for the future market of general distributed applications, several orders of magnitude larger?
The scalability problem
Scalability can be a problem when some resource requirements grow exponentially with the number of nodes in the network. For example, the time to distribute or process transactions, or the time to process a block, or the communication time to distribute a block, or the space required for storing a block, or the space/time required to store and process unconfirmed transaction, etc.
These parameters can be kept in check, to a point. However, any system will have limits, given its design and the technology at that time.
The researchers at Gorbyte, Inc. provide two answers to scalability.
  1. One hundred to one thousand fold improvement in throughput, and
  2. Off-loading the blockchain by supporting general distributed applications (GApps). These are applications that can use the blockchain, but run off the blockchain.
1. Improvement in throughput: Current PoW crypto-networks are not designed for efficiency and most of the above example parameters will tend to grow faster than the number of miners in the network. One of the reasons is that the PoW system is not truly decentralized, but randomly centralized. Another reason is that most of the miners’ processing power is used for a conceptually simple task: to select a random “real” miner. PoS systems should do better, but are as yet unproven.
Gorbyte uses a more decentralized design for its consensus process:
  • Every node participates in the consensus agreement process.
  • Every node communicates only with a small number of random logical neighbors.
  • The reconciliation communication among all nodes happens in parallel.
  • Several precautions are taken in order for blocks to be similarly assembled by every node, at the start of reconciliation (e.g.: synchronous operation, canonical ordering of transactions, no picking and choosing of transactions by miners).
  • Only in a small percentage of cases a node will require information from outside its logical neighborhood.
Thus the agreement process requires a small amount of time and much less processing power.
If a node cannot reach an agreement within a predefined time (e.g.: delay or malfunction), it will have to reinitialize and get the last block from an active peer node.
For the above reasons, Gorbyte is not bound by processing power, but by communication broadcasting and downloading times.
Considering also the exponential improvements in new technologies, we predict that the Gorbyte architecture will remain scalable. That is, the increased demand for new resources (e.g. bandwidth, memory, processing power) is expected to continue to be satisfied as the number of nodes in the network grows.
2. Off-loading the blockchain: The second answer to the problem of scalability is provided by Gorbyte’s BRUD device architecture.
Gorbyte, in addition to supporting smart contracts (DApps), will support general distributed applications (GApps) that are able to use the blockchain for critical events and historical data, but run off the blockchain. For most applications, this greatly reduces the amount of processing and storage requirements on the blockchain, thus allowing the blockchain to be usable by the much larger market of general distributed applications without the limitations imposed by smart contracts.
Smart contracts are objects stored on the blockchain, running on the blockchain and producing results on the blockchain. Thus any input, execution or output event on such objects involves the blockchain and, by definition, it is replicated on all the network nodes.
While there is a need for smart contracts for critical applications, the majority of general distributed applications (an estimated five sixths of the total software market) will need to store only critical events and information on the blockchain, but can do most of their processing and data manipulation using resources off the blockchain.
The availability of GApps will reduce the requirement to develop every blockchain application using the only tool currently available (smart contracts), thus at the same time it will:
  • reduce the throughput and storage requirements of the crypto-network, and
  • allow for an expansion of the type and range of general distributed applications taking advantage of the blockchain.

Saturday, October 14, 2017

The politics of the Blockchain

In the industrialized world, as modern democracies, we have come to appreciate the need for a minimum amount of basic government, providing for national defense, law and order.
Many people also recognize the limits of government, as government should not take over functions that people and associations can do by themselves.
For example, the libertarian author Frederic Bastiat wrote in “The Law”:
The law is the organization of the natural right to lawful defense. It is the substitution of a common force for individual forces. And this common force is to do only what the individual forces have a natural and lawful right to do: to protect persons, liberties and properties; to maintain the right of each, and to cause justice to reign over us all.”
Most democratic nations however, have leaned towards increasing involuntary taxation to fund more centralized economic and social programs.
The history of almost every nation in the world shows that the tendency towards higher centralization has lead to despotic governments and nasty consequences.
More government centralization and more programs for the common good draw more human resources from those enterprises that generate economic activity.
More people become dependent on government, either directly employed, or working on government contracts, or working on non-competitive government projects, or not working
at all. This reduces the nation’s GDP. As a consequence, government revenues are reduced and the government’s ability to maintain social programs is curtailed.
People who understand basic economic laws, conclude that in a democracy we can chose options ranging between the following extremes:
  1. a limited government, with limited social programs, in a thriving economy, and
  2. a large government, without enough revenue for social programs, in a stagnating economy.
The trend, in industrialized democracies, has been towards large governments borrowing from future generations and overtaxing productive young people, promising them future benefits and pensions paid with future fiat money.

In addition, governments control the creation of new currency, generated to counteract currency demand. This depreciates future fiat money.
Finally, governments control the distribution of new currency through central banks, since they do not have a method for distributing shares of new currency directly to their citizens.
The reaction to this trend, especially by some young entrepreneurs, has been to escape to cyberspace by espousing innovative technologies that allow them to participate in the profits derived from currency demand, and possibly hide some of their economic activity from government. This course of action though raises a number of ethical questions.
Permissioned or not?
The new distributed ledger technology, or blockchain-based crypto-networks, are classifiable in many ways. A previously published technical classification is available at:
On the one side, those financial institutions that have always promoted “know your customer” policies are researching and developing permissioned crypto-networks, where trusted intermediaries are responsible for the verification and distribution of blocks for the blockchain.
These institutions are joined by large corporations that have traditionally sold proprietary software and services.
On the other side, there are many crypto-networks and projects under development that are unpermissioned. These do not rely on trusted authorities to verify end-to-end transactions, but rely on cryptographic functions. Their network security is proved by opening their source code to public scrutiny. A more dangerous approach, perhaps, but tested on the line of fire.
Among these unpermissioned crypto-networks are Bitcoin, Ethereum, and many of Bitcoin’s modified clones.
Privacy, anonymity and fungibility
The concern for privacy, especially in light of the many recent leaks and attacks to corporations, institutions and government, has grown exponentially in public perception.
Most people are aware of the danger of publicizing their ID or any personal information whatsoever.
Unpermissioned crypto-networks are specifically providing anonymity, while providing the ability for peer-to-peer movement of money and contract execution.
However, anonymity does not hide transaction records. In most current crypto-networks, transactions can openly be scrutinized and traced. This can be considered as a positive feature, if some sort of investigation needs to be done, for example after an attacker may have hacked a contract or stolen money.
Other researchers and developers see this openness as a vulnerability and are actively working towards untraceable crypto-networks. They would like crypto-network transactions not to provide any clue with regard to the user (e.g.: Identification, location, address) or its transaction (e.g.: transaction identification, transaction amount).
They would like crypto-networks not only to provide user privacy (e.g.: Identification, location, address), but also to provide no clue with regard to its transactions (e.g.: transaction identification, transaction amount).
Some Bitcoin researchers are working to provide fungible currency. That is, in their opinion, it does not matter where the currency comes from, it should be treated equally.
More recently, zero-knowledge techniques have been proposed. These are aimed at completely hiding any indication of financial transaction addresses and amounts. So far they have been implemented by the ZCASH and ZenCash, and planned for roll-out by Ethereum.
Are we going too far, simply because we can?
Can we strike a balance between anonymity and traceable transactions?
I can foresee two potential issues with making crypto-network transactions absolutely untraceable. The first is an ethical problem, the second is a more technical issue.
Possible Ethical Problem
Because technology often precedes the law, we need to ethically self-evaluate any new technology. In particular, crypto-networks should not encourage money laundering or any other criminal activity, and should help law enforcement, as much as practically possible, to prosecute individual cases of illegal activity.
There is a difference between giving the government a portal for bypassing the security of an iPhone (recent Apple case) and allowing everyone, including the police, to inspect a public blockchain, so that criminal behavior can be forensically analyzed.
As a society, by majority opinion, we have agreed to pool our resources for policing, both in our everyday life and in corporate environments. We have agreed to prosecute those people that bypass the laws of free market to make fast money, whether by stealing property, insider trading, distributing dangerous narcotics, Ponzi schemes, human trafficking, forced labor, etc.
In a similar way, mature crypto-networks should conform to the will of the majority in criminal matters as expressed by the laws of most civilized nations.
In a typical scenario, if an attacker stole currency, should anyone do something about it, or should the thieves allowed to enjoy the fruits of their illegal action? Recently some people criticized the Ethereum Foundation decision to hard fork the network to avoid the damage incurred when a contract involving a large sum of money was hacked. However the majority of people agreed with their decision.
Now the lead Ethereum developers are planning to change its encryption mechanism to use a zero knowledge security protocol for handling transactions. With current encryption techniques it is already difficult to identify an attacker who has been able to steal currency. With zero-knowledge encryption techniques, law enforcement will be even more difficult. This does not seem to be a development consistent with Ethereum’s recent decision to strongly react to currency theft.
All unpermissioned crypto-networks provide privacy for individuals. However, within this class, we see some networks planning to make their transactions untraceable while others may continue to maintain their transactions visible to third parties. Visibility of transactions allows law enforcement forensic scrutiny and is a deterrent to criminal activities.
Why would a network specifically hide financial transaction destination address and amounts? Is this not an indication that the network may tolerate money laundering and illegal activities?
Once the law catches up with technology, what do you think the majority of people and governments will decide?
Although the law cannot stop a blockchain, it can make life difficult for its users when they want to exchange their digital currency.
A More Technical Issue
In a previous article on user addressability in crypto-networks (“Where are the Gapps in Bitcoin and Ethereum?”) we have shown how new generation crypto-networks will provide some form of user, device or node addressability for selecting specific peers for distributed functions.
This can be done while maintaining privacy and without requiring user identification. However, addresses will need to be unique and readable by anyone.
So, if addresses need to be known for Contract applications (Dapps) and for general distributed applications (Gapps), why would a crypto-network hide the addresses of financial transactions?
One argument is that a competitor could acquire information by analyzing recurring transactions, for example between an investment firm and a target corporation. Such information could reveal the plans of the investment firm before public market indicators can be obtained.
This is not a privacy argument, but a fair competition argument. Is there an advantage in limiting competition?
Assuming the answer is yes, in some cases, can these institutions not protect themselves already by using a new address for every transaction? Or using methods (such as TOR) to hide their transactions’ provenance?
Furthermore, if an institution chooses to use a zero-knowledge network, it may create suspicion in the eyes of the law. This is one of the reasons why financial institutions stay away from public unpermissioned networks. It seems to me that zero knowledge technology goes even further away from addressing their requirements for public trust.
With zero-knowledge technology a person may unintentionally engage in a transaction with a criminal, or scammer, or accept laundered money. He may not be able to avoid the consequences of his unintentional action, such as lawyers’ fees and court appearances.
Zero-knowledge technology is an interesting research development. However, its practical implementations appear to cater to individuals who may want to evade the law more than facilitating free exchange and business interaction.
Unpermissioned crypto-networks have made decisive progress in removing possible interference from intermediaries and in maintaining users’ privacy.

New-generation crypto-networks will need to advance in other areas that need to be improved, such as providing addressability for general distributed applications, efficiency in data replication, network scalability, network governance and stable currency values.

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.