Written descriptions and stories are sequential. Complex systems are parallel systems where many threads happen at the same time. Non cognitive thought is parallel but we describe in sequence. This leads to difficulties. Our information systems work in parallel. Different parts interact with other parts. It is this parallelism with interactions that means that information systems are indeterminate.
We design and build information systems as though they were sequential and deterministic. We believe that our programs are reliable and we can model the real world with sequences of instructions. We can't. Our models (computer programs) no longer reflect reality.
What happens with our models (computer programs) is that they become the real world. Our electronic identities become real. The direction of most of the effort on identity has been to keep making identities "bigger". We do this with single signons and with OpenID and with personal clouds. Making things bigger by using the same structure and connections - just more of them - does not scale.
The systems created with tools like CloudOS, formalised in Promise Theory scales in a different way. Instead of doing same thing but bigger we find the atomic elements and combine the atoms in different ways.
A physical analogy from Promise Theory is the combination of Hydrogen and Oxygen atoms.
One of the stable ways we can combine Hydrogen and Oxygen is H2O or the water molecule. There are other ways Hydrogen and Oxygen can combine. For the purposes of this explanation we now think of H2O as being a stable molecule. These molecules combine together. It does not happen by making bigger water molecules say H1000O500. Rather H2O becomes the new "atom" and H2O molecules combine together. Depending on the conditions we get water, or ice, or water vapour.
In other words this is a scalable way of combining Hydrogen and Oxygen atoms.
Promise Theory describes how this is nature's general approach to handling complexity. I think it may be a new theory of evolution; but let us not go down that burrow:)
How can we apply this approach to identity?
Let us define an identity atom as being the mutual identity between two autonomous entities. An organization identifies a person and the person identifies the organization. This is a username/password plus all the identity information passed between them. This now becomes the identity atom. All existing electronic identies are the new identity atoms.
Identic is a way of linking these identity atoms with promises. We expect to break some promises. The set of identity links becomes another identity thing. The Identic links create something analogous to water. It is a different form of identity. The Identic links create stable polyhedra. We can visualise this identity as a set of polyhedra.
We are not using CloudOS to build Identic but are using Scala as it is a declarative language. Declarative languages enable us to specify promises. This contrasts with imperative languages where we construct sequential deterministic systems.
But, we must govern the organizations that build and maintain the polyhedra. To that end Identic is Open Source Software that helps ensure cooperative behaviour in entities that use the software.