Overview
LifeHash is a method of hash visualization based on Conway’s Game of Life that creates beautiful icons that are deterministic, yet distinct and unique given the input data. It is part of the OIB.
Why is LifeHash Important?
Users need to know what seeds or private keys they are using when signing. They also need to know what addresses they are sending assets to. Unfortunately, the actual seed, key, or address, which is just a big number, isn’t very recognizable by the human brain.
That’s where LifeHashes come in: they create a visual representation for that seed, key, or address that a human will be able to easily recognize. This is particularly important as LifeHash develops as an interoperable standard: a user can see that their digital object has successfully transferred from one location to another. LifeHashes can also be used to prevent spoofing as an out-of-band confirmation, and will become inherently recognizable to users with repetition.
Lifehash can also be a crucial element in an Object Identity Block (OIB), which uses multiple cues to help a user identify digital data.
How Does LifeHash Work?
The basic concept is to take a SHA-256 hash of the input data (which can be any data including another hash) and then use the 256-bit digest as a 16x16 pixel “seed” for running the cellular automata known as Conway’s Game of Life.
After the pattern becomes stable (or begins repeating) the resulting history is used to compile a grayscale image of all the states from the first to last generation. Using Game of Life provides visual structure to the resulting image, even though it was seeded with entropy.
Some bits of the initial hash are then used to deterministically apply symmetry and color to the icon to add beauty and quick recognizability.
Please note that LifeHash is not a cryptographic hash. More research and analysis would be needed before anything could be said about its cryptographic characteristics. Please see the FAQ for more information.
Videos
LifeHash Overview:
|
LifeHash in Technology Overview:
|
Libraries
LifeHash Libraries
Language | Repo | Contributor | Status |
---|---|---|---|
C/C++ | bc-lifehash | Blockchain Commons | |
Dart | dart-lifehash | Dominik Spicher | |
Python | bc-lifehash-python | CrossBar | |
Swift | LifeHash | Blockchain Commons | |
Java | Toucan | Craig Raw | |
WASM | bc-lifehash | Blockchain Commons |
Links
Intro:
Developer Resources:
Developer Reference Apps:
- lifehash-cli (CLI implementation)
- lifehash.info (web implementation)
- LifeHashTool (Swift CLI implementation)
Use Cases: