Monday, March 26, 2018

The Concept of Role in MultiAgent Systems.

In this post, I will consider two types of Processes. Social processes with multiple agents and computational processes performed by computers.
In the first case, the function of the process is the production of a tangible or intangible good. In the second, the computation of a value.

Secondly, this is not just a theoretical discussion. Social processes (as well as computational processes) can be described in a digital specification language, which is then used to create the communication tools that the agents will use to interact with the others to perform their task.
Understanding the concept of role helps us in designing a better specific. language.

Here's what I will try to show. The different roles in a multiagent process do not describe the functionality that each one performs, but rather it devides the work into parts that have fitness functions that can better be fulfilled by the agents, or the system as a whole has material conditions that make it work better with such a division.

Let us look at two examples.

What is the role of the doctor?

One could say that the role of the doctor is to inspect a patient and prescribe medication.The role here would be defined by the functionality of the agent.

In the computational context, the role is described by the type of the inputs and the type of the output.

ex. toString : Integer -> String

In PL, we already have a description Language for such a thing, it is the standard Type System that each language provides to the programmer.
 Could on thus say that a specification language of roles is redundant? If we are to introduce a new specif. system, we need to understand what it describes.
More importantly, if roles describe something different, then the specific. lang should be independent of the type system that describes the functionality of the process.

Going back to the doctor, the description of the work that a doctor does , does not explain the reason that there should be a specific person that is to perform that job. There are material conditions that  explain that.

First of all, the job of the doctor requires specific knowledge that needs to be acquired by a human being. Because of our limitations , we can only understand so much, thus it is necessary to split knowledge in smaller parts.
All doctors need to have that knowledge and there are institutions that train and verify the skill of subjects, medical schools.

At the same time, there are other material conditions that lead to the role of the doctor. There is the problem of locality. Even though drugs can be researched and produced in certain locations, doctors need to be locally found where the patients are. Because of this , we have doctors that are located in each city , individually or in hospitals.
   Doctors at the same time require certain instruments to perform their job. Based on the cost, some are acquired by doctors individually. Costlier ones are available at hospitals. Here we see that the role of the doctor is also determined by the cost of acquiring their medical instruments. People who cannot buy them cannot play the role of the doctor even if they have a medical degree.
At the same time, we have found that higher-level roles, roles that describe a subset of the multiagent system is also affected by materialistic conditions.

Hospitals and the roles they contain cannot be understood in isolation to each other. There are cooks, cleaning personnel , nurses, administration staff that all work in coordination and in parallel.

 Returning now to the case of a Multiagent Computational System, the roles are again created for material reasons.

First of all , certain types of computation require specific hardware requirements. Some require a lot of memory, other require a lot of cpu power, fast double precision arithmetic, fast encryption and decryption modules or ecc memory.

The requirements of hardware and software for a bank, a rocket , a phone or a car computer are quite different.

Next, Agency is an important factor for creating new roles. The client and the seller cannot be the same role. Each one has a different motivation. The first wants to buy something he finds useful and not pay much , the other wants to make money. The seller here, wouldn't be able to decide what the client should buy because he does not know the preferences of the client and his income.

Thirdly, data are owned by specific institutions or people. They do not wish to give them, thus they need to perform the computation that is related to their data by themselves.

Forthly, we have the concept of authority, in which a specific agent is given the task of validating a specific type of information, or authorizing a specific computation.
There are many material reasons why a specific agent needs to be an authority ,which leads us to create that role.

As we saw, the context of the computation, social process, the material conditions in which those processes are performed determine the roles that need to be introduced into our system. Thus, our design would need to allow the change of the schema of roles without affecting the rest of the type system.

How does one do that? That is a question to which I have no answer at the moment. (But I have some ideas).

Saturday, March 3, 2018

Decentralization of Power and Fail-Safe Democracies.

One of the main points of Marxism, Exploitation , is directly related to the idea that an entity that does not take part in production decides how to spend the profits of Production. The same problem arises in Failed Democracies. The only solution is to decentralize Economic and Political Power so that such failures can be overcome.

Let us look at a centralized version of Communism. In this case, the state decides the amount and type of production that occurs. It gives redeemable coupons to workers which they can give to stores to buy products in exchange for the work that the state has assigned them to do.

Let us look at two scenarios. In the first case, the state takes decisions democratically. The population is given the ability to decide about the Economy. This can be done with local assemblies or with the internet. The decisions are then processed and the result is then passed to the individual sectors of the economy.
  Keep in mind that there is a bureaucracy that handles the democratic procedure , produces a solution and sends the signals back.

