David Hanson
Ultra
Published in
8 min readAug 6, 2020

--

Last week, we announced the completion of our protocol development and the upcoming public testnet. Today, we are diving more into Ultra blockchain by introducing a new blockchain resource model and Ultra Power: Our resource combining CPU/NET.

One of the core conditions to cater to a large mainstream audience is to make onboarding and blockchain service usage as simple as what the mainstream audience is used to: register an account for free and you’re good to go.

Our blockchain protocol core strategy is focused on moving the complexity away from users.

First of all, let’s address the CPU/NET resource complexity on EOSIO.

Let’s assume you’re a blockchain pro user and know all about EOSIO resource staking. It turns out you won’t know how much CPU/NET quota you should stake, because you may send more transactions, or use more CPU/NET, from one day to another.

Every time you miscalculate your staking and reach either your daily CPU or NET resource limit, it inevitably leads to transaction failures, even if you have plenty of other resources left.

On Ultra blockchain, CPU and NET are combined into a more manageable “Ultra Power” resource. Even better: users don’t necessarily need Ultra Power to execute transactions!

Before I explain how we’ve achieved this, allow me to take a step back and show you how EOSIO’s resource allocation mechanism creates inefficiencies and low network reliability.

When a user stakes CPU and NET on EOS, he’s being allocated a portion of EOS’s Total CPU/NET capacity. This translates into CPU/NET quota which is then multiplied by a value derived from the network’s current usage. For instance, this multiplier could allow someone who staked 100 CPU to spend 200 CPU if the network isn’t congested.

While it’s nice to receive free blockchain resources, people are in fact staking their CPU or NET assuming the blockchain usage stays below 100%. Otherwise their staking would cost them too much. This causes a lot of frustration because, as we’ve seen, network congestion happens all the time and there’s nothing you can do about it.

Every time 100% network capacity is reached the staking multiplier parameter is set to x1 which means that if you staked 10% of all EOS, you’ve taken away 10% of the network computation capacity from everyone, else regardless whether you use it or not.

As a result, EOS resource management causes two major sources of frustration:

  1. A lot of EOS transactions fail and users experience the infamous insufficient CPU or NET error messages even though “it used to work, I didn’t change anything”.
  2. In congestion mode, big stakers are monopolising large amounts of network capacity even if they are actually not using it. It’s not just big stakers: everyone who staked, whether they might be sleeping or working, uselessly put a part of the network computation power to sleep. They are thus forcing everyone to stake more to get a piece of what’s left of the network.

Operation costs are inflated as a result of inefficiencies and network reliability is unpredictable. As a result, today’s businesses can’t provide blockchain features to a mainstream, mass market audience.

To put this in perspective, it’s easy to imagine that a company like Ubisoft won’t implement a blockchain solution in their next blockbuster game if that solution is only “working for some users most of the time”.

How UOS solves the resource allocation problems

Instead of having an adversarial structure which forces users to reserve resources for themselves “just in case”, while very partially using them, Ultra’s network resources are pooled and usable by everyone who needs them, when they need them.

There is no “congested mode” during which unused reserved allocations are wasted, neither does it have a variable resource multiplier. Instead, Ultra computational potential can be used at 100% at all times!

Our transactions get executed in sequence derived from a single fair rule: the more Ultra Power one has, the faster one’s transaction gets executed.

The basics to know:

  • Every new Ultra user account starts with an Ultra power quota of 0.
  • Anyone can stake UOS to get Ultra power.
  • Making transactions on the blockchain spends some of that Ultra Power.
  • Ultra power quota resets every 24H.

When the network is at 100% capacity, it executes transactions from users with the highest Ultra remaining Power quota first, to the lowest ones, including transactions from users with 0 and negative quotas.

Theoretically, one could execute all their transactions without staking. In such a scenario, the blockchain would simply first execute transactions from users who have more Ultra Power quota than them and then execute transactions from users with deeper negatives quotas.

Allowing users to execute transactions on chain for free, even if they staked 0 Ultra Power!

When spending “truly free transactions” with 0 Ultra Power, a user is allowed to spend its 0 Ultra Power quota negatively: going for instance from 0 Ultra Power to -100 Ultra Power.

In short, the main driver of our transaction prioritization comes from the user’s Ultra Power quota status.

