Non-Arbitrary Spaces
  • Introduction
  • Definitions
  • A simple NAS
  • More useful NASs
  • Blockchain History in a NAS
  • Application of NATs to NASs
  • Recording NASs on the blockchain
  • Further thoughts
  • Conclusion
  • References + Resources
  • Contact + Socials
Powered by GitBook
On this page
  • Adding Elevation
  • Adding Interest

More useful NASs

PreviousA simple NASNextBlockchain History in a NAS

Last updated 1 year ago

Adding Elevation

Choosing a width of 2016 produces a usable area, however it is currently flat, which isn’t too useful.

To fix this, we need to use some non-arbitrary input to determine the elevation of each block.

As we’re trying to make elevation changes larger in scale than individual blocks, transaction count is a good choice. This number is defined per block, however it is typically consistent across many blocks, changing with slower moving variables such as network adoption and market sentiment.

To define elevation, we can use data on the blockchain as an input. This should be chosen to create some realistic terrain. We could use the number of transaction in a block to determine the elevation of that block. This results in the following NAS:.

Already, this has some semblance of a landscape, however the data is noisy and the colors are generic.

This can be fixed by averaging the data and applying a more natural color gradient. The figure below uses the same data from Figure 3, while adding a 5x5 block linear average, and a color gradient determined by elevation.

The average function is behaves as follows:

  • The average function uses on previously mined blocks as inputs, ensure the function can be used with a newly mined block.

  • It wraps around in the "Block Since Retarget" axis, allowing this NAS to be wrapped to a cylinder or sphere seamlessly.

  • For the first four retarget periods, where there are no blocks to pull data from, so the function is padded with blocks of transaction count 1 (since the minimum transaction count is 1, the block reward transaction).

Adding Interest

This still could be improved though; the land is quite consistent in the y direction, and ends abruptly on each side at the retarget blocks. As the blockchain continues to be formed, it will print a long rectangle of fairly homogenous land which is going to get monotonous.

We can add variations in each direction by weighting the transaction count of each block according to it's location in the space.

To continue with the non-arbitrary theme, we can use blocks since retarget and blocks since halving as the weighting references. To create a more organic world, a Bell curve (as shown in Figure 4 below) can be used so that if a block is further from these two events, transaction count will be weighted more, resulting in a higher elevation.

Applying this curves in to both axes results in the following NAS:

The effect is that an island is formed for each halving period. Assuming a 100 x 100m area for each block, the largest island forms a landmass over 200 km long.

Figure 3: Transaction count as elevation
Figure 4: NAS determined by average transaction count
Figure 5 : Bell curve weighting
Figure 6: A NAS weighted for retarget and halving blocks.