The second case is the same as before but there is a problem in the democratic procedure. It does not have to be a big problem. Simply the state starts to decide on things that it shouldn't. Some actors have a disproportionate ability to influence Production. It is at this moment that the concept of exploitation that Marx used to describe Capitalism starts to also apply to this scenario, to degenerate Communism.

Can we recover from such a scenario? It is very difficult. The reason for that is that all the processes that organize society are controlled by a single entity. The only solution is a Revolution by the whole of Society. It requires the subversion of big parts of the economy/Society in a scale big enough to be sustainable and to cripple the previous economic system. Small scale uprisings will simply fail unless they inspire others to follow.

There are many Revolutionary parties who want to create a Communist Society. None of them realize that such a Society can be very easily subverted into an Exploitative one.

There is a reason why most Communist Visions are centralized. The rejection of private property in production requires someone to take care and expand the means of production. And this requires that Society decides on the economy as a whole, since the means of production belong to all. Since the public property belongs to all, they all need to contribute in its production. This , thus, requires a centralized way to extract value from Society that is to be spent on the public property.

 Another solution is to provide local rules that prohibit exploitation , maintain the means of production as a public property and at the same time have a decentralized way to invest in Capital goods. In this case, there isn't a centralized control of residue value / profits. In fact there are no profits. All the value is returned to the workers / producers. It is then up to them to invest in capital goods. The capital goods are used by Society and customers only need to give back the cost of investment. The investors have no claim on the product of production and they have no control of production at all. Investments are simply a store of value.
In this case, there can still be and should be democratic structures , both local and centralized. Since the method of value accounting is decentralized, if a centralized democratic structure becomes undemocratic, part of the network could simply split from the rest. The social productive relations depend on this decentralized method of accounting to continue functioning.
The ability to invest will continue to exist since it is local peers that perform it.

As long as economic power is decentralized , the democratic structures that are built on top will need to abide to Society's will.

For the same reason, the Capitalist states need to obey to the economic actors that control the productive forces of the economy. Firms have full control over their production, over the accounting of their revenue, and over the investment opportunities that they could pursue. Capitalist democracies can either obey to the economic actors or be overthrown.

If one needs to create a Society where there is no money, then there is a generalization to the previous solution. You need to build a Society where Societal Power is decentralized. Previously, power was based on money or credit. In a moneyless Society, the democatic structures need to be decentralized and self-healing. If one fails, the other can continue to work and eventually overpower the failed one. This does not mean that Centralized Structures should not exist but that they are powerless without the support of the decentralized Social structure.

Assuming that you believe in a reformist transformation of Society, you need to check that you maintain the political power locally at your political organization, or your trade union. If you allow a secondary party to hold the political power, then that party can do what it wants, and it will most probably succumb to the Economic pressure of the Capitalist class.

Wednesday, December 20, 2017

Complexity and Composability of Social processes.

I recently read an article on the difference between Physics and Biology.
Even though both type of systems are able to (re)act to their environment, DNA allows biological systems to store information that is then used to have a more complex set of interactions. The outcome of evolution is for that information to expand. Can we use this model for human societies? What would be the limiting factors in the increase of societal complexity? And what solutions have already been found and used?

It seems to me that the model can be expanded. When humans invented writing, they were able to write down newly discovered techniques. These techniques are then copied and used by others , who at the same time have the ability to modify them so as to make them better.

In biological systems, the DNA is interpreted into proteins by specific cell chemical mechanisms. In human societies, it is humans that must interpret technological knowledge into actual tools and final products. Thus as our knowledge expanded, it was important to have specialized personnel for each part of the technology. Our own cognitive skills were not good enough to understand all the codified knowledge that we had as Society.

If we have people specializing their technical knowledge , that creates the problem of interaction of the different groups that have different kinds of knowledge.

I call this the problem of composability. Composability is currently achieved by creating specifications which describe the phenotypic limits / properties of an object, or a system of objects, or possibly human processes.

Specifications thus create an abstraction over the complexity of a specific technological knowledge. This reduces the cognitive burden to the rest of Society.

Now , there is a new problem. The experts in the field need to create objects that abide by the specification and the rest of the world needs to interpret the specification correctly.

If there was a way to do this automatically, that would reduce failures to zero. New technological methods would more easily be accepted and used. If one considers a system with a multitude of parts where a single failure has a cascading effect on the rest of the system, then it becomes apparent that automation of the verification process is very important.

With regards to software, and thus to anything else that can be digitized,  dependently typed languages like agda and idris have the ability to verify that a specific specification is being respected.

In terms of our current state of affairs, Society's knowledge is currently privately owned by companies, thus the knowledge cannot be duplicated and it cannot be mutated. Even in the case that knowledge is open source, the capital cost of materializing that knowledge is prohibited for the majority of people.
  Interactions between companies is mostly done with material objects. When there is a human coordination between them, like in an R&D project, the interactions themselves are under close doors and are very simplistic.

If we are to have complex interactions between individuals in an open environment where everyone can join and / or propose new methods , social processes, then it becomes apparent that it is necessary to have specifications of Social behavior, that would allow social processes to be composed and to be mutated without fear of cascading failures.

If we are to use digital methods of Communication and coordination , then current research developments in the verification of communication protocols could provide to us exactly what we need.

What we would then have is the specification of the social processes of Society itself and their dynamic interactions. Given that the cost of verification would be zero and because the specification would be available to anyone to democratically modify, I predict that we would have an explosion of Social complexity.

Thursday, October 5, 2017

Freedom and autonomy as Emergent properties.

Libertarians , both left and right, are very much interested in freedom as their name suggests. Unfortunately, their version of freedom describes the ability of the individual to interact (or not) with others at a local level. But freedom is also emergent. It arises from the social structures that we belong and then becomes a property of the individual.

Let us look at an example from physics. The most common example here is that of the ideal gas law. Let us have a number of melecules of gas inside a container.
These molecules are free to move at any direction and because of that their movement is random. From a libertarian point of view, the molecule has complete freedom since it can "choose" (due to randomness) to go wherever it wants.

There are though two properties of the molecule that can not be conceptualized other than if we look at the container itself and the gas as a whole. First of all, the molecule cannot escape the container it is in. Second of all, the amount of collisions with other molecules is determined by the pressure , volume and temperature of the gas inside the container.

Neither the pressure , volume or temperature are properties of the molecule. They describe the macroscopic properties of the gas. But at the same time , they impose on the molecule an emergent notion of freedom which measures the probability of collisions with other molecules.

Now, if we return back to human beings and Society, we will see that emergent properties affect most of our lives.

Milton Friedman was one of the proponents of economic freedom, the ability of the individual to take economic actions, and the reduction of government intervention. Of course, the government never stopped to intervene in favor of the big Corporations but let us look at this theory at face value.

It is true that people can decide to work for someone or not. But the type of work, the wage, the conditions of work and the quality of the output is not decided by them. More importantly, unemployment is an emergent property of Capitalism. Unemployment leads to a reduction of wages that is necessary for profits. Hierarchical structures is also an emergent property of Capitalism derived due to the accumulation of wealth. The existence of the working class and the capitalist one is also an emergent property.

So despite having economic freedom, you are forced to live in poverty, work for low wages or be unemployed. If you work, you will take orders from someone in the hierarchy that is not more qualified than you. And you will be a worker for all your life , though you may believe in the American dream that you can become anything you want.

If we now look at the ideas of left libertarians, we will see that they make the same mistake that right wing ones do. They are talking about voluntary association which is indeed a good thing to have but they do not acknowledge freedom as also being an emergent property.

In this blog post, Heather Marsh discusses the evolution of Democracy and proposes that the future Society should be stigmergic. Stigmergy in general describes the indirect coordination and possible collaboration of many individuals. The main point here is that such a coordination is indirect instead of authoritarian. But as I pointed to her, stigmergy can be a good property to have but it is important to understand that it neither promotes freedom nor autonomy. At the microscopic level, you might think that you are free but at the macroscopic level, you are not.

In other words, left libertarians from a conceptual point of view do not differ from right wing ones, even if the one is pro-capitalist and the other anticapitalist.

Wednesday, October 4, 2017

DAOs that have ICOs are not really DAOs.

BlockChain/Ethereum is said to enable the creation of Decentralized Autonomous Organizations with the use of a technology called smart contracts.

Even though, it is theoretically possible to do so, the creation of a DAO by performing an initial Coin Offering is intrinsically contradictory. If it was truly a DAO, the price of the coins would be zero.

Non-zero value means that there is an asymmetry in power and control and thus the DAO would't be decentralized or autonomous. To understand why this is the case, one needs to translate the decentralization promise of Ethereum / BlockChain to social / economic relations of power and control.

BlockChain's main feature is that it enables the decentralization of the infrastructure and the open access of the data. Any asymmetric power relations that arise from the control of the servers , software and data are made impossible.

