Main Page

From СhainInLaw
Jump to: navigation, search

Introduction

Our civilization is built upon the law — a complex system of norms governing the behavior of individuals. This complex construction was built to get us a sustainable structure (namely society) consisting of unreliable components — the people.

Thousands of years since the first legal relations emerged, a similar problem was solved by building a reliable system for unreliable elements called the Distributed Ledger Technology (DLT).

In the real world relations of the subjects lead to the creation of legal relations governed by certain rules — the norms of law. Legal relations and their changes can be represented as structures that can be grouped as directed acyclic graphs. The passage of time sets a(n) "orientation" (vector) and "acyclicity" of relationships: since one arises, it is valid until changed or terminated by a new relationship. Recognizing the right as absent would not erase it from the history but influence the future consequences.

For the emergence of a legal relationship, it is necessary to have legally defined subjects and a legal composition — the required aggregation of legal facts, i.e. legally significant actions and events with which the rule of law or the terms of the contract link the emergence of legal relations. At the same time, the key element of a legally significant action is the will of the subject of the legal relationship. It must be unequivocally interpreted action of the subject and have the direction of the emergence (change or termination) of the relationship.

The development of cryptography and the widespread introduction of asymmetric ciphers into practice allowed us to legally identify a subject and determine the fact of his will through the use of his private key. Usage of time synchronization between all network nodes allowed to reliably determine the corresponding point in time.

Today technologies let us build a universal cryptoplatform incorporated in the existing legal system, which allows users to enter into various legal relationships as easily as possible while simultaneously capturing them in the form of permanent records in a distributed registry.

To build such a platform, we only need to determine the legality of actions for a unit (node) of the network. As we tried to find the most common solution, we divided the classical consensus of the distributed registry into two levels — at the application level (user-defined transaction processing and block building) and at the network level, which ensures the stability and integrity of the network. Thus, users can independently determine the composition of the nodes, the rules for joining new nodes, and the order of processing transactions. This allowed us to create a tool for constructing legally defined procedures for servicing a wide class of business processes.

Platform basics

2.1 Network status and legality

2.2. General description

The exchange of User information with network units – nodes, occurs through transactions. The transaction contains a witnessGroupId field that defines the Rules to which the User (the sender of the transaction) joins and in accordance with which its transaction must be processed. When a transaction enters the network, it begins to spread across the network, passing from node to node. A number of transactions form a mempool – a temporary depository of transactions. Upon the occurrence of the conditions specified in the Rules, the group of Validators that have joined the Rules (nodes implementing the algorithmic part of the Rules, also called the Consilium), selects the transactions that they must process and form a block. After the transaction has been confirmed (included in the block), it is removed from the memory. Next, the block falls into the general network storage, built on the principle of a directed acyclic graph. The blocks are connected in accordance with the rules of Meta-consensus (the network level of consensus of the Platform distributed registry), which ensures the integrity of the network.

2.3. Platform Layers

The platform is divided into five layers. Each of the layers can be reworked without affecting other layers.

Technical description of the platform.

Main modules of the platform business logic

In addition to the development of the Platform and interfaces, we are developing a number of versatile solutions representing the implementation of the most frequently used business processes. These are lego blocks (or a library of models) from which various business solutions can be constructed. The first pre-built modules are:

4.1. Personal Identification Module (KYC) Identification or authentication is a necessary part of almost any service.

The KYC module has several functions:

  • Service and identification (ID Verification Operations): login, load of identifying data, calculation of hash, record of transaction with reference to identifiable subject. It is executed by a SilentNotary interface.
  • Identity verification: search by ID hash, search by ID subject, ID verification (hash calculation and comparison with record), verification subject (decoding his true identity), search for existing black-list (records of unreliable persons), and search for compromised keys that will be implemented in Network Explorer.

For the identification procedure the User is able to determine the nodes that process these transactions. This allows geo-referencing of a node group to meet the requirements of the legislation on handling personal data (e.g. GDPR).

4.2. Tokenization

Token is a digital ID of objects that may be involved in a relationship in the real world (including intangible values such as IP). Token is a specific construct, the meaning of which is created by users by entering into various agreements. These agreements should take into account the requirements of the Transaction Processing Rules or be fully contained in such Rules.

As an example, a token can be used to represent a vehicle. A car's token is issued by its manufacturer with the production of a real car. Consilium nodes that handle token smart contract identify the manufacturer and include a network of authorized dealers and authorized service centers. This car token enables the tracking of the entire history of the car:a change of ownership, maintenance, repairs, insurance, etc.

Currently tokenization of various types of objects is being developed. For example: cars, objects of art and historical value, licenses for aquatic farming. The Token creation process is facilitated as much as possible. The process was divided into two smart contracts — the registry-contract and the token contract. Thus, the user token is created using the register-contract while simultaneously classifying a token in the unified registry of tokens. During the token's life cycle, the user can assign additional features and properties, based on the changing needs.

