Games need decentralized randomness to be fair

0

[ad_1]

Quantum mechanics tells us that what looks like a highly predictable and orderly universe is built on a world of unpredictability and mere probability. While the quantum world looks bizarre, it can be understood and even harnessed for technology like semiconductors, LEDs, and quantum cryptography. Something similar can be said about randomness in the metaverse. What looks like a system built on random values produced by random number generators (RNGs) is, in fact, based on programs with a method behind them that can be understood — for good or ill.

The pivotal role of random numbers

Random numbers are of great importance in a number of applications, including games, security systems, decentralized autonomous organization (DAO) governance, and nonfungible token (NFT) generation. If your game cannot access randomly generated numbers, your starts will become repetitive and stale. If your security system relies on easily guessed authentication codes, it isn’t providing much security. If any system that needs variety isn’t getting it, it won’t be very effective.

Even if these systems don’t look random, they rely on being supplied with randomly generated values to execute important operations. Without access to randomness, well-planned systems can’t operate. However, the random numbers these systems rely on are not always as random as they may seem.

Many RNGs are, in fact, Pseudo RNGs (PRNGs). Instead of producing random outputs, they are providing the results of a fixed equation. The output value results from running a starting value, often called a “seed,” through this equation. The output is then used as a new seed, and the process starts again. While the outcome isn’t random, it can certainly appear random to an outside observer.

For many applications, this is effective. True randomness is not required in every application. In a video game with random encounters, for example, there may only be a limited number of actions the game can take at any given time. A PRNG that provides values outside a given scope isn’t going to be of much use. When the stakes are low, technical requirements often match. However, the quality of a PRNG can vary dramatically. This can be an issue for applications with higher stakes, many people depending on them, or a variety of use cases.

Some PRNGs rely on simple equations which can repeat themselves after a short period of time. This repetition breeds predictability. Others can be influenced by outside factors. This leads to tampering. Additionally, many PRNGs do not provide a way to determine if the number provided is the intended value. This lack of verification opens another door to tampering and can lead to accusations by users that applications relying on these numbers are being manipulated by biased outputs.

While being able to verify that an apparently random number was the one intended by an RNG may seem silly, it is no laughing matter. The ethos of many blockchain systems is based on transparency and trustlessness. Not being able to confirm that a given number was truly randomly produced strikes at the very heart of these ideals. When the numbers are doing work, such as providing winnings in games or reinforcing security, not being able to prove that the numbers were not tampered with can seriously impact community confidence.

Additionally, not every PRNG is suited to every possible application. Some are designed for certain Web3 functions. These are not universally applicable.

True random number generators (TRNGs) compared to Pseudo RNGs (PRNGs). Source: Level Up Coding

The quest for true randomness

However, these systems also have failings. They are often highly centralized, which can again lead to tampering by anyone with access to the machine. True randomness often comes at a much higher price than services by a quality PRNG. Lastly, the centralization these devices rely on means that if anything goes wrong, there is system-wide downtime.

Decentralization and the imperative of reliability

Using an RNG that does not meet your application’s decentralization, verification, or security needs can be disastrous. As the collapse of Axie Infinity due to a security breach demonstrated, a technical failure can have major repercussions for even the best applications with the strongest user base. Given how important RNGs are to the applications that use them, the best one for the task at hand must be used.

The perfect RNG would be unpredictable, tamper-resistant, verifiable, decentralized, and continuously available. If you’re selecting an RNG, ask:

Does it provide sufficient randomness?Can the outputs be verified?Is it secure against tampering?Is it decentralized to avoid single point failures?

As blockchain developers continue to expand their vision, push the boundaries of their applications, and provide more and more opportunities for the public to engage with the technology, it is imperative that the best possible support for their applications be made available.

Felix Xu Crypto geek, early adopter, and NFT collector. Felix graduated from NYU Stern and founded two crypto projects, ARPA and Bella Protocol, among the global top 500 by market cap. Felix previously worked at Fosun Investment, Sackler family office, and Vertical Research in New York and Beijing. Felix loves sailing, kitesurfing and was featured in the Wall Street Journal and The New York Times for his NFT collection.

This article is for general information purposes and is not intended to be and should not be taken as legal or investment advice. The views, thoughts, and opinions expressed here are the author’s alone and do not necessarily reflect or represent the views and opinions of Cointelegraph.

[ad_2]

Source link

Leave A Reply

Your email address will not be published.

bitcoin
Bitcoin (BTC) $ 77,272.00
ethereum
Ethereum (ETH) $ 2,520.26
tether
Tether (USDT) $ 0.999862
bnb
BNB (BNB) $ 727.93
xrp
XRP (XRP) $ 1.37
usd-coin
USDC (USDC) $ 0.999911
solana
Solana (SOL) $ 101.92
tron
TRON (TRX) $ 0.339984
zcash
Zcash (ZEC) $ 1,127.32
staked-ether
Lido Staked Ether (STETH) $ 2,265.05
figure-heloc
Figure Heloc (FIGR_HELOC) $ 1.00
hyperliquid
Hyperliquid (HYPE) $ 79.33
dogecoin
Dogecoin (DOGE) $ 0.084939
rain
Rain (RAIN) $ 0.015737
monero
Monero (XMR) $ 540.87
usds
USDS (USDS) $ 0.999815
whitebit
WhiteBIT Coin (WBT) $ 80.26
wrapped-steth
Wrapped stETH (WSTETH) $ 2,779.67
chainlink
Chainlink (LINK) $ 11.52
leo-token
LEO Token (LEO) $ 9.06
wrapped-bitcoin
Wrapped Bitcoin (WBTC) $ 76,243.00
cardano
Cardano (ADA) $ 0.207729
binance-bridged-usdt-bnb-smart-chain
Binance Bridged USDT (BNB Smart Chain) (BSC-USD) $ 0.998762
stellar
Stellar (XLM) $ 0.180241
wrapped-beacon-eth
Wrapped Beacon ETH (WBETH) $ 2,466.93
ethena-usde
Ethena USDe (USDE) $ 0.999791
dai
Dai (DAI) $ 0.999914
bitcoin-cash
Bitcoin Cash (BCH) $ 225.22
wrapped-eeth
Wrapped eETH (WEETH) $ 2,465.31
usd1-wlfi
USD1 (USD1) $ 0.999692
litecoin
Litecoin (LTC) $ 53.69
susds
sUSDS (SUSDS) $ 1.08
uniswap
Uniswap (UNI) $ 6.38
canton-network
Canton (CC) $ 0.097517
the-open-network
Gram (prev. Toncoin) (GRAM) $ 1.37
coinbase-wrapped-btc
Coinbase Wrapped BTC (CBBTC) $ 76,366.00
global-dollar
Global Dollar (USDG) $ 0.999961
hedera-hashgraph
Hedera (HBAR) $ 0.074969
avalanche-2
Avalanche (AVAX) $ 7.41
weth
WETH (WETH) $ 2,268.37
shiba-inu
Shiba Inu (SHIB) $ 0.000005
near
NEAR Protocol (NEAR) $ 2.36
sui
Sui (SUI) $ 0.726014
usdt0
USDT0 (USDT0) $ 0.998824
crypto-com-chain
Cronos (CRO) $ 0.059508
paypal-usd
PayPal USD (PYUSD) $ 0.999837
blackrock-usd-institutional-digital-liquidity-fund
BlackRock USD Institutional Digital Liquidity Fund (BUIDL) $ 1.00
memecore
MemeCore (M) $ 1.19
tether-gold
Tether Gold (XAUT) $ 4,350.67
hashnote-usyc
Circle USYC (USYC) $ 1.14
Shares