The infrastructure is though not the only way that enables asymmetric power relations.

Let me give you an example . The company that created the ripple protocol and network has open sourced its software. At the same time, they created billions of coins. They gave away some for free and the other , they kept to sell.
  One could say that anyone could just take their software and create their own network with their own coins. Unfortunately, this is not possible. First of all, it requires a team of professional programmers that are able to fix the bugs that are to be found. They also provide expertise to organizations that want to join the network. As soon as  Banks and other organizations join the system, it immediately gains value that is not present in the software itself. This is called the network effect. After a while, the value of the system is big enough that is difficult to create another network.
  For this reason, the price of ripple coins is not zero. For the same reason, the network is not decentralized.

When we talk about DAOs, we need to distinguish between the decentralization of power and control and the decentralization of the infrastructure. The blockchain only enables the latter.

Let me make another example to show you that any real DAO would be unable to have an ICO whose price is not zero, let us look at a much easier example.

Let us say that you bought a song at price x. Assuming that you are able to copy the song and give it to anyone you want at zero cost without repercussions, noone else would buy another copy as one would simply get it from you.
The price of the song thus almost immediately becomes zero.

If someone was able to simply copy the code and data that reside in the blockchain and create a copy of the previous DAO, then the price of the coins would be zero as well.

if a DAO has an ICO, it is not a DAO.

Monday, June 12, 2017

A reply to "Protocol Cooperatives" by Matthew Slater.

 This is a reply to Matthew Slater with regards to his article on protocol cooperatives vs platform cooperatives:

Hello , 

  I agree with you that we need open protocols, or open value networks. But we also need accumulation of capital , something that cooperatives are trying to solve.

  Both open protocols and a decentralized accumulation of capital would be better than either alone.
  I can't see how creating an interoperable network of alternative currencies will solve this problem. Ryaki tries to fix this problem.
  Keep in mind that if you look at the capital/labor ratio of world's GDP (capital depreciation / labor) , it continues to increase every passing year, as automation takes over the production.
  It is important to look at the statistics , because some would argue that in a knowledge economy, capital has no important role to play.

  On another topic, blockchain is not designed to create a multitude of protocols that are composable. The cost of creating new protocols will be high. A new language is needed, a new type system. Session types is one such solution.

  More importantly, you have low expectation of success for cooperatives, but your argument (from the point of capital accumulation) also applies to open value networks. If the network is not able to accumulate capital , it eventually dies, in the same way that an organism does when it does not eat.

  And I agree with you. There is little chance of success for both open protocols and cooperatives. The internet is one example where networks have transformed into centralized hubs.
  This is why our work should not be done so as to succeed but to inspire a new generation of people that another world is possible. Our work should be to inspire them to demand that such a world becomes our world.

  You say that CIA can create dictatorships in countries that are out of line. That is why protocols should enable the coordination and cooperation of the people that are part of the resistance. The protocols should enable the political movement to succeed.

Sunday, June 4, 2017

An introduction to the ryaki monetary network.

In this article, I will try to explain how to build a new incentive mechanism for investment in order to replace profits as a motivation.

Is it possible to have people invest with a zero or negative rate of return?
At first, this will look impossible to happen but one will soon find out that there are examples where this actually happens. Some banks have recently decided to have negative interest rates on their saving accounts. The reason why people did not withdraw their money has to do with risk. Putting the money somewhere else would increase the risk of losing most of the money, in other words, eventually it is better to have a negative interest rate than losing your money.

There are two points to be made from the above example. First, investors chose a negative interest rate because there was no other choice. Second, risk aversion can be a motivation mechanism for investment.

How can we introduce risk in our monetary system?
Let us look at the stock market. The value of the stock of a corporation is determined by its equity, the value of its assets and its liabilities and its price is determined by the belief by the investors of its future valuation.

Let us introduce three new rules in the stock market. First, selling stocks to get fiat money is prohibited. There can only be an exchange between stocks. Second, the above corporations become non-profit. Third, you can use your stocks to buy the products of these companies. For example, if a product has a price p, and the capital depreciation for its creation is c, you need to destroy shares of value equal to c (because the capital they represented does not exist anymore) and transfer shares of value (p - c) to pay the labor cost.

The first rule guarantees that investors will not flee into non-risky financial instruments because of the second rule. The third rule introduces a new incentive mechanism for the ownership of shares, the use value of their products. At the same time, we have introduced a new problem, we do not have a single currency with which to perform our exchanges, thus most exchanges will fail to materialize. We need to find a way to solve this problem.