The main purpose of the classification is to build a registry of all things. This problem is solved by constructing a polyfactor structure:

Let X be the set of all objects. Classifying means a partition of the set on any basis (i.e. – all warm-blooded animals or not, in this case the partition is on the grounds of "warm-blooded"). We will use the operation Boolean B ( X ) – as sets of all subsets of the original set X (i.e., the elements of B ( X ) are subsets). Then sets of partitions S is contained in B ( x ):

6.png

In this case, we require the execution of two axioms from splits:

Image2019-3-7 13-51-2.png

It was argued that a plurality of partitions corresponds to a plurality of attributes. Here is an example graphical representation:

7.png

The prior set X consist of several objects

These elements of the partition we will call classes. You can enter the concept of nested partitions into subdivisions, partitions of independent classes of the original partition.

8.png

Thus, we create a set consisting of a plurality of elements of the source, the so-called factor set.

Image2019-3-7 14-0-22.png

We often do this procedure at the household level, for example, if the initial set is a set of people, then the set factor can consist of two elements, men and women.

Further we will carry out a splitting of the Factor-Sets.

Factor partition-set is not the original object’s partitioning but the partition classes of the original objects. You can repeat this procedure several times by moving to the next factor-level until one element remains:

9.png

The resulting structure is called a factor structure. It is possible to build a structure factor by any other indication such as the initial partition We are going to do – build another factor.

A set of these structures is called a polyfactor structure. We can establish relationships between the elements of these structures; when these relations can include several structures,

then we can talk about polyfactorial relations. The task of creating the token is the task of building the appropriate multifactor relationships. This design is descriptive for all the possible diversity of the empirical world.

4.3.The voting module

In the course of the implementation of business, processes often need to quickly get feedback from a large number of users, and to do so in a legally meaningful way. It may be a decision to shift, let’s say, the management company of the investment fund unit holders, the meeting of creditors of the borrower, or just any elections—a representative of a group of people to delegate their interests.

Economic Model of the LAW

Cryptocurrency remains one of the most used term when talking about DLTs, however, the meaning of this term remains elusive. For some, it is the means of payment, for others it is an interesting technology solution or a platform for implementation of their services. As a rule, there is no one explicit cryptocurrency, it is usually combines all designated opportunities, but in different degree. For example, the most popular cryptocurrency for payment is Bitcoin, one of the interesting technologies is Byteball, while the most popular cryptocurrency for implementation of services is Ethereum. However, despite these differences, we consider that it is possible to introduce a concept of Economy with respect to each such currency, relying on basic economic principles when developing each of them.

The theory underlying any cryptocurrency is a theory of money, an economic theory studying influence of money on economic system. When speaking about the economic system, we mean

aggregate economic processes within the ecosystem that has emerged with regard to this platform.

