Skip to content

Instantly share code, notes, and snippets.

@jejuro
Last active March 4, 2018 04:13
Show Gist options
  • Save jejuro/b08a567d182b7ff7bc2c5df670e28c93 to your computer and use it in GitHub Desktop.
Save jejuro/b08a567d182b7ff7bc2c5df670e28c93 to your computer and use it in GitHub Desktop.

Part I - Basic Concepts

Table of Contents

  1. Terms

  2. Hash-Weaving

  3. Timestamp

  4. Transaction

  5. Ledger

  6. Decentralized Server Architecture

  7. Space Web: A Permissioned Network

  8. Space Web: A Permissioned Network

  9. Mesh Network

  10. Proof of Credits

  11. Authentication


Preface

The Openhash platform is a tool expected to be utilized in innovating social and industrial infrastructures of Korea, called 재조산하(再造山河). The platform has two main characters, 견우(Kyonu) and 직녀(Jignio), the former producing data and the latter weaving data. Though it was designed to be applied to Korea, it can be utilized, as it is or modified, by other nations and sectors as well.

It has three main components: blockchain, machine learning and the spaceweb architecture. A few basic infrastructures are to be built on OP, and numerous derived infrastructures will be built on these basic ones.

  • Basic ones: Standard Cryptocurrency, Autonomous Driving, Standard Document…
  • Derived ones: Autonomous Bank, Autonomous Security Exchange, Autonomous National Traffic Infrastructure …

Normally, a construction begins after having prepared tools needed. On the other hand, all the tools have been invented or made during various construction processes. OP is an architecture designed for the following use, but it will be further refined through various uses. A few examples of the use cases of OP are as follows(In this article, autonomous means self operated system such as autonomous driving).

  • Remaking the Korean central bank and commercial banks as one autonomous banking system.
  • Designing autonomous traffic & logistics system by combining autonomous vehicles and autonomous roads in Korea.
  • Integrating Korean medical clinics, public health centers, and the national health insurance service into one autonomous system, and implementing a system of self-operated healthcare that automates certain parts of diagnoses and prescriptions.
  • Implementation of Korean elementary, middle and high school and college system as one autonomous education system.
  • Rebuilding the Korean Archive Institute into digital archive system based on the 4th generation blockchain technology, Openhash.

Tools to build houses are saws, hammers, and shovels etc. The Openhash Platform (or 온누리 Onnuri Platform) is a tool that can be used to rebuild social and industrial sectors as autonomous systems. Unlike saws and hammers, OP is not easy to learn how to use. OP is based on several different technologies. In particular, blockchains and machine learning are used extensively in all types of OP projects. The fact that OP can be applied all kinds of social infrastructures may disturb people to understand what exactly OP is for.

There are some essential knowledges

  • The knowledge and skills that every OP user should have, regardless of where to apply OP.
  • Must understand computer science, blockchains, programming, mathematics, protocols, networking, and artificial intelligence.
  • Lua, Cycle.js, Python, JS, TS and Erlang are used for prototyping various pilot projects.
  • Be accustomed to the XMPP server architecture, especially Prosody and MongooseIM.

In addition, OP users needs sectoral knowledge. Learners should have additional knowledge of the areas where OP is applied to. For example,

  • Finance: Financial Engineering, Accounting/Taxation, Economics, Financial Analysis
  • Transportation Logistics: Robotics, Routing Algorithm
  • Medical: Robotics, Biotechnology
  • Education: Educational philosophy, Intelligent Tutoring System
  • Manufacturing: Enterprise Resource Planning (ERP), Supply Chain, Quality Control
  • City: Civil Engineering, Demography
  • Law: Natural Language Processing, Knowledge-based AI

The utility of the Openhash Platform will shine when users (1) have programming skills and (2) have specific expertise in specific areas.

In this paper and other demo materials, I will use Lua and Prosody for some hardware-related projects such as autonomous traffic/logistics system, and use Erlang and MongooseIM for software-centric projects such as the standard cryptocurrency and banking system.


A New Horizon - Introduction to Openhash Platform

The Openhash Platform is an application technology based on the 4th generation blockchain technology named Openhash, Machine Learning, Functional Reactive Programming, XMPP, and the Spaceweb architecture, and is the basis for rebirthing social and industrial fields as autonomous systems.

Especially,

  • It implement Trustless Network using Openhash.
  • Utilizing machine learning technology, it realizes autonomous systems which can not be realized via conventional IT technologies.
  • It configures a decentralized XMPP network that is fault-torrelent.
  • The Functional Reactive Programming (FRP) paradigm guarantees high productivity for experienced programmers. In the text, Front-end uses Cycle.js and Backend uses Lua, Go, Python, and Erlang.
  • Permissioned network can be configured automatically via the Spaceweb architecture.

The spatial web architecture implements a protected web or garden-walled web. OP presupposes a predefined web architecture separate or garden-walled from the current web.

  • Physical space is represented by GPS coordinates. SpaceWeb is another web architecture that maps GPS coordinates to IPv6 Addresses.
  • The IP address itself specifies the location of the server to which the individual terminal should connect.
  • Computing terminals can access directly to a spaceweb server that has jurisdiction over the area where those terminals are located, without the help of a DNS server.

The characteristics of the space web described above are naturally realized in the Openhash(= Onnuri) Platform.

1. Terms

The Openhash platform is a general purpose tool to be used all kinds of social infrastructures including monetary, traffic, health, education, government and so on. In this part, I will focus on its appliance onto the national monetary and banking system.

A theory is to define the terms that the theory uses. The Openhash platform uses the following terminology.

Kyonu Jignio Weaving Plowing Atomic Clock
Smartphones IPv6 Hash Cryptography Market participants
Addresses Address servers Location Presence
Onnuri Supul Namu Supul
Nip Yeolmae
Mesh Network Financial Statement National Tax Service Bank Securities
Insurance Market Online Market Proof of Credit

The core idea of the Openhash blockchain is quite simple. Two players are on the stage: Kyonu and Jignio.

  • 견우 Kyonu records transaction data.
  • 직녀 Jignio weaves the data.

