Teikhos, a signature scheme for public ledgers
symmetros·@johan-nygren·
0.000 HBDTeikhos, a signature scheme for public ledgers
An idea for a public ledger with a combination of symmetric and asymmetric cryptography, hidden one-time use public keys, and disposable public-private key pairs. Each transaction is authenticated with a new set of keys, that are kept secret until the transaction is made, and at that time relayed directly to the miners. The set of keys for each transaction, one-time use only, are a public-private key pair, a secret _d_, and a symmetric key that is the same as the public key. # Authentication of transactions A secret _d_ is signed with a one-way function _f_, using a public-private key pair, resulting in the signed message _s_. The signature _s_ is then encrypted with a symmetric key, the public key of the public-private key pair that was used to authenticate _d_, resulting in the ciphertext c. The ciphertext _c_ is included in the transaction, and becomes a proof of the next public key. In this signature scheme, to sign a transaction, the plaintext _d_ as well as the public key that corresponds to the signature of _d_ is revealed and made public, verified by the miners, and a signature of the transaction itself is authenticated using that public key. # Address registry separate from signatures and authentication The public-private key pairs are disposable, and only used to sign and authenticate transactions, while the address space uses a separate standard similar to the Ethereum Name Service (ENS). # Computational cost to brute-force In this signature scheme, the resistance to brute force relies mainly on symmetric cryptography, while the authentication relies mainly on asymmetric cryptography. The best of two world. To brute force, an attacker can run through all possible combinations to find the symmetric key that has encrypted _s_ to _c_, and would still lack _d_ that is needed to verify _s_ to the public key (that is used as the symmetric key. ) # A signature scheme for public ledgers The secret _d_ is signed with a one-way function _f_, using a public-private key pair, resulting in a signature _s_, https://i.imgur.com/JM1h0C8.gif, and _s_ is encrypted with the public key using symmetric cryptography, resulting in the proof _c_. To authenticate a transaction, _d_ and the public key are revealed to the miners, they verify the proof _c_, and the signature of the transaction. A new set of keys have been chosen prior to each transaction, and a new proof _c_ is included in the transaction, to be authenticated the next transaction. The keys are one-time use only. To brute force, an attacker can run through all possible combinations to find the symmetric key that has encrypted _s_ to _c_, and would still lack _d_ that is needed to verify _s_ to the public key (that is used as the symmetric key. )