In the course of economic theory development, several economic theories of money have been developed - Nominalist theory, Monetarism, Keynesian theory of money, and Synthetic theory of money. From the theories listed, the theory of monetarism (Milton Friedman's Theory) is the most suitable one for crypto-economy at the current stage of its development, and for our case.

Conclusion

Our vision for the development direction of distributed registry technology is to introduce network nodes into a legal space, dividing consensus into network and application levels and, as a result, creating an ecosystem of deeply integrated distributed registries located in a single network - in a common space addresses and transactions. The future of technology is not in opposition to the existing order of things, but in integration into the legal system and its organic change from within.

We thank all our followers, our friends and colleagues who, with their advice, with their kind words, and with their hard work, have helped us to create a new distributed platform that we believe will have an impact on the lives of an enormous number of people. The main part of our platform has already been developed and tested. The source code (Node . Js) is available on Github at: https://github.com/SilentNotaryEcosystem/Cil-core

We will be grateful for any contribution to the development of our platform and we are open to any advice and comments.

We also encourage developers interested in using our platform to contact our team for clarification. We will be happy to help you to integrate our DLT into your project.

Consilium Setup guide (Linux)

In order to join the consilium, you need to do the following:

  1. If it is necessary, purchase a Virtual Dedicated Server (VDS) (for example, we use a VDS with the following specs: RAM 1024 МB 1CPU (~$3 per month))
  2. Connect to VDS - execute the command:
    ssh root@ххх.ххх.ххх.ххххх.ххх.ххх.ххх
    где ххх.ххх.ххх.ххххх.ххх.ххх.ххх - VDS IP address
  3. You can see the welcome screen, check the version of Ubuntu
    123rrr.png
  4. Update apt packages list - execute command:
    apt update
    It can take some minutes.
  5. Preparing VDS:
    sudo apt install apt-transport-https ca-certificates curl software-properties-common
    Then:
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    Then:
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
    Then update again:
    sudo apt update
  6. Then, if everything is OK execute command:
    apt-cache policy docker-ce
    The result should be like:
    Image2019-7-31 16-5-32.png
  7. Install Docker executing this command:
    apt install docker-ce
    All answers during installation are "Y":
    Image2019-7-31 16-10-10.png
  8. Check that it was successful by executing this command:
    systemctl status docker
    The result should be like this:
    Image2019-7-31 16-11-35.png
  9. Execute "Hello world" command to check that everything is OK:
    docker run hello-world
    Image2019-7-31 16-15-59.png
  10. Then, pull the image with the production using the following command:
    sudo docker pull trueshura/cil-core-prod
    Wait a little bit. The result should be like:
    Image2019-7-31 16-28-51.png
  11. Pull helper scripts using:
    wget -t0 -c https://github.com/SilentNotaryEcosystem/Cil-core/releases/download/v0.2.2-staging/docker-scripts.tgz
    Unpack it:
    tar fxz docker-scripts.tgz
  12. Execute that:
    sudo ufw status
    If result "Status: active", execute:
    sudo ufw allow 8223
    • For DigitalOcean [1]
  13. Create a new document and paste the file contents of the Keystore file of your CiL wallet, downloaded from Ubikiri.
    a) Go to witness folder:
    cd witness
    b) Execute command:
    nano sample.pk
    The document will be opened:
    Image2019-7-31 16-42-7.png
    c) Paste in the document the contents of the Keystore file of your CiL wallet, downloaded from Ubikiri and press Ctrl+x and then "Y" and Enter to save it.
    (If document sample.pk already has content, replace it with the contents of the Keystore file of your CiL wallet, downloaded from Ubikiri.)
    d) Run:
    bash run.witness.sh
    Result:
    Image2019-7-31 16-53-9.png
    e) Enter the password from your wallet and press Ctrl+D when done.
  14. Then wait till the node is synchronized.
  15. Be sure, that you have 100 000 000 LAW for Joining Consilium and ~50 000 LAW for Transaction Fee.
  16. Finally, run:
    sudo docker exec -it cil-witness runScripts/joinConcilium/joinConcilium.sh

Consilium Setup guide (Windows)

  1. Run "CILSetup.exe" from https://github.com/SilentNotaryEcosystem/Cil-core/releases/tag/v0.6.2-staging
  2. After installation, the CIL directory and three shortcuts will be created on your desktop:
    a. CIL Net - Masternode running
    b. Join Concilium - wallet binding
    c. Leave Concilium - wallet untying
  3. Join Concilium:
    a. In the properties of the Join Concilium shortcut, you need to look at the directory.
    • If the directory is: "C: \ {The directory with the program installed (default is CIL)} \ cil-core \ scripts", then create a private file without an extension with a private key.
    • If the directory is: "C: \ {The directory with the program installed (default is CIL)} \ cil-core \", then you need to create a private file without an extension with a private key.
      (To do this, create a text document, write a private key to it, and delete the extension by renaming the file. If you do not see the file extension, select "View" in the top menu → mark "File name extensions")
    b. Run shortcut "Join Concilium"
  4. 123.png

  5. To start the Masternode, you need to run the shortcut "CIL Net"
  6. Untitled123.png

  7. To untie the wallet, you need to run the shortcut "Leave Concilium"

Consilium Setup guide (Mac)

  1. Download and extract "CILSetup.zip" from https://github.com/SilentNotaryEcosystem/Cil-core/releases/tag/v0.6.2-staging
  2. Open CIL installer and setup it
    Untitled12.png
  3. After installation, the CIL directory and four shortcuts will be created on your desktop:
    a. CIL Start - Masternode running
    b. Join Concilium - wallet binding
    c. Leave Concilium - wallet untying
    d. Generate Wallet - generation keys of the wallet
  4. Image 2019 10 16T07 43 01 253Z.png

  5. Join Concilium:
    a. In the properties of the Join Concilium shortcut, you need to look at the directory.
    • If the directory is: "{The directory with the installed program (default is opt)} \ cil-core \ scripts", then create a private file without an extension with a private key.
    • If the directory is: "{The directory with the installed program (default is opt)} \ cil-core \", then you need to create a private file without an extension with a private key.
      (To do this, create a text document, write a private key to it, and delete the extension by renaming the file. If you do not see the file extension, select "View" in the top menu → mark "File name extensions")
    b. Run shortcut "Join Concilium"
  6. Screenshot at Oct 16 21-06-36.png

  7. To start the Masternode, you need to run the shortcut "CIL Net"
  8. Image 2019 10 16T08 26 29 728Z.png

  9. To untie the wallet, you need to run the shortcut "Leave Concilium"
  10. To generate keys of the wallet, you need to run the shortcut "Generate wallet"