Identity protocol observation



Summary:

The location of a transaction in the blockchain can be encoded with n=log2(h)+log2(t) bits, where h is the block height and t is the number of transactions in the block. A CVC phoneme encodes ~10.7 bits, so a transaction today can be located in the blockchain with 3 of these. Jeff Garzik is working on an identity protocol that will link a public key fingerprint to a miner sacrifice transaction. This tx could in turn be uniquely described with a short name as above. Lightweight clients check the validity of a sacrifice tx by verifying its merkle path. The ordering of the hashes at each level encodes 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. Both c and k can be kept if c is pronounced 'ch', giving ~10.9 bits per phoneme. An extra phoneme 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. This would give the user 32 random names per sacrifice to choose from and 38 bits to encode its location in the blockchain, which is enough for pretty large blocks.There are several sample 4 phoneme names provided. They're not that bad, especially if you get to pick a decent one from a bunch. The author also provides sources of inspiration: urbit.org and https://en.bitcoin.it/wiki/Identity_protocol_v1. The choices for consonants and vowels were somewhat restricted, with q disallowed for obvious reasons and k because it conflicts with c, and c looks much softer and less like Klingon. H is allowed for the first consonant, but not the second, and x is allowed for the last one, but not the first one. Y is a vowel, but not a consonant.


Updated on: 2023-06-07T17:23:18.976741+00:00