The problem can be solved with a version of the ripple payment protocol. The ripple protocol was invented by Ryan Fugger, a Canadian developer that initially wanted to enable people to create credit and use it to perform transactions. A few years later, the main idea was used to enable cross-border payments and cheap inter-banking money transfers. The currency of this company that is used to make the transactions is currently the third most prominent digital currency after bitcoin and ethereum.

Let me make an example of the use of the ripple protocol in our case. I will use the simplest method. Better methods could exist.

The first rule of the protocol is that investors input the stocks that they would like to own and the maximum number of shares per stock. The ripple protocol is then permitted to exchange stocks by itself as long as these limits are respected at the current value of the stock. (In our case the value is constant and is determined by the initial investment in capital)

Consider investors Alice , Bob and Tom.
Alice owns 5$ shares of A and wouln't mind having 4$ shares of B.
Bob has 8$ shares of C and wouldn't mind having 3$ shares of A.
Tom has 6$ shares of B and he would like to buy a product from C that is worth 3$.

Alice works at company C, for every product, 2/3 of its price goes to repay the capital investment and 1/3 goes to her.

Ripple checks to see if there is a transaction path. It there is, it performs the payment.

After the transaction:
Alice owns 3$ shares of A and 3$ shares of B.
Bob has 6$ shares of C and 2$  shares of A.
Tom has 3$ of B and his product.

As one can see, ripple enables us to use the equity of companies as an exchange currency without having to use fiat money.

It is also worth to see the total credit before and after the transaction. After, the total credit is 2$ less because the capital has been expended.

Ripple creates a trust network on top of the stocks with each edge representing that the investor is willing to own the specific stock. Will this network be connected enough to permit seamless payments inside it? This is a research question that requires agent based simulation and that I do not have the time to perform. I have a specific transaction routing algorithm in mind that incentivizes investor to disperse their investments to multiple stocks, thus increasing the connectivity of the network.

Consider the case where
a 500$ stock of A is owned by
Alice 200$
Bob 250$
Tom 50$
and someone buys a product with 5$ going to the investors (total price is irrelevant here).

One would think that Alice would get 2$, bob 2,5$ and Tom 0.5$. If the rate of sales is r, then the rate per capital remains equal among all the investors.

If on the other hand, we equally split the money to all the investors, 5/3 to all, the rate per capital would be lower for Alice and Bob and higher for Tom. This incentivizes Alice and Bob to create trust connections in the ripple network to split their capital to as many stocks as possible.

(The investors want to take their money away from stock A because the investment is old, new technologies have emerged and thus new investments that are less risky than stock A.)

Let us now investigate a new property of the network that resembles a property that banks have.

Let us consider a single bank. The total amount of its customers saving accounts is more than its reserves.

Everyone , though,  believes that they have unrestricted mobility on their money and that is because only a small percentage of it is used and when it is used, it is actually circulated among the banks.

The reserves of the bank are a hidden limit to the mobility of money. Another hidden limit is the production capacity of the world. If the total gdp of the world is tgdp and one has more money, one will realize that the total amount of money cannot immediately materialize into use value.

Now let us go back to our ripple, now called ryaki (meaning stream), network.
At first the total production of the network will be limited and thus the credit inside the system will feel restricted and limiting. As soon as the internal production expands above the average needs of the people, then the limit will be forgotten and we would have achieved to have a monetary system that uses the stock of the companies as the currency.

How are new investments financed?

A. Investors that want to reduce their risk extend their trust on the new investments. This means that if there are transaction paths between the company that produces the machinery and this new investment stock, the machinery will be bought through these new credit paths. The total money in the network expands by adding the cost of the new machinery.

B. Sales that are done outside of the network are used as well. In a traditional for profit company the sale of a product of value v is split to pay for the capital cost, the labor cost and the profits. v = c + w + p. In the ryaki network, the workers will be given w. p will be given to them to invest it inside the ryaki network. There are details on this example that I omit but It is worth noting that the rate of expansion of the network will initially depend on the profits that will be acquired by the external market.

I would like to conclude here even though there are many important details that are not mentioned. If the above trigger your interest, feel free to ask me questions. Not only that, It would be really nice if one did agent-based simulations to verify properties of the network. One could verify by performing random transactions that we will not have inequality. Economic crises will also not be triggered due to debt or due to the profits falling very low.

It is also worth noting that this monetary/production network is not designed to be the best way to distribute resources or the best way to guide production. Its design has been shaped by the initial conditions of our society.