How to use Cryptographic Keys for User Generated Content

Nabi
B2Expand
Published in
3 min readMay 10, 2019

Signing securely and generating content in blockchain video games and Apps.

Introduction: What is UGC?

User-Generated Content refers to users creating their content which is later shared with the community. When it comes to working with UGC for your product, there are a few questions to be answered first. How should we structure the content creation process for users? Are map and asset editors a sensible choice? What should be the economics, the monetisation?

Different types of UGC

Freestyle generation

The most obvious way of adding UGC element in your product is to let users design new assets using the same tools as art teams usually do. Users then provide their creation in a predetermined file format by the developer. In a 3D game example, users may upload their assets’ 3D models as.OBJ files or a similar file format.

While all the freedom given to users is excellent, it doesn’t come without its fair share of issues. For instance, in a decentralised environment, it’s difficult to prevent illegal or adult content to be shared as assets for a game, easily missed out by oversight.

Another issue is that UGC can be overwhelming for those who do not have expertise on different existing tools (i.e., Maya, 3Dmax, Substance…). We should all set out to make it easier and less intimidating for everyone.

Procedurally User-Driven Generation

Procedural generation defines another way of creating assets. The user inputs a certain number of parameters to an algorithm, built by the developer. The algorithm then generates an asset. The developer defines the settings, by impacting the texture, shape, size. These settings modify the generated asset accordingly.

Here is a 3D model of a vase that was created by an algorithm using Unity.

Changing the input settings modifies the generated object:

This type of content creation still has limitations. A user cannot prove he’s the creator of the asset; anyone can copy the settings.

Also, the more sophisticated assets are, the harder it gets to write the algorithm.

Procedurally-Generated Cryptographic Assets

We set out to solve those issues. We suggest the user generates a pair of a public and private key. The public key generates a unique set of settings in a determinist manner. So the creative process is determined by an algorithm which acts according to the public key.

So, Where is the fun then? Where is the creative part of a public key which determines the visual of the asset?

Well, users have plenty of opportunities as it’s possible to generate multiple pairs of public and private keys. The fun and the creative process is in selecting the best assets and choose to share with the community.

Procedurally-generated cryptographic assets bring many benefits. The asset creator can prove he owns the asset with the private key. The latter brings proof that the creator owns the public key used to generate the asset.

The asset is signed, immutable, and copy protected.

However, this does not solve the fact that more evolved and complex assets are harder to create with this mechanism.

Asset composition

Finally, we can combine different types of UGC processes to craft a composed asset. For example, the following asset is composed of the procedurally generated vase shown previously, and a freestyle generated base.

Conclusion

Asset composition could go further. Through the use of HDWallets, a user can sign with one master key an asset composed of multiple procedurally generated cryptographic assets. Each component is picked from the list of public keys generated by that HD Wallet.

Finally, we think UGC can lead to novelty mechanics to build community games. If you want to include UGC in your game or application, please let us know how you imagine its integration!

--

--