As mobile internet technology continues to mature, the emergence of blockchain technology represents the upcoming post-mobile era. In fact, blockchain is a critical innovation for our generation. Despite currently being in an early stage of development (to the extend of being percieved as mysterious by the public), blockchain has a promising future. Subsequent to the previous two blockchain articles I published, this article aims to elaborate on the heart of blockchain – smart contracts.
What is a smart contract
The term “smart contract” was first coined by Nick Szabo in 1995, loosely defining it as a digital contract that is executed automatically.
A sales contract can be used as simple example of a smart contract. Two parties, a buyer and a seller, agree to terms of sale, such as price, delivery option and payment method. Once the seller has commited to send products to the buyer, the smart contract is updated, and the buyer’s payment is made automatically. Whenever a predetermined condition or term is met (such as confirmation of a sent parcel), the smart contract will execute in accordance.
Blockchain technology is evolving rapidly, with more value being generated by its applications with each iteration. Smart contracts are not only automated traditional contracts, but play a critical role in the world of blockchain. Below, I explore the future of this revolutionary technology through a technical analysis of Ultrain’s Blockchain 3.0 smart contracts.
Smart contract technical analysis
Ultrain's contract system does not allow other contract’s code to be embedded in custom contracts, but Ultrain does provide three methods to call code from other contracts, which we explore below.
The Action.requireRecepient() method requires an action from a specified recipient. This command calls the deployed smart contract with a specified name.
As an example below, we have written and deployed two contracts. In Figure 1, a contract was deployed on account “jack”, requiring authentication (Action.requireAuth()) from“rose”. The other contract, seen in Figure 2, was deployed on account “rose”and uses Action.requireRecipient() to validate the received notification from and “jack”.
We can test our calls by initiating a transaction. If everything runs smoothly, the log will show that both “jack” and “rose” recipient methods were called.
We learn from this that:
（1）The recipient with the name “jack” has been called.
（2）The parameter transmitted is inconsistent with the parameter,“messi”, initiated by the transactions.
（3）Both the recipient methods of “rose” and “jack” will be called within the same transaction.
（4）Both “rose” and “jack” control their own permissions
Based on the testing result of Action.requireRecepient(), we can see that requireRecepient() has some limitations. Action.sendInline() is a method that solves this issue and allows any parameter to be called. Here is another explanatory example, again with two contracts, “rose” and “jack”:
Contract “rose” uses the Action.sendInline() method and delivers arbitrary parameters (params) to “jack” once executed.
We can see in the execution log that “jack”’s “name”value has changed in accordance “params”specified in “rose”.
This indicates that sendInline() can be used to call any method in any contract. Permissions are controlled by each contract independently, similar to the previous example, and the change is executed within the same transaction.
We saw in the previous examples that the actions specified in requireRecepient() and sendInline() are executed within the same transaction. This leaves the possibility for a mistake to result in the failure of an entire transaction. Transaction.send() is a perfect solution to this potential issue.
The following picture demonstrates how this method is used:
We can execute the deferred methods specified in “rose”even after the contract has been deployed. Please note, the active right of rose to must be assigned to utrio.code, otherwise the request will not successfully exeucte.
Once this method is conducted succesfully, we see rose’ log informtion（see Figure 3), but where is jack’s? We find it within the nodes (see Figure 4).
From above we can see that Transaction.send() has the following charateristics:
1）Transaction.send() can call jack from any method.
2) the method allows execution outside of the same transaction
3）A called method can transmit any parameter
4）when the jack method is being called, it has the same permissions as rose at initiation
The table below recaps the charateristics of the methods described above. Each method has different strengths and weaknesses, and are therefore suited to their own specific circumstances.
In summary, our analysis above clearly demonstrates the important role of smart contracts play in the Blockchain 3.0 era, by allowing flexible and secure computations on a decentralized system. Hopefully you have also glimpsed the power of Ultrain’s smart contracts.
Ultrain, a pioneer of next-gen blockchain projects, has made many improvements and breakthroughs in existing smart contract technology. Ultrain contracts are far beyond the requirements of traditional contracts and can realize increasingly complex business logic. They can be used for technical intercommunication that builds bridges between various industries. For this reason, blockchain technology is an essential component required for creating a business empire with high performance, low cost, high service quality and support for large-scale data assetization.
Dear Ultrain community members,
We would like to thank you for your continuous support of the Ultrain testnet! Several miners have already begun mining operations since the announcement of their selection last December.
New mining-data lookup function
We are pleased to announce a new online mining-data lookup function that is increasing transparency by making mining-data available to the public.
Click the link below for detailed inquiries:
Each user is ranked based on the number of blocks they have created, as can be seen in the image below:
Users can review their mining status and details on a daily basis, after logging in with their account details：
The time and date of each block is also visible:
We encourage and welcome all miners to use our new lookup function!
Second round testnet application
The second phase of Ultrain’s testnet miner recruitment is now officially open! Community members have another opportunity to join Ultrain’s testnet, so submit your application soon to get involved. All new miners will provide computational power for the operation of Ultrain’s testnet, filling a crucial role in Ultrain’s technological development and helping to complete testing prior to mainnet launch later this year.
Testnet participation reward program
We have prepared a generous reward program to incentivize miner participation. The program is effective as of today.
1、 Each miner is ranked on a weekly basis based on the number of blocks they produce, and be rewarded accordingly.
· 1st — 3rd: each winner receives 0.8 UGAS/block
· 4th-10th: each winner receives 0.5 UGAS/block
2、 Each miner is ranked based on their aggregated monthly output of blocks at the end of each month.
· 1st — 3rd: each winner receives a mid-size Supernova mascot
· 4th-10th: each winner receives a small size Supernova mascot
*Limited Time Offering: Valid until Ultrain’s mainnet is launched on line
We welcome all interested parties to apply for our testnet via the link below!
Ultrain Chief Cryptologist, Husen Wang
As we all know, the core feature of blockchain technology is that any data stored on blockchain is non-malleable, and any state transition is transparent to everyone. Based on these features, blockchain technology can help solve many controversial problems, one of which is fairness.
Fairness means that everyone is treated fairly, which means that all transactions are selected and executed with equal probability, with the same opportunity to participate in the competition and treated the same way. In reality, numerous businesses require fariness in the core, such as gaming, jurors and military conscription. In tradition, the process is vague due to technical limitations, which bring about controversies. For example, in League of Ledges, the probability of critical attack is crucial to the game, but the underlying mechanism is not transparent and unproven.
On December 5, 2016, the Ministry of Culture of People’s Republic of China released the Notice on Regulating Online Game Operation and Strengthening Concurrent and ExPost Supervision that ”game operators shall timely and truthfully publicize the information regarding the Random Events including names, functions, content and quantity of the virtual items 3 or other similar services offered in the Random Events as well as the probability of winning and the results”. However, there is no evidence for complying the rule as to online game vendors.
We use blockchain to solve this problem by the following way
1, the random number can be generated and verified with free particiaption
2, the game logic such as card shuffling service can be made transparent with smart contract
In this way, everybody can audit the execution and result at any time, with impossible interference from game vendors, thanks to the non-malleability of blockchain technology.
For the first one, there are several existing solutions:
1, centralized random source
Thermal noise and clock drift in electronic circuits, mutually exclusive events in Photons, Fluctuations in vacuum energy, etc. However, these random numbers are required to be provided by the people who samples such noice and impossible to verify, thus not appropriate for public use.
2, PoW blockchain Block header
In order to solve the difficult problem in PoW blockchains, miners need to guess a random number to generate required blockhash such as a pre-established number of zeros. Since the miner invests considerable resource into the mining process, the probability for giving up is small. However the security level is co-related with the difficulty of such PoW, for weak PoW such as IOTA, the manipulation of block header is inevitable. Besides, considering the fork probability, the confirmation time for such random number is usually quite long.
3, DPoS Block header
Unfairness and collusion is hard to prevent in DPoS, since the block proposers are pre-selected and limited in numbers. The block proposer has motivation to manipulate the transactions in a block to generate desired block header. They can even produce necessary transaction by themselves. Even for commit-reveal scheme, by selecting the revealing transactions, the final random number can be manipulated.
There are some misused random number in EOS games.
4, users’ secrets
If different users hold secrets against each other, it would be possible to generate random numbers based on combined secrets. This idea is similar to Diffie-Hellman Key exchange, which generates shared secret key based on committed random number.
There is a commit-reveal scheme in Blockchain too. However, the two-phase scheme brings too much latency (nearly 6 block time without considering fork). Besides, free choice of committed value may cause potential risk to final random number in case of collusion.
The nature way to use random number is actually users’ secret keys. The public keys are committed values. Such secret is confidential to each user, otherwise the money in the account would not be safe. By deriving random number from such secret and combine them together, the randomness can be guaranteed.
In Ultrain, based on RPoS consensus algorithm, we designed our random number generator as a primitive, with the following advantages:
Safeness, the block proposer in RpoS is randomly selected, which guarantee the fairness, avoiding manipulations by proposers, compared with DpoS and blockchains with weak PoW such as IOTA/Litecoin.
Randomness, combing randomness from secret keys and avoid manipulation by using Verifiable Random Function. Advanced shifting and pool controlling mechanism to reduce manipulation.
Fast generation, low communication & computation overhead, avoiding communiation complexity in Dfinity.
Fast confirmation, RPoS uses BFT based algorithm without forking, avoid waiting time in Bitcoin/Ethereum/Dfinity.
What’s more, Ultrain provides extra security enhanced layer in smart contract level for specific business solutions.
Demos are available right now. Any team with interests can get in touch with us through Ultrain.io.
CPU里通常会有真随机数生成器（Ture Random Number Generator，简称TRNG）。真随机数生成器通常是通过放大电路的热噪声来产生随机数。我们知道温度高于绝对零度的原子都存在热运动，在集成电路里这些原子的热运动会在电路里产生噪声，噪声会使得电路中的电压存在微小的起伏，TRNG就是通过放大这些微小的起伏来产生随机数。但是，这种随机数的生成方式是一种中心化的方式，在区块链上并不适用，因为除了随机数的生产者外，其他人无法证明该随机数的生成是否是可信的，还是被杜撰的；无法在众多节点中对该随机数的真伪达成共识；
以上案例，都有一个共同的特点，就是采用了 tapos_block_prefix, tapos_block_num 做为随机数种子。
- 生成速度快：相比较基于块头的生成方式，Ultrain每轮随机数生成时间为10秒，不需要等待确认时间，只有其他公链的生成时间的十分之一。 类似Dfinity的方法，则需要组内成员相互通信和验证，通信复杂度、等待时间和防串谋的难度更高。
区块链系统解决的是拜占庭错误，主流算法有POW/POS(概率算法)和PBFT(确定性算法)。其中，POW/POS概率类算法的共识结果则是临时的，随着时间推移或某种强化，共识结果被推翻的概率越来越小，最终成为事实上结果。拜占庭类容错算法往往性能较差，无法容忍超过 1/3 的故障节点；而PBFT确定性算法一旦达成共识就不可逆转，即共识是最终结果。分布式数据库系统解决的是非拜占庭错误或故障错误，主流算法有Paxos和Raft，这类容错算法往往性能比较好，处理较快，容忍不超过1/2的故障节点。
Ning Li, Co-founder & CTO
Blockchain. Distributed database. These terms are often used carelessly, and, more often than not, incorrectly. Both blockchains and distributed databases have a similar goal of maintaining a consistent copy of a particular dataset across a number of nodes. Maintaining consensus on the data that is stored, as well as keeping redundant copies of this dataset, are the major similarities between the technologies.
On the surface, their fundamental technology is quite similar, but that’s as deep as it goes. Similar does not mean interchangeable.
This article will explore the nuanced differences between blockchain and distributed databases by focusing on three important aspects: intrinsic nature, core value proposition and storage technology.
- The differences in nature:
- Centralized vs decentralized management.
Public blockchains are a collaborative creation, with their ultimate goal being to create a world that is completely decentralized, and where the ownership of digital assets is protected and transferable at all times. On the other hand, distributed databases are centrally managed by a service provider. Their goal is to create a logical center, that can provide efficient, low cost services with great scalability.
Both technologies face technical trilemmas, which is referring to the difficulty of optimizing a technology while balancing tradeoffs. For example, the blockchain trilemma is concurrently achieving high security, decentralization and scalability.
I.e. it’s easier to achieve high security and scalability by sacrificing decentralization. Distributed databases face a fundamentally different set of issues. As a service provider, DD managers must consider business support, engineering implementation complexity and evolving hardware requirements.
- Consensus mechanisms:
Blockchain systems attempt to solve the Byzantine Generals Problem with clever algorithms, thereby becoming Byzantine Fault Tolerant, or BFT. In short, this is how blockchains reach verifiable decentralized consensus, even with malicious nodes. The most commonly used consensus algorithms Proof of Work/Proof of Stake (probability based algorithms) and Practical BFT (deterministic algorithms). The consensus generated based on the probability class of PoW/PoS algorithms is temporary, meaning it can rewritten. As time goes by and additional blocks are added to the chain, the probability of overturning the previous blocks become smaller, approaching zero. Byzantine fault-tolerant algorithms often have poor performance, with a low tolerance of 1/3 faulty nodes.
PBFT deterministic algorithms are irreversible once consensus is reached. That is, the consensus result will always be final.
Distributed database systems rarely have to solve the Byzantine Generals Problem, since there is a central point of control that coordinates the whole system, but do have to consider system failures. Mainstream algorithms used by DDs include Paxos and Raft. These fault-tolerant algorithms tend to perform better and process faster, and tolerate faulty nodes that do not exceed over 1/2 of the network.
- The difference in value propositions
The core value of blockchain technology is not to provide rudimentary data services (like the decentralized database), but to build a new ecosystem of digitized data assets and automated trust services. The global blockchain updates its state autonomously, and data is traceable to its source.
On the other hand, the core value of distributed database is to provide data storage and access services to business systems. The database is designed to provide operational-support, mainly for business products and development projects, with the data being stored with a focus on supporting analysis and retrieval.
- Understand blockchain and distributed database through storage technology
From the birth of Bitcoin in 2008 to the emerging generation of blockchain 3.0, the fundamental storage technology of blockchain has not drastically changed.
The main data structures in blockchain are divided into two categories – transactions and blocks:
• Transactions trigger updates to the blockchain’s world state. The transaction itself contains two types of data: input and output. The transaction input indicates the source of the data, and the transaction output indicates the destination of the data.
• Blocks store transaction data. They are composed of a block header and body. The block header records important metadata, such as the hash address of the previous block and creation time stamp. The body contains the transaction quantity and complete transaction data.
Lets look at an example using the storage principles of Bitcoin.
The Bitcoin/blocks/ folder is formatted like the blk00000.dat file in Figure 1. This file stores block data and has a maximum size of about 128 MiB.
The Bitcoin/blocks/index/ folder stores the index data of all blocks, using the key/value pair database in leveldb (ldb) format, such as below in Figure 2.
Each block is at most 2MB, and the block data is stored in the block file (such as blk00000.dat in Figure 1). Block data is separated by a "magic number" (such as 0xF9BEB4D9 in Figure 3). The blocks/ folder stores data from multiple blocks, up to the maximum limit. If it is larger than 128MiB, a new block file will be created (such as blk00001.dat).
Distributed databases do not use blocks and transactions, as explained above.
The first distributed databases were implemented around 2005, with the first wave NoSQL. The primary problem solved by these databases was that individual machines of the time lacked storage capacity to store all of the data on a single machine. Following the invention of relational database management systems there have been a lot of adaptions as business requirements have changed. New middleware products and sub-library schemes have continued to be developed, such as Hbase, Cassadra, and MongoDB. Googles publication of Spanner and F1 papers in 2012/13, showed the industry the possibility of NoSQL's scalability integrating with a large-scale production system.
As mentioned in my previous article on the evolution of blockchain technology, I will continue a series of articles that further explain the world of blockchain. My goal in this article was to breakdown the difference in nature between blockchains and distributed databases, and in my upcoming article I will elaborate how smart contracts can be perceived as “nuclear power” for the world of blockchain, rather than an interface for external services. I will also describe a series of valuable applications for smart contracts.
Ultrain, as a leader in blockchain technology, has a clear goal to share knowledge with different audiences and attract more participants into our growing community. Together, we wish to promote the large scale adoption of blockchain technology in our existing economy, and create a programmable business society.
Ultrain CEO Guo Rui
Blockchain has been described as a revolutionary technology — that the technology born from Bitcoin will change our lives and guide us towards a future way of living. This hype is somewhat dampened, however, by the disappointing performance of existing blockchain infrastructure. Ever since Ethereum was introduced to the world, Blockchain 3.0 has been the ultimate vision that will fully realize the true value of the Internet. It is widely believed that a virtual business network, perfectly compatible with the concepts of decentralization, security, and ideal performance, will eventually be realized.
We face the blockchain Trilemma, which describes the tradeoff between simultaneously achieving high performance, decentralization and security in a blockchain system. Optimizing this triangle has become the main focus of every public chain project on the market, though limited breakthroughs have been made in recent years.
In a recent interview, Rui Guo, co-founder and CEO of Ultrain, expressed his opinion:
“A lot of us are often too optimistic about the development of technology in the short-run, while remaining pessimistic towards our long term goal.”
Guo stated this with great confidence in the future of blockchain technology, while also pointing out that Ultrain’s founding team “only focuses on the long-term value of blockchain technology… with dedication and commitment, blockchain can establish an innovative trust relationships, and execute transactions that generate great growth to existing enterprises… Such technological value, created to benefit our society, will scale up within three to five years…”
Despite the global crypto bear market, Ultrain received funding from top venture capital investors, concluding a 20 million dollar private round in July, valuing Ultrain at 200 million USD. With laser focus, Ultrain is relentlessly continuing development of its ultimate goal, and achieving new milestones every week.
Ultrain recently announced the official opening of its test network, allowing enthusiastic community members to contribute to the network from early December. DApp developers can already deploy their own Ultrain smart contracts to the testnet, verifying their functionality in a real blockchain environment. Ultrain is proud to be one of the first Blockchain 3.0 project with open test network worldwide.
In light of the latest new progress, Rui Guo would occasionally recall the early days of Ultrain when the company was first formed. In a volatile market, the key to success is to build a company focused on technological evolution, rather than financial speculation. Guo first encountered blockchain in 2012 while working as Technical Director of the Alibaba Security Group, and was immediately curious about the technology. This spark of curiosity quickly ignited into a long term and firey passion, leading Guo to much personal experimentation with blockchain. When the popularity of the burgeoning blockchain industry entered new heights in May 2017, Guo made the decision to deepen his involvement. Using his accumulated expertise in the field, he quickly established a vision for the future development of blockchain that addresses the technical issues currently faced.
Ning Li, working as the Chief Architect of the blockchain team at Ant Financial, hit it off with Rui Guo from the moment they met. Guo and Li decided to form a team and devote themselves to the revolution that is blockchain technology. Guo described the feeling at the time: “… we felt the excitement of an engineer who is eager to resolve technical challenge.”
Such excitement did not blind the duo. After experiencing the exponential growth of Alibaba, Guo and Li recognized the importance of user engagement to a project’s success. Emma Liao, who was head of IoT investment at Qihoo 360 at the time, had the expertise and experience to drive a thriving ecosystem around the project.
Soon after the three met for the first time, Ultrain was formed.
The three entrepreneurs formed a solid and complementary triangular structure, covering each other’s weaknesses and complimenting each other’s strengths. A shared devotion to resolving blockchain’s technical issues, created a simple goal: to building a programmable business society.
From that day, Ultrain was born.
At this point, are public chains too dull to mention?
As an innovator working on the cutting edge, Guo has a nuanced answer to this question. He explains that the approaches existing blockchain projects have to the “blockchain trilemma”, such as DFINITY, Oasis Labs, Algorand, Thunderella, and Zilliqa, can be classified into two groups: generate block prior to confirmation and generate block after confirmation.
An example project of the former solution is DFINITY, and an example of latter project is Algorand. Both projects are well received with great attention.
The solution chosen by Ultrain is logically consistent with Algorand, using a Verifiable Random Function (VRF) and Byzantine Fault Tolerance (BFT) as the core technology. The difference is that Ultrain has achieved further optimization with a self-designed Random Proof of Stake (R-PoS) consensus mechanism, as well as implementing an incentive and punishment mechanism based on token staking. The penalty mechanism increases the cost of a malicious attacks, improving the overall security of the Ultrain network.
Traditionally, the basic VRF+BFT consensus process is as follows:
The first stage is known as the Role Confirmation phase: at the beginning of each round of consensus, each node uses VRF to generate a credential. Nodes with a matching credential are then randomly selected to participate in the current round of consensus. Participants are split in to two groups: Voters and Proposers.
The second stage is the Hierarchical Consensus phase: Proposers are responsible for generating candidate blocks. Blocks are then verified by Voters. Consensus is reached upon by the Voters of this round, and the candidate block is noted as being confirmed.
The third stage is the Binary Byzantine phase: Voters vote on the candidate block, with the option of accepting or rejecting the candidate block if it is considered to have an error, such as double spending. If a block is rejected it is replaced by an empty block.
The fourth and final step is to broadcast the blocks identified in this round to the entire network.
Ultrain's R-PoS algorithm adds an ingenious mechanism to the VRF+BFT system: the Token Deposit Staking Mechanism.
In the first phase, three inputs are made to the Ultrain’s VRF: the number of UGAS stake by a single node, the previous performance rating of the node, credibility of specific machines.
In Ultrain’s R-PoS algorithm, the output of the VRF is used to confirm the roles of:
Proposer node: the node responsible for assembling and generating the candidate block in this round. There will be multiple nodes selected as the Proposer node.
Voter node: responsible for the next stage of voting and to confirm the identity of the Proposer node of each round.
Notary node: Does not participate in the block formation stage, but records block data once a block is generated.
The probability of a single node being selected as a Proposer or Voter node depends mainly on the input parameters of the VRF, as outlined above. The higher the parameter, the higher the probability of being selected. The machine credibility score (determined by a node demonstrating good behavior), as well as the token-based locking mechanism, greatly improves and guarantees the overall security of the Ultrain network. Algorand, which runs on an idealized model that assumes that 2/3 of participating nodes are credible, overlooks the "human nature" components of blockchain, which may limit the projects development.
The Token Deposit Staking Mechanism allows Ultrain to determine the number of nodes participating in a particular round of consensus during the Role Confirmation stage by using the Fisher–Yates shuffle algorithm, where Algorand loses efficiency by electing a consensus committee based on probability.
Ultrain implements another change to VRF+BFT in the second stage, transforming Hierarchical Consensus into a parallel consensus phase. The selected Proposer nodes assemble candidate blocks in parallel, and Voter nodes reach consensus on the Proposer nodes during the current round to determine if the candidate block is accepted by most of the nodes in the network.
Having multiple Proposer nodes generating blocks in parallel improves the overall TPS of the system. In addition, parallelism improves the flexibility of the system. If a Proposer node is under attack, as long as a single node is capable of reaching consensus, the system will not produce an empty block. A parallel BA algorithm is used to overcome the technical challenge of voting on a proposed block, but this may result in network storms.
To solve this problem, Ultrain introduces redundant coding technology to divide the message into multiple transmissions, ensuring that the most messages can be broadcast with limited network bandwidth, optimizing network throughput.
In addition, Ultrain also introduces an aggregate signature algorithm that allows candidate blocks to be delivered in small chunks, meaning each node won’t receive the full block before voting is completed. Hiding the content of the message avoids collusion, improving the overall fairness of the system.
Guo uses a simple comparison: “… picture EOS with their DPoS consensus mechanism as a large group of people voting for a fixed number of people to make decisions for them. The voting decision is based on the number of tokens held by individuals in a large group. In comparison, the R-PoS mechanism randomly selects a few nodes to make the initial block proposals, and then randomly selects 10 times more people to judge and review whether the previous proposal is correct or not.”
The core idea of R-PoS is to change the selection method of participating nodes from a trusted election method, such as DPoS, to a random selection method. This allows any node in the Ultrain network to participate in the consensus process, which not only protects the decentralization of the network, but also greatly improve performance.
Ultrain released the conceptual network of R-PoS in July 2018, deploying 1000 nodes to the AWS cloud. The network was able to reach an average of 3000 TPS with a confirmation time of 10 seconds. This performance far exceeds other existing blockchain 3.0 projects.
Ultrain’s Plan for 2019
When discussing Ultrain’s plan for 2019, Rui Guo said that in addition to the launch of Ultrain's main network at the end of April, Ultrain will deploy wallets, DApps and mining machines within the year. The recent announcement of opening the testnet for public application indicates Ultrain is moving from the theoretical phase to a quasi-realistic scenario. Unlike Ultrain's cloud-based test network, the biggest challenge to a public testnet is the quality of each node, and achieving global distribution. These factors are critical for Ultrain to grow into “the world computer”.
In the face of the deteriorating bear market, Guo believes that the emergence of a killer DApp is of the utmost importance to stabilize the market.
Why hasn't there been a real large-scale commercial blockchain application?
"The blockchain has a huge impact on business scenarios through establishing trust relationships and transactions," Guo said. "We believe that projects in sectors such as fan economies, healthcare, energy, and logistics will benefit from blockchain technology and grow manifold.”
Guo anticipates the successful deployment of Ultrain’s mining rigs will see blockchain technology will be enter people's daily lives within five years.
A technology is called revolutionary when it creates a fundamental change to our society. In Ultrain's perspective, finance, an industry that relies on a well-established trust system, is not the main battlefield for blockchain technology. To Guo, blockchain will greatly contribute to the logistics giants known in China as “Si Tong Ba Da”, and would mark a new chapter in the blockchain industry if adopted.
According to Guo, Baidu, Alibaba and Tencent (aka, BAT) will not be the main players in blockchain. He adds his two cents: “BAT will not be the main character in the blockchain world, they will only be the followers to a leader”
Recently, Ethereum founder Vitalik Buterin has expressed similar views publicly. Buterin believes that the so-called application of blockchain technology in many industries is actually a marketing gimmick.
Guo recalls that during his tenure at Alibaba, the original platform management department played the role of controller, which reflected that BAT's is built on the centralization of control. The underlying premise of blockchain technology is precisely the opposite – decentralization.
This notion of control limits BAT's approach to blockchain technology to micro-innovations, such as the "consortium blockchain". Such micro-innovation may lead to some system optimization, but could not be considered revolutionary.
Ultrain CEO 郭睿
前段时间，BM 在 EOS 的电报群抛出了一个关于解决隐私性和性能问题的新想法，总结一下，就是希望通过一种新的设计方法，实现如下几个目标：完全去中心化，任何人都可以跑全节点，同时可以达到千万 TPS；没有 Token 质押和投票；没有 RAM 和 DISK 资源争抢炒作的问题，无需交易手续费。其实这几个目标，也是 EOS 被长期诟病的几个地方，估计也是 BM 一直想去解决的「心病」。
首先，大家都知道 EOS 的共识机制 DPOS 的核心，就是通过每个节点质押的 Token 数量，在一个大规模的网络中选举出 21 个参与共识的节点，由这些节点之间进行共识，达成一致并出块，而不像比特币一样全网出块。EOS 每轮选举出 21 个节点，每 0.5 秒出一个块，3 分钟左右确认该块。据社区最新的 EOS 性能测试报告，其 TPS 约为 3000 笔 / 秒。
一、EOS 的 21 个共识节点都要求极高的机器性能，一个典型的 EOS 共识主节点的配置是 96 核 CPU+256G 内存，机器成本极高，可以视为是网络中的特殊节点，一方面让普通人难以参与到共识节点的建设中，节点数量有限；另一方面中心化的服务器部署很难抵御专业的大规模 DDOS 攻击，这个问题对 Google，Facebook 等互联网巨头来说都是一个棘手的问题，对 EOS 的 21 个节点来说也是一样，黑客可以轻易的通过 DDOS 这 21 个节点，瘫痪该网络；为了解决这个问题，最好的方法就是像比特币或以太坊一样，是一个完全对等的网络，就是网络中所有的机器，在网络中的地位都是对等的，没有类似 EOS 共识节点这样的特殊节点存在，从而人人都有能力可以部署一台全节点机器参与到区块链网络中，实现一个完全的去中心化网络；
二、区块链强调的是完全去中心化和对等的网络，人人在该网络中都是平等的，不存在特殊化，而 EOS 的设计偏离了这种理念，让 21 个节点成为了特殊化节点，而 21 个节点的选择是由质押的 EOS 的 Token 的数量进行投票来决定的，由于成为 21 个节点之一会带来大量的经济利益和好处，EOS 的节点竞选中就难以避免的充斥着贿选，拉票，腐败和串谋，虽然 EOS 的支持者宣称这是性能提升带来的不可避免的妥协，但在区块链行业内对这种妥协并不满意；而解决这个问题最佳的方法，就是彻底取消有人为意志因素的投票方法，取消人为干预；
三、EOS 现在的系统性能，是依赖 21 个节点的系统资源，同时由于区块链的特性，智能合约在运行时需要同时在这 21 个节点上并行运行，所以 EOS 运行的系统资源，主要是 CPU、RAM 和 DISK，是非常有限的，同时 EOS 又不收取代码运行的手续费，为了避免系统资源被无意义的浪费耗尽的问题，EOS 的经济体系是通过抵押 EOS Token 租用系统的 CPU、RAM 和 DISK 资源，这个时候问题就出现了，由于这些资源的总量是有限的，这些稀缺资源立刻导致了投机客的疯狂抢购，现在在 EOS 平台上，1 个日活 1 万的 DAPP，需要抵押的 Token，在现在的币价折合人民币约 350 万元，这远远不是一个普通的 DApp 开发团队可以支付的，从而导致 EOS 平台成为了一个 DApp 应用开发者特别不友好的平台。这个问题是必须解决的，否则除了博彩类的应用开发，其他种类的 DApp 都无法承受这么高的成本在 EOS 平台上运行。
虽然 BM 在 EOS 电报群中只提到了他的设计理念，并没有提具体如何设计，但我们非常欣喜的发现，BM 的设计理念与 Ultrain 在这个方面的设计思考完全一致，而实际上 Ultrain 已经实现了以上三方面的技术设计和实现，这些功能已经在近期上线到 Ultrain 的测试网，并将在 12 月底上线 Ultrain 的准入制主网；
首先，Ultrain 基于自主知识产权的 RPOS 共识机制，在一个完全去中心化的对等网络中已经实现了高 TPS 的设计目标，在今年 7 月 15 日发布的验证网络中，Ultrain 在亚马逊云 1000 个节点上已经实现了 3000TPS，与 EOS 在 21 个节点半中心化条件下到达的 TPS 数值相差无几；Ultrain 网络中的矿机是完全对等的，每台机器都可以是全节点运行。
其次，Ultrain 的 RPOS 共识机制，每轮参与共识的节点是基于 VRF 算法的随机选择，其中抵押的 Token 数量只是 VRF 算法中的一个参数，所以每轮共识节点的选择并不像 EOS 一样依赖于抵押 Token 数量对应投票数量的多少，就可以决定本轮出块的节点；而是一个更加随机的过程，从而有效的避免了投票被操纵的问题，与 BM 提到的没有 Token 质押的投票的思路非常类似。
第三，Ultrain 的经济体系，在设计之初就考虑到如何解决现有区块链经济体系中存在的核心问题：1. 矿工的收益随着全网逐步递减，导致矿机的军备竞赛 2.DApp 开发者的使用费随着使用次数和 Token 价格的增长而增长，而取消使用费会带来有限资源的炒作问题，都会导致 DApp 的运营成本完全无法控制；BM 在这里只提到了第二个问题，我们也先就第二个问题谈谈我们的设计思路。为了解决这个问题，首先需要解决的是系统资源稀缺性的问题，Ultrain 采用了主侧链的设计机制，主链上运行的是 Ultrain 用户的资产信息，而 DApp 应用是运行在每条侧链之上的，主链和每条侧链之间的系统资源都是隔离的，这就保障了系统资源可以无限扩展，在有新的 DApp 需求时扩展一条新的侧链就可以；而这带来的核心设计挑战是安全性的问题，每条侧链的机器数量与全网比起来毕竟是有限的，如何在有限的机器数量下保障侧链的安全性，Ultrain 采用了我们称之为「随机调度」的自主知识产权技术，组成每条侧链的机器并不是固定不变的，这些机器将在一定的时间内在全网机器中随机选择并替换，用动态性和随机性保障系统在去中心化的条件下的安全。在「随机调度」技术的保障下，DApp 的应用开发者在使用 Ultrain 网络时，只需要估算出自己需要使用的资源和时长，付出固定 Token 租用费，就可以使用 Ultrain 网络，更类似于「套餐」制度。
在该设计下，与以太坊 DApp 开发者相比，Ultrain 的 DApp 开发者只需要付出固定的资源租用费租用资源，从而不需要承担 Token 价格上涨带来的成本；而与 EOS 开发者相比，Ultrain 的开发者不会面临资源竞争导致价格高涨的问题，从而保障 DApp 的开发成本完全可控。这里只是介绍了部分 Ultrain 的经济体系，近期我们会撰文详细介绍 Ultrain 的 Token 经济学体系设计。总体来说，非常高兴 Ultrain 在区块链公链设计上的思考能与 BM 一起产生共鸣，也希望有更多的开发者可以试用 Ultrain 的测试网络，请前往 https://developer.ultrain.io/ 了解更多信息。