Author: Mike Hearn 2013-10-03 14:00:16
Published on: 2013-10-03T14:00:16+00:00
The identity protocol Jeff Garzik is working on will link a public key fingerprint to a miner sacrifice transaction. The location of a transaction in the blockchain can be encoded in n=log2(h)+log2(t) bits, where h is the block height, and t is the number of transactions in the block. Currently, h~250,000 and t~500, so n~27. A CVC phoneme encodes ~10.7 bits *, so a transaction today can be located in the blockchain with 3 of these, e.g. reb-mizvig. This is reasonably short, readable, and memorable. The identity protocol aims to associate this name with the public key, which becomes secure once the tx is sufficiently buried in the blockchain. Some more random names have been suggested by Daniel Lidstrom. Both c and k can be kept if c is pronounced 'ch,' giving ~10.9 bits per phoneme. An extra phoneme (4 encode 43 bits total) gives room to put extra information into the name, e.g., the first 5 bits could be input as the key to a PRP that permutes the last 38 back to a standard encoding of a tx location. In the identity protocol, lightweight clients check the validity of a sacrifice tx by checking that its merkle path is valid. But this path encodes, via the ordering of the hashes at each level, the location of the transaction in the block, so the lightweight client can verify the sacrifice tx's short name using only the information he already has.It is believed that any competent implementation of such an identity scheme would not involve end users directly handling randomized nonsense words. The sacrifice is expected to be made with a GUI tool and loaded into a browser extension. Sources of inspiration for this identity protocol include urbit.org and the Identity Protocol v1.
Updated on: 2023-06-07T17:22:28.062052+00:00