Those two terms are important to note as they symbolize the core idea of the Openhash platform.

  • 견우 Kyonu: Originally, Kyonu is the name of a man prowing farms in an old Korean tale. In the openhash platform, Kyonu designates market participants such as individuals and businesses who make transactions each other and write down transaction data.
  • 직녀 Jignio: Originally, Jignio is the name of an woman weaving textiles in an old Korean tale, the lover of Kyonu. In the openhash platform, Jignio designates bookkeepers who decide the order of transactions and prevent data forgery. As there is no minders in the platform, Jignio does the role of bookkeepers.

Openhash is based on the blockchain technology, but as "blockchain means bitcoin to the public", I will use Openhash and blockchain as different meaning.

Different from other crypto tokens, the standard cryptocurrency is designed to be operated and managed by sovereign entities such as nations and local governments. That’s why it is called as currency rather than tokens, and why I regard bitcoins as tokens rather than currency.

  • Onnuri is supposed to be operated by UN or an international organization like W3C.
  • The higher level Supul is supposed to be operated by a sovereign nation like Korea.
  • A lower level supul, if any, is supposed to be operated by a state or city government like Jejudo, Korea.
  • The lowest level Supul is supposed to be operated by county or large organizations.

The Openhash platform stands on three basic principles;

  • The order of transactions are determined by an international organization such as UN who manages hundreds of atomic clocks over the world.
  • The correctness of transaction data is backed by the hash-weaving mechanism of OP.
  • Market participants(견우 kyonu) write books and bookkeepers(직녀 Jignio) manage them.

In the Korean tale, Kyonu and Jignio meets once a year, July 7th. However, in the Openhash platform, they meet every moment in real time.

  • Openhash: performs an ordering task by timestamps from a number of atomic clocks, and performs a validation task by hash-weaving algorithm.
  • Hash-weaving: weave Tx data vertically and horizontally via hashes in them. Vertical hashing means the Tx data of a person or an entity are hashed one by one in chronological order. Horizontal hashing means, in each transaction, more than two entities share the same hashes. So, in the long run, all market participants share some hashes directly or indirectly.
  • Onnuri Platform: Development platform featuring Openhash, Deep Neural Network, and the Space Web architecture.
  • Spaceweb: an web architecture featuring IPv6, peer-to-peer, location data, XMPP and mesh network.
  • Transaction or Tx: Mutually confirmed event between person and person, person and object, or object and object.
  • Participants or market participants: People or objects involved in Tx of OP.
  • Timestamp: consensus among a number of atomic clocks each of which is operated by a nation or government.
  • Hash: 256-bit data derived from the data set.
  • Decentralized Server Cluster: a space web consisted of numerous XMPP servers.
  • Fault-tolerant Network: A network that does not shut down in any case.

1.1 Market participants - 견우 Kyonu

Users who have installed Openhash banking applications (hereinafter Gaji) on PCs or smartphones are referred to as market participants. They are not limited to humans, but includes machines like autonomous cars.

All human market participants have an account linked to a smartphone and/or a public telephone number, make a payment with 잎 Nip, and record their transactions in specific financial format described hereinafter.

1.2 Hierarchical bookkeepers - 직녀 Jignio

Jignio weaves transactions: Onnuri, Supul, Namu, and Gaji.

Bookkeepers are weavers in the Openhash platform.

  • The 온누리 Onnuri, a system that manages standard cryptocurrencies throughout the world, and collects transaction data between one supul and another, not transactions within one supul. The onnuri control many supul regions, each of which might represent a nation of UN.
  • A higher 수풀 Supul representing a municipality collects transaction data between one Supul and another, not transactions within one Supul. A supul controls many other supul regions or Supul regions.
  • A lower 수풀 Supul representing a county collects transaction data between one namu and another not transactions within one namu. A Supul controls many namu units.
  • A 나무 Namu representing a group collects transaction data between one gaji and another in the same namu. A namu controls one or more gaji units.
  • A 가지 Gaji representing an individual or a device collects its own transaction data.

All transactions with Openhash-based cryptography use 잎 Nip as a means of payment .

Onnuri and Supul collect taxes from market participants.

  • The Onnuri collects tax from transactions related to two entities belonging to different nations.
  • The highest supul, perhaps the central government of a nation, collects tax from transactions related to two entities belonging to different lower Supules.
  • Lowest Supules, perhaps local governments, collects tax from transactions related to two entities belonging to different namus.

1.2.1 온누리 Onnuri

온누리 means the world.

1.2.2 수풀 Supul

수풀 means a forest

A supul itself can be an hierarchical structure, higher one with lower ones.

Basically, a supul records and settles transactions involving two or more Supules, not transactions within any one Supul assigned to a county or municipal unit.

The major income of the first generation blockchain miner is (1) bookkeeping, (2) transaction brokerage commission, but there is no major income of supul. It is true. Thus, unlike other crypto tokens, such as bitcoins, there is no transaction fee in transactions that use Nip as a payment method.

A Supul allocated to a country does not directly contact market participants but indirectly obtains transaction data of each market participant through the Supul of county or town.

When a transaction occurs, it is recorded in the financial statements of the transaction parties that are installed on the smartphone or PC. For example, if a market participant A belonging to Supul A purchases a bowl from market participant B belonging to Supul B, then the transaction is between Supul A and Supul B, not individual A and individual B. In other words, a Supul records transactions that cross Supul border, and prepares national or state financial statements.

You can assign country codes to the last two hex digits of the third field of the site prefix of the IPv6 address. For example, in Korea, the last two digits of the third Octet would be '82'.

A Supul server records the transactions that occur between one Supul and another belonging to each country or state, such as a transaction between person A belonging to Supul server A of one town and person B belonging to Supul server B of another town. If person A pays 100 Nip to person B, the supul server records Supul server A paid 100 Nip to Supul server B. The Supul server A and B records person A’s and B’s transaction on their own books respectively.

