Technical Guide | A First Look at the ODIN Protocol
Abstract
This article mainly introduces what the ODIN protocol is, how to use it, and format.
1 Introduction
ODIN is used to benchmark DNS in the traditional Internet.
ODIN (Open Data Index Name)-Open Data Index Name Identification Technical Specification. The protocol was called by the project party (PPk Pub): "The ODIN logo protocol is an autonomous, unique, secure, and durable naming protocol based on the blockchain. It is a peer-to-peer, trusted new DNS protocol."
- Introduction to Technology | Understanding Bulletproofs of Zero-Knowledge Proof Algorithms: Range Proof II
- Technical Guide | Building IPFS Applications with Node.Js
- Smart Contract Series 1: The Cornerstone of the Digital Society-Smart Contracts
2 PPk Pub Introduction
According to the project party itself [1]:
"PPk Pub hopes to integrate innovative technologies such as Blockchain, IPFS, ICN / NDN to do something interesting and make the future of" Peer "individuals better."
PPkPub currently has 2 open source projects: ODIN and PTTP . Among them, the project party described the ODIN protocol as "the ODIN logo protocol is an autonomous, unique, secure, and durable naming protocol based on the blockchain, and is a" peer-to-peer, trusted new DNS protocol "", while describing the PTTP protocol as "PTTP transmission protocol is a peer-to-peer trusted network transmission protocol defined by integrating emerging technologies such as ODIN logo, blockchain and ICN / NDN future network architecture design. It is a" new type of fusion blockchain technology HTTP protocol. "
From this, we can think that ODIN targets the DNS in the traditional Internet, which is the domain name system; and PTTP targets the HTTP in the traditional Internet, which is the Hypertext Transfer Protocol.
3 Problems ODIN Wants to Solve
Virtualization is one of the most commonly used strategies in computer science, virtual CPU, virtual memory, virtual network. I like to understand DNS as a virtual IP. The IP address of a website on the Internet is a string of numbers that is not easy to remember and needs to be bound to the website. With the DNS system, users only need to remember the URL.
However, the problem that ODIN wants to solve is not that blockchain addresses (such as contract addresses and account addresses) are not easy to remember, but rather to solve problems existing in traditional DNS systems .
PPkPub believes that "traditional DNS resolves host names into IP addresses and uses a global, hierarchical distributed database system. Although the Internet's origin is a distributed, autonomous system, DNS is not an autonomous system , the root domain The important top-level domains and root certificates were previously controlled by the US government or a non-profit organization authorized by the US government, ICANN. This poses a constant threat to the autonomy of the Internet in various regions. "
In addition, PPkPub believes that DNS has other flaws :
• DNS information is easily tampered (insecure):
– Due to the inadequacy of the DNS packet protocol, domain name information can be easily tampered with, including packet spoofing and cache poisoning. This problem can be solved by implementing DNSSEC. However, the implementation of DNSSEC requires a perfect electronic certificate system. The electronic certificate system with the US as its core is more dangerous at the national level.
• DDoS Centralized Attack (Insecure):
– Because DNS is a tree structure with a center, it is vulnerable to DDoS attacks, and there is no effective means to prevent it. The closer the attack is to the center, the more significant the effect is.
• Commercial charging model is unreasonable:
– Only merchants can be authorized to register through ICANN or multiple top-level domain agencies. Not only is the registration fee high, which must be paid every year, but also some unreasonable restrictions (such as deliberately set up a cumbersome transfer policy).
In order to solve these problems of DNS, PPkPub designed the ODIN system. ODIN implements the following features :
• Autonomy:
– ODIN identifiers are generated and managed by applicants based on decentralized blockchain technology. The rules for generating and managing ODIN are completely open and there is no centralized control mechanism. With the exception of applicants with management keys, no other organization or individual has the right to control and tamper with.
• safety:
– The owner of each ODIN identifier corresponds to a pair of public and private keys with asymmetric encryption technology. The private key can be used to sign the data content that is released independently, and the individual receiving the data content can be verified with the public key to ensure the receipt of the data. The data obtained is credible and cannot be tampered with.
• Uniqueness:
– Combined with the Bitcoin blockchain, the ODIN identifier can uniquely identify the open access index of any data content object (such as text, pictures, sound, data, images, software, etc.), so that the data content object can be accurately identified by people And extraction.
• Persistence:
– Once an ODIN identifier is generated, it cannot be tampered with, and does not change with changes in attributes such as the holder or storage address of the data content object it identifies.
It can be seen that these characteristics of ODIN really solve the problems and defects of traditional DNS to a large extent.
ODIN, a blockchain domain name service system, can solve the problem that blockchain addresses (a long string of codes, including contract addresses and account addresses) are not easy to remember . After using ODIN, you only need to remember similar to websites String of URLs that humans look like, you can get actual addresses that humans do n’t look like. In fact, there is also a blockchain domain name system in Ethereum, called ENS (https://ens.domains).
3 ODIN technical principles
ODIN operating mechanism
ODIN architecture
The ODIN domain name system is implemented using the Bitcoin network (based on the Bitcoin network only). Users register the ODIN domain name (ODIN logo) through the PPk browser tool (or website) independently developed by PPkPub. The principle of domain name registration is to broadcast a transaction that binds a domain name to the registrant's Bitcoin account in the Bitcoin network. As long as the domain name registration information is written to the Bitcoin blockchain, it is considered that the domain name registration is successful.
This domain name registration message is of course in a specific format (part of the ODIN agreement), the specific format is not suitable for display in tweets, see [5].
So how do I register an ODIN domain name (that is, the ODIN logo) ?
You can register at https://ppkpub.github.io/braintool/ (the registration steps are provided in [2], which demonstrates the ODIN protocol for bitcoin account registration), which sends a registration ID in the blockchain network Transaction (requires a fee) , and then through some tools to monitor the blockchain (PPk tools mentioned in [2], you can modify the management and test browsing ODIN logo mapping content) to analyze the data on the chain and display it to the front end To indicate that registration is complete.
How to resolve ODIN domain name?
ODIN + PTTP operation process
The DNS domain name system is the most important DNS server at all levels. They are used to resolve domain names. ODIN naturally uses the blockchain to resolve them (refer to the figure above). Since all registration information is on the chain, when a user looks for a data resource or related information about this resource according to the ODIN identification string, the query request will be located on the blockchain through the open source ODIN parsing library and then transmitted. Go to the access point (Access Point) registered by the ODIN owner to parse according to the PTTP (Peer Trusted Transfer Protocol) transmission protocol and obtain the metadata description of the data resource and the actual data URL link.
How to use ODIN domain name ?
The PPk tool mainly refers to the PPk browser (which also has the built-in Bitcoin wallet function). A traditional browser is an HTTP client, which makes a request to the server indicated by the domain name , and then parses out the returned HTML file and displays it to the user.
The PPk browser is a PTTP client, which initiates a request to an access point AP on the blockchain network referred to by the ODIN domain name , and then parses out the returned HTML file and displays it to the user. The AP here can be a node in the blockchain network (it can span multiple blockchain platforms: Ethereum ETH, BTM, Hyperledger Fabric), or even a centralized Web server. Therefore, ODIN's starting point is to improve the traditional Internet.
After registering with the ODIN domain name, you can set up a website for this domain name on the PPk browser (Section 6 of [3]). The principle is to deploy the website page distribution service to a distributed storage service type (Dat, IPFS or BtmFS), and then associate the URL obtained after deployment with the ODIN domain name (by sending a domain name to the URL in the Bitcoin network transaction).
[4] also mentioned: how to build a content node AP that supports the PTTP protocol?
After the 0.8.5 version of the PPk client, it supports a variety of distributed storage services such as Dat (distributed data synchronization protocol), IPFS, BtmFS (distributed file system of the original chain) to quickly build a simple AP website example , And easily associated with the ODIN logo that you registered.
In fact, the principle is: similar to the content in Part 6 of the previous [3]. Deploy the website page distribution service to a distributed storage service type (Dat, IPFS, or BtmFS), and then associate the URL obtained after deployment with the ODIN domain name (by sending a domain name and URL-related transaction in the Bitcoin network). Setting up an AP yourself is almost the same as building a website.
How to make the content released by your own AP node self-certified?
Similar to the traditional DNSSEC security upgrade solution DNSSEC, the ODIN logo natively supports the trusted content configuration function. Depending on the open Bitcoin blockchain, data requesters can access data obtained from content nodes that support the PTTP protocol, namely AP (Access Point). Content is independently trusted for verification.
In fact, the principle is: a pair of public and private keys is generated, the private key is placed on the AP and configured, and the public key is published on the Bitcoin blockchain. The client can use the public key to sign the content in the data returned by the AP Perform verification to verify legal credibility.
4 Format of ODIN domain name
ODIN domain name / logo
Having said so much, the format of the ODIN domain name has not been introduced yet (as shown in the figure above). Because how ODIN works is more important than ODIN's data format and domain name format.
The standard structural formula of the root ODIN is:
ppk: [BTC_BLOCK_SN]. [BTC_TRANS_INDEX] / [DSS]
ODIN is divided into three parts: naming system, prefix and suffix, separated by colons and slashes.
• The dot is divided into two parts by a small dot [BTC BLOCK SN], which is the digital serial number of the block where the ODIN registration record on the Bitcoin blockchain is located (determined by the Bitcoin network), [BTC TRANS INDEX] The Arabic numeral number (addressing from 0) of the specific storage location in the block where the ODIN registration record on the Bitcoin blockchain is located.
• The suffix [DSS] (Data Suffix String) can be selected by the ODIN registrant and given by itself. The specific data content positioning indicator corresponding to the ODIN logo needs to be independently guaranteed to be unique.
[DSS] naming scheme:
RESOURCE_ID # [DATA_BLOCK_ID.CHUNK_INDEX]
among them:
• RESOURCE_ID is the corresponding resource ID, which is defined by the registrant of the ODIN ID. It can be a serial number or a unique value string. You must ensure that it can be distinguished from the standard structural formula and cannot include # / () " These five characters.
• DATA BLOCK ID is the corresponding content block number (starting from 1, for the file File can be understood as the version, for the dynamic data stream Stream can be understood as a sequentially generated data packet)
• CHUNK_INDEX is the index number of the corresponding sub-data block within the block (starting from 0).
Note: "#" and its subsequent parts can be omitted, and the default indicates the first sub data block corresponding to the latest content block.
The following examples are legal codes that conform to the defined root ODIN:
ppk: 351474.430 / ppk: 351474.430 / # ppk: 351474.430 / # 1.0 ppk: 305678.568 / ISBN2890321345 # 1.0 ppk: 305678.1000 / ISBN2890321345-P235 # 2.1
In addition to the above basic format, ODIN also supports short encoding, multi-level extended ODIN, etc., see [6] for details.
5 postscript
ODIN & PPK has built a decentralized DNS system that can help users index and locate resources stored on any chain and any network, and build a bridge between "siege cities". This coincides with the vision of THE OASIS cross-game prop asset transfer agreement. In the future, DegameLabs will bring the technical outlook of combining THE OASIS and ODIN & PPK protocols.
references
[1] DOCPPkAbout.pdf under https://github.com/ppkpub/docs/
[2] DOCPPkBrainTool_Tutorial.pdf at https://github.com/ppkpub/docs/
[3] DOCPPkBrowser_Tutorial.pdf at https://github.com/ppkpub/docs/
[4] DOCPPkJavaTool_Tutorial.pdf at https://github.com/ppkpub/docs/
[5] PPKODINSPEC.txt under https://github.com/ppkpub/docs/
[6] PPK_ODIN.txt under https://github.com/ppkpub/docs/
Public account: DegameLabs chain game laboratory, focusing on the new game of chain game, regular technology sharing.
We will continue to update Blocking; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Technical Guide | Understanding Zk-stark for Zero Knowledge Proof Algorithms
- Popular science | Worry about privacy protection? Encrypted data warehouse shows its strength (core use cases and requirements analysis)
- Understanding Zk-stark of Zero Knowledge Proof Algorithm-Arithmetization
- Smart Contract Entry Series | Important Links in Smart Contract Engineering: Formal Verification Methods
- Technical Perspectives | After two years of developing DApps and Layer 2 networks, I switched to the Substrate camp
- Technology Viewpoint | Want to develop dApp with Wasm? You have to read the introductory tutorial (1)
- Technical Perspectives | Contract Upgrade for Python Smart Contract Tutorial