The more Ultra Power you own, the higher your queue priority. Quota decreases when users make transactions but resets every 24 hours.

Anyone who wants to get higher transaction execution priority on the network can however stake UOS to get more spendable Ultra Power quota. Everyone’s quota, including the negative quotas from non-stakers, resets itself automatically every 24hours.

If the network reaches its maximum transactions/sec limit, it will first take care of transactions from Ultra Power stakers with the most remaining quota to the smaller remaining quotas, then execute those who used free transactions responsibly and only then, if the network can, it will execute transactions from “abusing actors” who are deep in the negative.

The more you spent your Ultra Power Quota the lower priority your transactions get.

If for some reason one day you’ve made more blockchain transactions than usual and didn’t stake enough, Ultra is much less punishing than EOSIO chains. Indeed, if you’re not abusing the network, there’s a high probability your transaction will still get executed.

All unexecuted transactions can stay in the chain’s queue for a certain amount of time. If Ultra blockchain never finds an opportunity to execute deeply negative transactions, they are simply dropped and fail.

This strategy, in essence, enables Ultra’s blockchain to truly use 100% of its computation capability at all times which translates into more successfully completed transactions and overall higher transactions per second capacity than any other EOSIO based blockchains allowing simple users who stacked nothing at all, to still make blockchain transactions for free.

There are diverse mechanisms preventing malicious users to game the system, for example on EOSIO Block Producers have been greylisting/blacklisting users who abuse the network. Ultra BPs can do the same but can also decide to temporarily or permanently afflict abusing actors, a negative power quota modifier.

We expect BPs in the near future to have a real time network health analysis tool capable of detecting and handling abusing actors automatically.

Addressing real businesses.

The mechanisms described still do not guarantee companies can complete 100% of their smart contracts transactions successfully. After all, the successful execution of a transaction depends on whether the network load is at 100%, and whether the user himself has enough Ultra power quota.

In order to provide a business friendly blockchain solution, we developed a protocol level predicate system allowing businesses to “stake and sponsor” free transactions on targeted smart contracts or on targeted smart contract actions. Ultra’s predicate system is very flexible and can be adapted to all kinds of conditions a business might require: any data stored on-chain can be used as a condition to sponsor free transactions for a user. You could literally sponsor transactions if a user owns a particular NFT!

Below are a few examples of the rules that can be used to sponsor a transaction:

If you are “user123” => Business sponsors the transaction.

If user buys the business product => Business sponsors the purchase transaction.

If user owns a particular NFT (game for example) => Business sponsors all transactions related to it.

If user calls a particular action in a smart contract => Business sponsors the transaction.

One could imagine Ubisoft buying UOS tokens and “sponsor-staking” them to fuel all transactions made by users with their Far Cry 6 smart contracts, as long as these users own Far Cry 6 (On Ultra, purchasing a game is technically purchasing a game NFT).

When a user’s transaction is sponsored, not only does the user’s Ultra Power quota stay untouched since the company would ”pay” with their own resources, but his transaction gets execute with the highest priority.

This means large companies have the means to stake UOS tokens to have enough Ultra Power to guarantee all transactions from their own customers. Their transactions always get executed pronto, regardless of the network conditions.

Using UOS, a company can provide their own users the kind of reliability and service quality they need to access their own smart contracts.

While successful businesses can afford sponsoring Ultra Power for their own users, we also need to think about the smaller developers who often build cool services everyone loves with very few resources.

To give everyone a chance to thrive on Ultra blockchain, we are designing a system where any user can stake resources for their favorite services on Ultra such as games, apps, etc, and get rewarded for that. We will get back to this and talk about the exact relation between UOS and Ultra Power in a future new article dedicated to token economics.

About Ultra

Ultra is the first entertainment platform providing all key games industry services under a single roof, accessible through a single login.

Built around our PC games distribution store, Ultra Games, our platform will provide access to countless centralized and decentralized services: Discover, buy, play and sell your games and in-game items, watch live-streaming feeds, interact with your favorite influencers, participate in contests, compete in tournaments, and much more.

Ultra has been built to provide endless value for players, a fair playing ground for developers, and a whole new world of opportunities for the games industry.

For more information, visit ultra.io and onultra.io and follow along on Twitter, YouTube, Telegram, and Discord.

--

--