A lower Supul collects transaction data that occurs in a specific county, a town or a large organization, and creates financial statements for each of them. In other words, many Supules are allocated to small areas over a nation, and collect transaction data between one namu and another. If a network failure occurs in a region, the related Supul constitutes a mesh network between among namu located within the area.

When a transaction occurs, it is recorded in the financial statements of the trading partners participating in the transaction, and Supul participates as a member of the trading party in all transactions occurring in a particular region. For example, if person A has purchased a bowl from person B, the trading partners are A, B and Supul.

The main income of the Supul is based on local taxation law.

The server address of an individual Supul can be assigned to the Subnet Mask, which is the fourth field of the IPv6 address. For example, a unit area is assigned to each of 65,536 subnet IDs per country code. For example, in Korea, you can assign a subnet ID to each of 3,499 counties or towns, and designate each subnet as a Supul that controls a specific area.

Korea has 3,499 counties called Eup, Myon or Dong. A Supul will be allocated to each of them. So, there will be 3,499 Supules in Korea

All market participants will have their own Supul servers assigned to their home counties (in Korea, those counties are recorded in passports etc.). The Openhash network is neither a private in the sense that anyone can access it, nor a conventional public in that it can not be accessed without the citizenship of any country.

A Supul server sorts lots of unspecified transactions according to their timestamps.

  • It also integrates the financial statements of the market participants belonging to the region it administrates
  • It provides messaging services between market participants. For example, it may be an XMPP messaging server.
  • It establishes a mesh network during network failure.

A Supul server constructs a routing domain and assigns ULA (Unique Local Address) to each market participant or his/her device. Thus, transactions among users of standard currencies are borderless.

A Supul server might be a set of virtual servers that are installed for a specific region to provide a set of services in the region, and backed up by real servers.

Preferably, it had better be installed in a municipal or county office to provide both financial services and messaging services for its residents.

1.2.3 나무 Namu

1.2.4 가지 Gaji

2. Hash

The development of the blockchain technologies can be divided into first to fourth generations.

  • All the blockchain 1st(Bitcoin), 2nd(Ethereum), 3rd(Hashgraph) and 4th generation(Openhash) technologies uses lock and unlocking algorithm based on Private and Public Key. Everything else is different.
  • The third-generation Hashgraph technology and the fourth-generation Openhash technology have a common point in that a hash contains previous hashes representing the previous transaction of transaction parties. Everything else is different.
  • The Openhash Platform also is a general-purpose platform. It is a platform for all kinds of social and industrial sectors such as finance, transportation, logistics, healthcare, education, manufacturing, and sports etc. Its algorithm shall be applied to different social/industrial sectors without customization.

2.1 Previous blockchain technologies(Bitcoin, Ethereum)

Some terms used in blockchain technologies.

  • Blocks: Anyone can produce blocks and blockchains, but only a few are included in the confirmed blockchain.
  • A block is a block either belonging to a verified blockchain or belonging to an uncertain/invalid blockchain.
  • The blocks: the blocks incorporated into the confirmed/official blockchain.

These blockchain technologies are similar to the Olympic Games. Each time the Olympic Games are held, and for each sport field, a single block is selected from many players.

In the case of Bitcoin, the game is renewed every 10 minutes, and the historical winners(the blocks) are linked each other with a technique called Hash. Therefore, it is called a blockchain. It is worth noting that the players who have failed to win are extinguished. From an economic point of view, the number of players participating in mining is determined at the point where the operating costs of the entire athlete coincide with the profits from mining, by means of the law of average profit margins of capital.

There are many types of cryptograms, but new players appear regularly (of course, previous participants may also play again), and it is up to the winner of one of several players. The difference among various coins such as bitcoin, ethereum, and ripple is similar to the difference among various games at the Olympics.

These 1st and 2nd generation of the blockchain technology has reduced the interval of starting games: from 4 years(the Olympic) to 10 minutes.

  • There must be a lot of new candidates every 10 minutes, and it is inevitable that a huge cost will be incurred to organize and operate the team every 10 minutes. This cost is expressed in the form of mining costs.
  • There may be a fake game (and a fake winner), and the only way to tell whether a game is a real game or a fake game is the motto of You will find out over time. In the figure below, the dotted line is a fake game.

Let's assume that each player is a data that contains 2,000 Transaction Data (Tx0001 ~ Tx2000). Since the winner is also one of the players, it will contain 2,000 Transaction Data, not all players have the same data. therefore,

  • There is no guarantee that my transaction (Tx1002) will be included in the data of Winner A of the next game.
  • For Winner A's Data is to be included in the blockchain, the line up behind Winner A(B, C, D ...) should be longer than the lines of fake winners (B ', C', D '...).

Thus, it is only after a while to determine **(1) whether a transaction is a real transaction and (2) whether it will be recorded in the blockchain.

2.2 Openhash vs. Hashgraph

In this paper, the Hashgraph is regarded as the 3rd generation Blockchain. The basic structure of the Hashgraph is shown in the following figure. Image from hashgraph.com

Difference between Openhash and Hashgraph is how to generate and for what to generate hashes; For what: Hashgraph generates hashes to chronologically order events each of which has more than one transaction. In contrast, Openhash generates hashes to prevent forgery. How: Hashgraph doesn’t need servers in generating hashes in theory, but Openhash needs them. Hashgraph may believe no server, no DDos. But, serverless architecture is just impossible to achieve as the Internet itself is on numerous servers including DNS servers.

In detail;

  • In Hashgraph, information transfer between two participants is one way rather than bi-directional. Openhash uses bi-directional or multi-directional data exchange among traders.
  • Hashgraph uses Event(composed of more than one transactions) to generate a hash, whereas Openhash uses each Transaction.
  • Hashgraph always assumes two trading partners (Gossip Protocol), but Openhash assumes more than two traders.
  • The goal of the Hashgraph is to determine Chronological order among events, but Openhash determines whether or not an individual transaction is forged or altered.
  • The Chronological order among transactions on the OP is determined by a number of Atomic clocks which is under the control of nations or governments.

2.3 Consensus

Every blockchain mechanism assumes there can be an attack to ruin consensus, network or records, and has developed various mechanisms about how to keep the network safe from those attacks. It assumes a DDos attack may happen whether it succeeds or not. However, they have missed the fact that conspiracy needs consensus as well. Thieves needs consensus, before action, about which house to intrude or what to steal. Gangsters also need a consensus(A) among them beforehand to succeed in breaking a consensus(B) of voters. Why do people take such consensus(A) for granted? If if is possible for consensus(A) to break a consensus(B), then what prevent us from breaking consensus(A) of attackers before they reach it?

We can make it impossible for attackers to reach consensus to break consensus(of votes among network participants) or to break network via DDos etc. So, any solution to BFT or DDos attack is meaningless if we can remove Byzantine or attackability itself.

Before we proceed, let’s see some other features of OP such as immune system and hash-weaving.

If some gangsters have successfully reached a consensus, then is it possible to damage OP? Surely not.

Openhash is similar to the human immune system. If a disease or an infection occurs, it responds step by step from the cell unit to the larger organs such as liver and stomach. When a cell is infected, the tissue containing the cell is isolated, and transplanted again after treatment. When multiple cells within a tissue are infected, the tissue is removed, and transplanted again after treatment. When multiple tissues are infected, the larger unit of organ containing the tissues is separated, and transplanted again after treatment.

  • A cell is a Gaji.
  • Several cells are a Namu.
  • The smallest to the largest organs are Supul.
  • The human body itself is Onnuri.

Therefore, it is crucial how quickly and exactly the infection site can be identified. Openhash can detect and respond to infection in about a millionth of a second. If you compare to the Olympics, in the case of Openhash, there is only one player. It does not mean that the player changes to another player in every event or event. There is only one athlete in every Olympic event held every four years, the athlete who participated in the previous Olympics, and the next Olympic athlete. One person participates in several events is a statement that one Onnuri Platform applies to all sectors of society and industry, including the financial sector, the transportation and logistics sector, the healthcare sector, the education sector, the cultural and sports sector.

2.4 Hash-Weaving

Let’s see how has-weaving works, and how it prevents any consensus among attackers.

The network participants A, B, C, D of the Onnuri Platform and their respective final transactions a, b, c, and d are assumed. When a transaction e occurs between A and B, transaction e creates a new Tx Data e that contains the hash of the last Tx Data a of A and the hash of last Tx Data b of B. Tx Data e is composed of hash (a) included in Tx Data a, hash (b) included in Tx Data b, and hash (e) .

Then, Tx Data (e) is copied to the books of A and B respectively.

If a new transaction (f) occurs between B and C, the previous procedure is repeated. Take a closer look at the data that makes up Tx Data (f). Assuming that a, b, c, and d occur at the same time, the chronological order among Transactions a, b, c, d, e, and f is clearly revealed by the relationship among those hashes.

Suppose that a similar process occurs between network participants L, M, N, O on the other side of the globe. Again, the temporal context between transactions l, m, n, o, p, and q is clearly revealed by the relation of hash.

If so, how is the temporal relationship between the two transaction groups residing the opposite side of the earth: Group a, b, c, d, e, f, and Group l, m, n, o, p. The third-generation blockchain, Hashgraph, uses the patented mathematical algorithm. However, in my humble opinion, this algorithm has fatal demerits or flaws including;

  • Gossip Protocol consumes considerable computing communication resources, and become tremendous if applied worldwide scale.
  • Because it operates on the web, it can not be used in any nation if the web is controlled by any government for any reason.
  • All the Full nodes need to operate their algorithms constantly, thus consuming considerable computing resources.
  • Forgery is possible if more than ⅓ of the network participants collide.

The most critical flaw, still IMHO, is that Hashgraph is for the chronological order of events rather than transactions in each event. How to determine the chronological order of the transactions in the same event? You may say this can be solved by substituting events with transactions. That is, one event for every transaction. But, then, you need more communication and computing expenses than those for mining in current blockchains such as bitcoin etc.

Openhash determines the chronological order by a group of atomic clocks. This method is characterized by;

  • Since there is no computation process, the consumption of computing resources is considerably low.
  • The Spaceweb architecture significantly reduces the quantity of data communication.
  • Chronological forgery is only possible when more than ½ of the nations operating the atomic clocks to collide.
  • Data forgery is impossible due to hash-weaving of OP.

So, what makes up the Hash-weaving on Onnuri Platform? It is to prevent forgery and alteration of the book. As shown in the figure, each individual participant constructs his/her own blockchain, so if he/she want to falsify his/her Tx data, she/he must falsify all subsequent Tx data. It’s difficult, but not impossible.

The problem is that two or more trading partners jointly create a Tx data, and eventually all the Tx data of the Onnuri network are to be weaved altogether. That is, if one participant forges one Tx data, broken are all the hashes attached to all the subsequent Tx data directly or indirectly related to the forged Tx data.

The Hash-weaving mechanism of OP is the consensus rule, but it's different from previous theories. Let me explain it briefly.

  • 100 persons are in a town, and this town has a server to record transactions among these 100 persons.
  • If more than 1/3 or 1/2 collide, they can do forgery. Right?
  • Of course, all transactions are hashed.
  • But hashing mechanism is somewhat different from previous ones.
  • OP uses both vertical and horizontal hashing. That is, Each hashed transaction is shared by at least two trading partners. - Contrastly, previous hashing mechanism assumes only one-line hashing. That is, one by one chronologically.

Previous hashing mechanisms can be said to be a linear model, chronologically linked one to another. But, that of OP is dimensional or plate model. Hashing is not only done chronologically, but also spatially. I mean 2-dimensional.

  • If one(A) of the above 100 person group(A) contact another one(B) of another 100 persons in group(B), then they(A & B) make another hashed transaction. Remember A and B belong to different groups. That's I call weaved hashing. If there is any collide in one group, that collide breaks hashed transactions not only the group(A) they belongs, but also the other group(B) too.
  • not only the other group(B), but also still another group(C) of which a member has made transaction with a member of group(B).

Still, group A, B, and C belong to a wider or larger group, say, A'. The collision in group A breaks all the hashed transactions in the larger group unit A', and ever larger group A'' so on.

  • So, a minor forgery in a small town in Korea will eventually breaks all the hashed transactions over the world, even in real time.
  • So, OP blocks or removes the group A first if any forgery, then group A', then group A''.. so on. I don't know whether there has been any hashing mechanism similar to that of OP before.

That's why I call it a weaved hashing. Each market participant or player is a string, and the hashed blockchain is like a textile woven numerous strings. If any string breaks, the pattern of the textile will be damaged and easily noticed by everyone.

If a citizen living in Korea forges one of his Tx data, it will surely be noticed by a citizen whether he/she is in Africa or Afghanistan in a second or milisecond.

All blockchain mechanisms assumes there can be attack to network, and develops various mechanisms to keep network safe from imaginable or imaginary attacks. They miss one thing. To attack network consensus also needs consensus among attackers. The most interesting part of OP is that OP makes consensus among attackers impossible. Anyone can build a network using OP, but no one can destroy any network already built on OP. To me, that’s the most interesting feature of OP as human being can build OP, but can’t destroy it after launching it.

3. Timestamp

Coordinated Universal Time

All computer devices (PCs, smartphones, etc.) representing market participants synchronize with the Atomic clock of a country or a neighboring country that has jurisdiction over the area. For example, a clock in a smartphone of a market participant in Korea should be synchronized periodically with the atomic clock, which the Korea government manages.

If 100 out of the 193 UN nations constitute their own atomic clocks, more than 51 countries must collude in order to alter the record of purchasing one coke at a convenience store in Jeju Island, Korea. A Bookkeeper with an atomic clock or an optical clock synchronizes the time of all computer devices located within a certain area, and each computer device reports to the relevant bookkeeper the time of the occurrence of the transactions. The whole world can be divided into a number of regions, and each region is assigned a computer device to serve as a bookkeeper. For example, using latitude, longitude and altitude coordinates, we can divide the world into 65,500 subregions. image source: KAIST

  • All bookkeepers synchronize their clocks at regular intervals. Bookkeepers not participating in synchronization are expelled from the Onnuri Platform, and the hash-weaving mechanism automatically detect non-compliance if any.
  • All computers participating in transactions report transaction times to their bookkeepers respectively. A forgery, if any, shall be detected during the hash-weaving process, and the detected forgery is removed from the platform.

3.1 How Timestamp forgery is detected

A hash-weaving provides a logical mechanism to determines the posterior chronological order among transactions, independent of the timestamp from atomic clocks. That is, - If transaction A precedes transaction B, - and if transaction B is ahead of transaction C, - then, transaction A precedes transaction C.

The timestamps arranges all the transactions in the world in temporal precedence if each transaction data is shared by more than two transaction participant.

  • The Timestamp is sporadic and is specified independently for each transaction, but the weaved-hash is a net that encompasses all transactions over the world. Thus, a conflict between a particular timestamp and the hash-weaving is resolved by removing the related corresponding timestamp.
  • The weaved-hash can not be corrupted, and the contaminated timestamp is considered an attempt to corrupt the weaved-hash.

3.2 Byzantine Fault Tolerance

Openhash assumes the roles of governments key in ntp protocol as it assumes governments the issuers of cryptocurrency. Quite different from other coin mechanisms. In addition to timestamps, the hash-weaving of OP also is quite interesting as it is quite smart approach to find and block any data forgery in blockchains without any significant computing and communication resources.

If more than a half of nations operating atomic clocks collide, then the chronological order of specific transactions can be altered or modified. But, the transaction data can't be altered even if more than 1/2 governments collide to do so.

In the openhash platform, the chronological order and the transaction data are managed by the two different mechanism. The former is by a number of atomic clocks each of which is operated and managed by a government of a nation listed in UN, and the latter is managed by the hash-weaving mechanism by bookkeepers called Gruturki, Supul, and Onnuri.

The former can be seen from the viewpoint of Byzantine as more than 1/2 are necessary to deceive others, but the latter is somewhat different. The former(chronological order) is about vertically or historically aligning hashes, and the latter(hash-weaving) is about horizontally or spatially weaving hashes.

So, the latter(hash-weaving) is difficult to say whether it is Byzantine or not, as it is a mechanism to show all the participants where a data forgery happens if any, not to prevent data forgery, but to show where and when it happens to all the market participants in the openhash platform. In addition, Byzantine is meaningless when the number of participants exceeds a certain volume. That is, Byzantine applies to a group of fixed or limited number of players like 100,000 or 10,000,000 players. In that case, ⅓ or ½ has meaning. But, if the number of players exceeds 100 or 1,000 billions, then no one or human group can alter any data even if all the human players agree to change or modify some records. Because it is just too big for human beings to modify, and because OP has not only human players, but machines and codes also. Interesting again, isn’t it? This detection is done in real-time. If there is any data forgery, then it will be broadcasted to all players(again, it’s not only to humans) in real-time. Interesting, isn't it?

The Hashgraph mechanism of Dr. Bernad also is quite interesting, but as I explained in video(Korean), it has critical flaws which can't be overcome. You can chronologically order events, but not transactions in each event. Then, what is the meaning of ordering events?

3.3 Democracy rather than decentralization

OP focuses on democracy rather than decentralization as the latter is just impossible to achieve. Nice dream, no reality.

4. Transactions

Openhash Platform is the fusion of Openhash algorithm, Deep Neural Network, Decentralized Server Cluster and FRP paradigm. It is a general purpose blockchain mechanism to be applied to a variety of sectors (social or industrial sectors). For example, an Onnuri Platform developed for a financial sector can be transplanted into a healthcare system or a sports system without major modifications, and vice versa.

A Transaction or Tx is a mutually agreed and confirmed event between two objects including people. The core idea of ​​the blockchain technology is that confirmed events can not be modified. Confirmation is recorded by signature. Tx is not just about money. Tx data is represented by the six-principle.

  • When
  • Participants or Participants (Who)
  • Where
  • What to trade (What)
  • How to deal
  • Why?

4.1 Who

People include natural persons, corporations and agents.

  • Between or among people: It is a trade in the usual sense. It mainly involves the movement of money.
  • Between People and Objects: Vending machine users, online shopping mall customers, etc., are examples of transactions between objects, as well as scenes that are common in our surroundings, as well as transactions between autonomous vehicles and users who will be seen in the future.
  • Between Objects and Objects: Today, system trading of the stock exchange, highway tolls, and so on, as well as future information on autonomous vehicles and roads, correspond to transactions between objects.

4.2 What

It is an intangible asset and is recorded on the participant's books. See 3. Tx Data.

4.3 How

It specifies the specific terms and conditions under which the transaction will be carried out and is expressed as Smart Contracts. Onnuri Platform's Smart Contracts use the following tools.

  • Frontend
    • JavaScript
    • Cycle.js Framework
  • Backend
  • Lua and Prosody
    • Erlang and MongooseIM

5. Ledger

At each transaction, a bookkeeper and trading partners record the related transaction data.

  • Input: An asset provided by the trading partners(= participants).
  • Output: The allocation of assets among trading partners. For example, if A's standard currency 100 is exchanged with B’s building, the input and Output of the transaction are; Input A: 100 | B: Building

Output A: Building | B: 100

As well as transactions between human and human, all Txes are recorded on the books of the bookkeepers and the trading partners on their ledgers respectively. For example, when a autonomous vehicle A passes through a toll gate of a road, a transaction occurs. If the road fee is 0.1 Nip,

Input

A: 0.1 | B: Road

Output

A: Road | B: 0.1

As a result, 0.1 of the values ​​of the road are transferred from the road to A, and A owns 0.1 Nip of all the values of the road. If I use a Korean expressway today, will I have the ownership of the road as much as the toll fee I paid? Yes, I am.

Though it is contradictory to common sense that a road fee is changed to a road ownership, you will understand my intention after reading this paper.

Every transaction that occurs in an OP must have more than one trading partner, one of which is the Jignio. For example, if a person A bought a refrigerator from a corporation B, then the parties to the transaction are A, B and country. In the preceding exchange event, A provides currency, B provides refrigerator, and the country provides market economy.

  • A has a refrigerator. The utility of this refrigerator is greater than the utility of other commodities for which A is able to purchase the currency.
  • B has money. That amount is greater than the amount B spent in producing the refrigerator.
  • The state has taxes. That amount is less than the cost of A and B when there is no country.
  • The goods that the state provides to the exchange are ** the country itself ** and are recorded as cost items only, without asset items.
  • The IRS represents the state. For example, if the transaction amounts to 10% VAT and 1% consumption tax,

Before the transaction

  • A 100
  • B refrigerator
  • Country

After the transaction

  • A refrigerator
  • B 89
  • Country 11

Therefore, the utility of one country is equal to the total cost paid by all the citizens of that country. The related project is National Accounting System.

All market participants will be assigned a unique authentication number (SAH256) and/or IPv6 Unique Global Address at the time of installation on their PC or smartphone.

The transactions between the two market participants A and B can be in one of two ways.

  • Contact/non-contact transactions between two smartphones
  • Online trading

6. Decentralized Server Architecture

Blockchains can not run without servers. Openhash's server architecture is a Decentralized Hierarchical Fault Tolerant Server Cluster.

6.1 Hierarchical Server Cluster

One virtual machine(VM) is allocated to each of the 192 nations of UN, and an XMPP server, which will be described later, is installed on each VM. This server is called a Supul server, and each Supul is a geographical area that the Supul server manages.

These 192 national XMPP servers are controlled by one Onnuri Onnuri server which records transactions among players with different nationalities.

Then proceed to the next step, depending on the area and population of the individual country. Any one Supul server can manage several lower Supul servers. That is, a nation can be geographically divided into several smaller areas each of which has its own lower-class Supul server. At the bottom of the hierarchy, there is Namu, a group of Gaji.
Let’s see how this hierarchical structure is applied to Standard Cryptocurrency of OP.

6.2 IP Address

Onnuri Platform's communication protocols are XMPP and HTTP, and each terminal and server has a unique IP address. The default address format is IPv6 format (An IPv6 address is 128 bits in length and consists of eight, 16-bit fields, with each field bounded by a colon.)

Assign 192 country codes to the last two digits of the third field (8-bits) and represent up to 65,536 entries in the Subnet ID.

The 16-bits in the Subnet ID field is the item code, which represents the business category, subdivision, subclass, and three categories. For example, <30013. Manufacture of computer I / O devices and other peripherals> D. Manufacture o Division: Manufacture o Division: 30. Manufacture of computer and office equipment o Subcategory: 300. Manufacture of computer and office equipment o Classification: 3001. Manufacture of computer and peripheral equipment do.

6.3 HTTP vs. XMPP

HTTP responds only when there is a client (Browser etc.) request. Although the HTTPS WebSocket technology supports bidirectional calls, XMPP basically differs from HTTP in that both the client and server can call each other from the protocol design point of view. The Onnuri Platform comprises a single Decentralized Server Cluster (or Server Federation) with XMPP servers scattered around the world.

One XMPP server handles one stub, mediates communication among participants located in a certain area, records the contents, and propagates the message to another server.
One XMPP server includes a plurality of function modules. For example, the chat service, payment service, traffic logistics service, and health care service among the participants are driven as separate modules in one server.

6.4 Domain Name Service

Worldwide XMPP servers and participants that make up Spaceweb (described in detail in the next section) have a unique ID. One of the features is that anyone can easily know the server name (= server address).

  • The server address is x: designation. Country abbreviation structure. For example, the address of the bush server overseeing the Seoul metropolitan area is x: seoul.kr, and the address of the bush server under the jurisdiction of Gangnam-gu is x: gangnam.kr.
  • Depending on the hierarchical structure of the bush server, Samsung-dong, Gangnam-gu, Seoul is mapped to the bush server assigned to Seoul city, the bush server assigned to Gangnam-gu, and the bush server assigned to Samsung-dong.
  • The name of the server is the name of the Google Maps or standard English name of the metropolitan city, province, city, county or county, and should not be duplicated. For example, the server name assigned to Hankyung-myeon in Jeju City is hankyung.kr. The participant can acquire his / her location information on a smartphone or the like, and can specify the name of the corresponding area and the server of the corresponding name through the Google Maps API. If the place name is duplicated, rename the place with a small population.
  • The client address is the structure of ** ID @ official designation. user@domain.tld
  • The unique ID of each participant is the combination of ID and the name of the address server. For example, the ID of a person who has a place of residence can be ** superman@hankyung.kr**. Resources are represented by slashes (/). For example, the person's smartphone, computer, and tablet can each be represented in the following address format:

6.5 Participant ID

Participants have two unique IDs.

  • IPv6 address: As described above, the Subnet ID field ** represents the type of participant - person, car, program etc ** and expresses the URI in the interface area. Broadly, the Subnet ID and Interface fields are combined to form the URI of each participant.
  • Jabber ID: This is the basic URI of the client of the XMPP server. Jabber ID is in the format user @ domain, and IPv6 is 126-bits. ID alone adds a considerable amount of data to each client-server message transmission and reception. Therefore, the stub server creates Supul ID of each participant with 1 ~ 4-bytes (= 8 ~ 32 bits) code according to the number of participants who address themselves. Supul ID is the unique identification code of the stub that identifies the participant whose particular stub is addressed.
  • Generate a hash of a certain size (8 ~ 32 bits) using the participant's IPv6 address and Jabber ID as input data.
  • Communication within the stub, ie, communication between participants who use a particular stub as a common address server, uses Supul ID.
  • Communication between inside and outside stubs, that is, communication between other stub participants, proceed as follows.
    • The first communication exchanges Jabber ID and IPv6 address of each participant.
    • The following communication is an abbreviation between two stubs and refers to each participant.

6.6 Presence and Mesh Network

Unlike normal XMPP messaging services, all participants in the OP are always Present. Just like a cell phone or an ordinary phone is always in standby mode.

Therefore, there is no roaster, and all transactions are by Directed Presence.

In Onnuri Platform, the place of transaction occurrence has two meanings.

  • which Bookkeeper decides to record the transaction.
  • The location information of the trading participant is used for IP or peer-to-peer communication. For example, if a Korean A and a Chinese B have confirmed a mutually signed transaction at Han Kyung county, Jeju-si, Korea, the transaction is recorded by the Gruturki server, which controls Han Kyung county. The location data of A and B respectively are used by the the Gruturki server for peer-to-peer communication between them. The location information may be expressed in the form of a conventional GPS latitude, longitude and altitude, or may be represented by a separate GPS system for precise location measurement. For example, an autonomous vehicle can display its position with ultra-high accuracy GPS coordinates with an error range of about 1 cm.

If all participants have exactly one Presence Server at any one time, that server is the stub server that controls the location of the participant. For example, if a citizen A who serves as a stub server A assigned to Han Kyung-moon in Jeju Island visits Seoul City Hall, the Presence Server of A becomes a stub server B of Seoul City Hall. Server B immediately notifies Server A of its location and Server A is able to Relay citizen B's message to Citizen A to Server B.

6.7 Transmit Priority

When a user uses a plurality of interspersed terminals, the priority to which messages are delivered to these terminals is designated by a number from -127 to +127, a message is preferentially transmitted from a higher number of devices, and a negative number Assigned devices are not delivered ** unless explicitly specified. The base ID of the user, such as user@domain.tld, is called a bare JID, and the address of each terminal is expressed in user@domain.tld/resource format.

The server itself is ranked first. All Tx Data is first transferred to the server's Tx DB and then to each of our trading partners. Therefore, the fact that the participant receives the Tx data means that the corresponding Tx is recorded in the server DB.

The second-ranked terminal to which the message is transmitted is the terminal that generated the Tx data. For example, if A participates in a transaction on a smartphone and B participates in a transaction on a web server, Tx Data is delivered to each smartphone and web server.

7. Space Web: A Permissioned Network

Onnuri Platform is a Private Network that deals with (1) human life and (2) life. Onnuri Platform is a universal platform for constructing critical missions such as national health system, diagnosis and prescription system, high-speed traffic logistics system and national defense system. Therefore, a mechanism is required to block unauthorized server or participant's platform entry structurally. Block is first implemented as an IP address mechanism. The primary means of preventing unauthorized servers from disturbing the network and phishing participants is the special mechanism ** to assign IP addresses to servers. Explain him.

7.1 Onnuri

7.2 Supul

The IP address of the stub server is expressed by mapping the unused area and the subnet ID of the last 16-bits (country number) of the Global Routing Prefix to ** ** ** and ** ** ** of the latitude and longitude of the specific area. For example, the number of countries that can be represented by country codes is 256, and the number of countries registered in the UN is 192. Thus, 64 or 6-bits of unused numbers can be represented, 2-bits representing latitude and longitude (+/-), and 3-bits representing server types (stump, bush, onnuri, etc.). For example, the latitude and longitude coordinates of Seoul City Hall are 37 ° 33'58.87 "N 126 ° 58. Therefore, participants will have the address of the stub server that controls the area from their geographical coordinates And can be connected through a router such as WiFi.

7.3 Namu

A tree (Namu) is a set consisting of a series of branches. The Element of Set is fluid. However, the period in which an element stays in a set is large and small depending on the infrastructure to which the Openhash Platform is applied.

  • Family or work place has a long interval of entry of new element (for example, birth, marriage, etc.) and exit (for example, branch, independence, etc.).
  • If a road is a set, each vehicle that runs on the road is a specific element of the tree, and the entry and exit intervals are relatively short.

7.4 Gaji

Gaji is the last terminal with a unique IP address. In the case of an IPv6 address, it can be represented by the last 48 bits among the 64 bits of the interface area. In the IPv6 standard, the IP address of an individual device is automatically assigned as the MAC Address, so there is no need to artificially specify the URI. Or may be a hardware such as a smartphone, a PC, a car, a refrigerator, or a program.

