- Aug 28, 2015
- 517
- 1,679
Hi,
Some of you may know me from posting here and on bitcointalk in recent years. I am huge bitcoin fan and believe that in the coming years a supranational scalable cryptocurrency will emerge as the payment medium for the internet. Hopefully this will be bitcoin . I have some current concerns about bitcoin scaling and also over the longer term the security of bitcoin against a non-linear quantum computing advance by an adversary. (ECDSA is vulnerable to quantum computing.) I think it would be valuable to experiment with some quantum resistant signature schemes in the context of a blockchain ledger now rather than reacting to future events and a lot of fun to implement them.
I have created a python-based blockchain ledger project which utilises quantum resistant one-time hash-based cryptographic signatures instead of ECDSA as part of a merkle tree signature scheme(MSS). The protocol currently supports Lamport-Diffie(LDOTS) and Winternitz one-time signatures(WOTS) with protocol-level disabling of public key re-use. In the current version the merkle tree signature scheme allows each address to sign a finite number of transactions (~200 computationally easily enough). Using such a signature scheme increases transaction sizes quite a lot (~5kb for WOTS-MSS, larger for LDOTS-MSS) and necessitates the blockchain to record 'state' (store the used public key) to prevent transaction replay attempts.
Transactions and blocks are transmitted between nodes in JSON. The asynchronous node functions are handled by twisted-internet in the node. The 'state' of the chain is maintained in a levelDB.
Currently the node runs with mining disabled. Interaction with the node is through a local telnet session (telnet localhost 2000) allowing a number of wallet, node and mining and blockchain searching functions to be accessed.
The project is in alpha stage with a prototype, proof-of-concept, pre-testnet node to be found at:
http://github.com/surg0r/QRL
The subreddit http://www.reddit.com/r/qrl was gifted to me by a friendly person.
But I will use this thread to update the forum with progress as the codebase and project develops.
So far I have a local node and two linux vps boxes providing a testnet, with a network which mines for blocks (using a placeholder sha256 POW function) , processes transactions and allows basic wallet functions, blockchain searching functionality etc..
Outstanding major code updates todo include:
- improved node block handling to follow longest chain and reorg if required.
- switch currency unit handling from float to big integer.
- fully implement human readable string substitution for addresses (partially coded)
- recode the place holder POW algorithm to function properly, implement on the fly difficulty adjustment
- implement block reward, emission algorithm and tx fee handling..
Future aims:
- create a formal release which is stable for testnet purposes.
- implement XMSS scheme to enable unlimited tx signs with each address
Anyone who wants to get involved let me know..
Inca/pete
Some of you may know me from posting here and on bitcointalk in recent years. I am huge bitcoin fan and believe that in the coming years a supranational scalable cryptocurrency will emerge as the payment medium for the internet. Hopefully this will be bitcoin . I have some current concerns about bitcoin scaling and also over the longer term the security of bitcoin against a non-linear quantum computing advance by an adversary. (ECDSA is vulnerable to quantum computing.) I think it would be valuable to experiment with some quantum resistant signature schemes in the context of a blockchain ledger now rather than reacting to future events and a lot of fun to implement them.
I have created a python-based blockchain ledger project which utilises quantum resistant one-time hash-based cryptographic signatures instead of ECDSA as part of a merkle tree signature scheme(MSS). The protocol currently supports Lamport-Diffie(LDOTS) and Winternitz one-time signatures(WOTS) with protocol-level disabling of public key re-use. In the current version the merkle tree signature scheme allows each address to sign a finite number of transactions (~200 computationally easily enough). Using such a signature scheme increases transaction sizes quite a lot (~5kb for WOTS-MSS, larger for LDOTS-MSS) and necessitates the blockchain to record 'state' (store the used public key) to prevent transaction replay attempts.
Transactions and blocks are transmitted between nodes in JSON. The asynchronous node functions are handled by twisted-internet in the node. The 'state' of the chain is maintained in a levelDB.
Currently the node runs with mining disabled. Interaction with the node is through a local telnet session (telnet localhost 2000) allowing a number of wallet, node and mining and blockchain searching functions to be accessed.
The project is in alpha stage with a prototype, proof-of-concept, pre-testnet node to be found at:
http://github.com/surg0r/QRL
The subreddit http://www.reddit.com/r/qrl was gifted to me by a friendly person.
But I will use this thread to update the forum with progress as the codebase and project develops.
So far I have a local node and two linux vps boxes providing a testnet, with a network which mines for blocks (using a placeholder sha256 POW function) , processes transactions and allows basic wallet functions, blockchain searching functionality etc..
Outstanding major code updates todo include:
- improved node block handling to follow longest chain and reorg if required.
- switch currency unit handling from float to big integer.
- fully implement human readable string substitution for addresses (partially coded)
- recode the place holder POW algorithm to function properly, implement on the fly difficulty adjustment
- implement block reward, emission algorithm and tx fee handling..
Future aims:
- create a formal release which is stable for testnet purposes.
- implement XMSS scheme to enable unlimited tx signs with each address
Anyone who wants to get involved let me know..
Inca/pete
Last edited: