Technology Whitepaper v1.1.0
Sponsor: dnsDAO Email: team@dnsdao.org
Abstract
A decentralized naming system should have a function to map existing and future blockchain system identities (a string generated by the current blockchain identity public key) to names that are easy to remember and use. The naming system can also not be independent of existing naming systems and must be compatible with existing ones. The traditional naming system - or domain name system as we know it - is limited by the processing power of the conventional information system and has a typical tree structure. The traditional naming system did not consider the problem of security, which led to the emergence of attacks. Another centralized system CA was introduced to solve the problem of attacks, making the traditional naming system ecologically unstable and vulnerable to control. The use of a decentralized naming system can fundamentally solve the problem of security, instability, and control. The decentralized naming system allows any person or organization to join or exit the naming system according to the code agreement, with no restrictions from any country, organization, community, or individual.
We use a service-driven consensus algorithm based on which nodes get more chances to create a new block by providing external query services. We denote this consensus algorithm as DPoS (Delegated Proof-of-Stake).
Introduction
As technology advances and hardware capabilities continue to upgrade, people's requirements for information systems have slowly shifted from the initial desire for increased efficiency to the need for fairness and security. The emergence of blockchain systems comes in response to this demand. The principles of a blockchain system are decentralization, privacy, and security. Web 3.0, built on top of the blockchain system, solves the problem of large companies keeping users away from their rights brought by Web 2.0 and the issue of the centralized nodes collecting and tracking users' behavior.
A blockchain system is a system built based on a cryptographic algorithm. The current identities (blockchain user, contract, token, etc.) in the blockchain system is identified by the public key of the blockchain's cryptographic algorithm. The public key is a long, irregular string. As the blockchain system is recognized among more people and applied in more fields (e.g., the widespread acceptance of on-chain applications), this current representation of blockchain identity has dramatically hindered the broad application of blockchain.
This paper aims to design a new blockchain-based naming system that maps blockchain identities (represented in the form of public keys) to easy-to-read and remember names. At the same time, the naming system will provide end-to-end security, eliminating the need for an additional set of CA systems and simplifying usage of the system.
Basic Algorithm 1.1 Ed25519
We choose the ED25519 algorithm as the base algorithm of a decentralized naming system based on two main reasons: the first is the deficiencies of EcDSA's signature, and the second is that EdDSA has more comparative advantages.
What are the shortcomings of EcDSA? The main ones are as follows:
the insecure use of random numbers in the signing process (including the difficulty of implementing a secure random number generator and random numbers correct usage by programmers), which may lead to key leakage;
forgeability of ECDSA signatures;
possibility of signature forgery: if there is no need to provide a signature message, the signature value corresponding to the private key can be forged based on the existing signature value;
low signature efficiency, if compared to Ed25519.
Ed25519 algorithm solves the above deficiencies. Its main advantages are as follows:
the implementation is optimized to achieve high performance on a variety of computing platforms;
the signature process does not require a unique random number, which can avoid the security problems caused by random numbers;
there are no branching and secret data indexing operations, with better immunity to side-channel attacks, etc.;
the public key and signature values are small (Ed25519 public key is 32 bytes, the signature value is 64 bytes);
computation formula is complete, no need to perform point verification operation for untrusted points;
collision resist, a collision of weak hash functions will not break the signature mechanism (PureEdDSA).
1.2 X25519
X25519 algorithm is a kind of ECDH algorithm, mainly designed to exchange keys, using the horizontal coordinate point group of Ed25519 algorithm, it can naturally generate X25519 keys. Thus, it achieves the same key for both signature and key exchange and is used to encrypt end- to-end data encryption.
Decentralized Names
2.1.The characters allowed in decentralized names include:
a-z, 26 letters of the alphabet;
0-9, ten numbers;
"-" underscore.
2.2.Decentralized naming basic principles:
names are not case-sensitive;
"-" character cannot be at the beginning or the end;
maximum 67 bytes;
names use "." character link, e.g., abc.dns.
2.3.The decentralized naming system defines names as three types:
top-level domain names have less than five characters (e.g. dns);
common top-level domain names have five characters or more (e.g., google);
subdomain names use "." connected names (e.g., such as abc.dns).
Consensus Algorithm
In blockchain systems, a consensus is a process by which
individual consensus nodes agree on the outcome of transaction execution. The decentralized naming system uses the algorithm of DPoS to generate consensus. Unlike other systems, the decentralized naming system can have prosperous ecology only if a good mapping query service is provided.
3.1.Node Joining
To improve the impact of new nodes joining the network on the existing system, the decentralized naming system must pass network- wide verification when a new node joins the network. We limit the difficulty of joining new nodes by calculating the HashCash mechanism. Depending on the size of the network-wide nodes, such nodes will update
the difficulty value of joining the network. The relationship between difficulty and the target value is as follows:
Difficulty value = Maximum target value / Current target value (2.1)
The maximum target value and the current target value are 256 bits long, and the maximum target value is the target value when the difficulty is 1, i.e., 2224. Assuming that the current difficulty is D, the arithmetic power is P, the current target value is C, and the expected time to join the network is T, then:
C = `2`224/D (2.2)
The arithmetic power required to join the net network at this point is:
`2`256/C = 232\*D (2.3)
The relationship between arithmetic power and time is
P = `2`32\*D/T (2.4)
The decentralized naming system periodically adjusts the difficulty value of joining the network so that each newly joined node takes about 10 minutes of Hash computation time.
https://drive.google.com/file/d/1fP_1J6H6G7a1GhnEZLeSo4p9xB9-O1Kp/view