7.5 Address Server

A market participant, such as a person, designates a particular stub server as his ** address ** server. In the case of a person, it is the address listed in the certified copy of the resident. In the case of an automobile or a land, it is an address registered in the vehicle registration office or the court registration department.

The shrub server is elected from stub servers and the address server arbitrates and records the transactions of two different market participants. The IP address of the bush server is calculated using the same mechanism as for the stub server. Thus, the stub server can simply calculate and access the server address of the bush belonging to it. For example, if the address servers of the two people who trade in a particular region are different, the stub server that is in charge of the region delegates the record of the transaction to the forest server to which it belongs.

8. Mesh Network

When the national network is paralyzed, the stub server configures the mesh network.

  • Each terminal calculates the GPS coordinates of this server from the IP address of the stub server.
  • The terminal also serves as a base station.
  • Communication between terminals is by Gossip Protocol, which is characterized by exponential propagation. A map representing the location of each terminal, that is, the location of the base station, is created. Each terminal computes an optimal path to the stub server. With the same mechanism, stub servers also get the GPS coordinates of the bush ** server and create a map that represents the location of the stub servers in a bush. With the same mechanism, the bush servers also get the GPS coordinates of the ** Onnuri ** server and create a map that represents the location of the bush servers throughout the world

In any case, the Onnuri platform is not shut down.

When an amount of transactions to be processed by a virtual server allocated to a specific unit area (eup, myeon-dong) reaches a certain level, a real server including a physical storage device, central processing units, and communication devices can be installed. A real server can function as a router that mediates wired/wireless communication in a certain area.

For example, if the transaction throughput of a virtual server allocated to HanKyung-myeon in Jeju City is 100 events/sec, a physical server can be installed in the governmental office of HanKyung-myeon, and a Mesh Network covering the whole area of HanKyung-myeon can be constructed.

9. Proof of Credit

When the information recorded by two different market participants are in conflict, the information of a relatively high credit takes precedence. For example, if company A with a credit score of 100 and company B with a credit score of 90 are in conflict, the information of A is prioritized.

See White Paper for detailed mechanism for evaluating the credit of each market participant.

9.1 Free-In-Forced-Out

Smartphone users with confirmed real name can freely install wallet, log in to the **Onnuri ** network, and perform various transactions including sales and purchases. However, if he/she violate any rule, his/her account will be forcibly removed, and then the corresponding real name will be restricted from login. The main rules include:

  • Use of smartphones or computers that are not synchronized with the Coordinated Universal Time
  • Data forgery
  • Violation of transaction rules

10. Authentication

The smartphone and its installed app of a market participant has a legitimate status to represent the participant, and the manner in which the user authenticates his identity can be determined by combining the login mechanisms below.

  • ID and P/W
  • Fingerprint
  • Iris scanner
  • Voice
  • Signature

The signature is generated from the private key, and the signed transaction is recorded on the books of each of the trading partners.

The unique hash value derived from the signed transaction data is recorded in the following location.

  • Webpages in the unique IP address of each of the goods and money exchanged in the transaction. For example, if A pays 100 Nip to B for a car, the Hash value derived from the data containing such transaction data is written to the webpage at the unique IP address of 100 Nip used in the transaction and that of the car.
  • The account book of each trading party participating in the transaction.

In a standard currency, the private key of an individual player can be generated in a variety of ways.

In the standard currencies, smartphones and PCs are replacing ordinary bank books, so login process is required to use Gaji, an electronic wallet. Various smartphone manufacturers provide login methods, and the security level of Gaji installed in the terminal of individual player depends on the manufacturer of the hardware resources used by the player .

SCC proposes Universal Authentication and Electronic Signature mechanisms that are not bound to the constraints of hardwares.

Players may designate one or more of the following authentication schemes for a specific job. For example, A user designates that if his/her transaction amount is less than or equal to 100 Nip, the user authentication process is done by voice authentication only. For the case of the transaction amount exceeding 100, he/she may designate both the voice authentication and the signature authentication.

10.1 Voice

The player should enter several hint words and their corresponding answer words in advance. Then, when authentication is required, Gaji presents the hint or question word to the player, inputs the answer word into the player's voice, and verifies the identity with the correct answer and voice-print.



voiceLock() {

 //Show hint or question word to user

 showHintWord();

 

 //Obtain answer via mike.

 voiceAnswer ();

}


10.2 Signature

Authenticating identity by a signature available only for a smartphone or a PC with a built-in pen. Player must have written a small DB of a few hint words and their corresponding answers in advance.



voiceLock() {

 //Show hint or question word to user

 showHintWord();

 

 //Obtain answer via touch panel of smartphone or other device.

 penAnswer ();

}


10.3 Color Cards

Acquiring a player's ID from visual data such as signboards, business cards, and signs. For example, the string 'Hong Gil-dong' consists of 11 alphabets. If one of 16 colors is assigned to each alphabet, the possible combination is the 11th power of 16. The hash derived from the string of digits of the 11 color codes may be the unique ID of the player Hong Gil-Dong.


colorCode(){

//obtain alphabets from string.

obtainChar();


//obtain color from character.

obtainColor();


//obtain hash from color codes

hashFromColor();


}

10.4 Iris

Authenticating an identity with an iris pattern to generate private keys. There is no need to store personal information on a separate server.


// Read iris patterns of a user and authorize it.

authIris ();

10.5 Fingerprint

Signature authentication can be combined with the double fingerprint recognition mechanism of the electronic pen to further enhance security. For detailed technical information, please refer to [Fingerprint recognition using electronic pen] ().


// Read fingerprints and authorize it.

authFingerprint();

From now on, I'll show you how the Openhash Platform is applied to various social infrastructures including;

  • Part 2: Global monetary and banking infrastructure
  • Part 3: Global traffic and logistic infrastructure
  • Part 4: Global aero-logistic infrastructure
  • Part 5: National document archieve infrastructure
  • Part 6: National healthcare infrastructure

Copyright (C) <2017> <주피터> This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3.0. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment