Celebrating Six Years of Post-Quantum Security: The Journey of QRL

Read More

Last Month at QRL - September 2022

The official Public Devnet Launch of Zond with EVM Smart Contracts and Proof-of-Stake! A number of interesting ideas were presented at the first real-world QRL Hackathon in 2022, and the community was fantastic. The winning entry, QRLPay, won with being a simple, quick-to-deploy, lightweight QRL payment processor and woocommerce website that connects to your own QRL node

Table of Contents

Highlights

Zond Public Devnet Released!

Last month we were happy to release the QRL Zond public devnet, bringing post-quantum resistant Web3 and EVM compatible smart-contracts on top of a Proof-of-Stake consensus layer.

This development has built off of our years of experience and research in the blockchain development space and represents a shift to truly programmable and efficient post-quantum secure finance available to anybody. There is now the potential for on-chain escrow, as well as the provision of loans, insurance, mortgages, and various other improved financial instruments. Compatibility with Ethereum through Web3 and EVM means that the migration learning curve is small.

You can read our “Introducing a powerful post-quantum safe public devnet pre-release with Ethereum Web3 ecosystem compatibility” which covers many of the basics.

Our Zond Documentation is also continuously being fleshed out, as well.

The QRL Hackathon 2022

Our first in-person QRL Hackathon 2022 was broadly successful with many interesting entries and many more amazing community members!

QRLPay walked off with the first prize of 40,000 QRL which combines a simple, easily deployable lightweight QRL payment processor that connects to your own QRL node and a woocommerce website. This was spearheaded by a Discord member 0xFF, with runforest handling the presentation.

Other great entries includes a Mobile Wallet, PoS/Validator dashboard, and better support for the Raspberry Pi! More about these entries can be found in our QRL Hackathon 2022 entries blog.

Were you there, or did you have difficulty making it? Be sure to fill out our QRL Hackathon 2022 survey which will help guide us shortlisting our next hackathon location and activities!

While the event was organised by the team at QRL, it wouldn’t have been possible without the community members and contributors that joined us. We really look forward to all the future events together!

Quantum News

Changelog

theQRL/go-libp2p-qrl

Fix sk and pk check for libp2p dilithium.go + updated go-qrllib version

  • [0e98d] Fix sk and pk check for libp2p dilithium.go + updated go-qrllib version

Dilithium stores seed and recover the dilithium keys from seed stored in file

  • [38a54] Dilithium stores seed and recover the dilithium keys from seed stored in file

Updated go-qrllib version

  • [d16e8] Updated go-qrllib version

Migration from qrllib to go-qrllib

  • [d650c] Migration from qrllib to go-qrllib

theQRL/go-qrllib

Added prefix “0x” for GetHexSeed in XMSS

  • [9cb68] Added prefix “0x” for GetHexSeed in XMSS

Updated unit test and added 0x prefix in hex string

  • [c2770] Updated unit test and added 0x prefix in hex string

support to generate js library for dilithium + added prefix 0x for all hex string

  • [434a9] gopherjs support to generate js library for dilithium
  • [85256] Added prefix 0x for all hex string and relevant support as param

Added Signature type check in IsValidXMSSAddress + Unit Tests

  • [131aa] Added Signature type check in IsValidXMSSAddress + Unit Tests

Added more unit tests for Dilithium

  • [ceda7] Added more unit tests for Dilithium

Added functions for Dilithium Wallet + Unit Tests + Refactoring

  • [807ca] Added functions for Dilithium Wallet + Unit Tests + Refactoring

Updated signature type and address format for both xmss and dilithium

  • [83b13] Updated signature type and address format for both xmss and dilithium

Fix: SignatureType calculation in descriptor

  • [f9670] Fix: SignatureType calculation in descriptor

Added Dilithium address support with Unit Tests

  • [4bb87] Added Dilithium address support with Unit Tests

QVM compatible XMSS Address format

  • [7c71e] QVM compatible XMSS Address format

Fix: Replacing math/rand to crypto/rand

  • [7279d] Fix: Replacing math/rand to crypto/rand

Replaced hard coded value to constant value

  • [a0a47] Replaced hard coded value to constant value

Simplified XMSS Verify, added IsValidXMSSAddress function + Unit Tests

  • [a0de4] Simplified XMSS Verify, added IsValidXMSSAddress function + Unit Tests

Code cleanup

Added GetExtendedSeed, GetHexSeed, GetMnemonic functions + Unit Tests

  • [26c16] Added GetExtendedSeed, GetHexSeed, GetMnemonic functions + Unit Tests

Added Unit Tests for MnemonicToBin and BinToMnemonic

  • [75fdf] Added Unit Tests for MnemonicToBin and BinToMnemonic

Added BinToMnemonic and MnemonicToBin functions

  • [da117] Added BinToMnemonic and MnemonicToBin functions

Added NewXMSSFromHeight function

  • [5811d] Added NewXMSSFromHeight function

Go implementation of Dilithium with Unit Tests

  • [75c30] Go implementation of Dilithium with Unit Tests

Changed function names

  • [2039e] Changed function names

Go Implementation of XMSS Fast with Unit Test

  • [8af76] Added go.mod
  • [c3a90] Go Implementation of XMSS Fast with Unit Test

theQRL/qrllib

Fixed: Dilithium extract_message & extract_signature

  • [5b7e5] Fixed: Dilithium extract_message & extract_signature
  • [0a902] Fix Go & Python Unit Tests
  • [df580] Fix: Python Unit Tests
  • [7e062] Pin to a specific (working)] node version in CI build_emscripten job
  • [3bba5] Merge pull request #1 from jplomas/master

Pin to a specific (working)] node version in CI build_emscripten job

theQRL/qryptonight

Modification for Raspberry Pi

  • [1222b] Update CMakeLists.txt
  • [96d06] Update qryptonight.cpp
  • [3b987] Update qryptonight.h
  • [890d1] Update .gitmodules
  • [f1e34] Update .gitmodules
  • [5c5fe] Update .gitmodules
  • [15c57] Add py-cryptonight submodule
  • [b168b] Add py-cryptonight submodule
  • [2986b] Update qryptonight.h
  • [693f8] Replace submodule

theQRL/qrandomx

theQRL/theqrl.org

Fix API links on homepage

  • [79a48] Fix API links on homepage
  • [ec2ae] Merge branch ’theQRL:main’ into main

Adjustments / 0xFF

  • [0c159] Adjustments / 0xFF

Blog: QRL Hackathon 2022 Entries

  • [404ab] Blog: QRL Hackathon 2022 Entries

team tweak

  • [b8518] JP core -> advisor
  • [c93bb] Merge branch ’theQRL:main’ into main

New blog: Zond public devnet pre-release

  • [1a46e] Fix to last month blog
  • [e86b8] New blog: Zond public devnet pre-release
  • [52a80] Update features

Add last month at QRL - August 2022 blog

  • [44731] Improve monthly blog initialisation
  • [f435a] New GitHub updates generator
  • [60f41] Update quantum news file
  • [e8d45] Add last month at QRL - August 2022 blog

Add rewards section to the QRL Hackathon 2022 events page

  • [e57a5] Rule clarification
  • [38817] Add rewards section to the QRL Hackathon 2022 events page

QRL Hackathon 2022 Begins!

  • [8c6ab] QRL Hackathon 2022 Begins!
  • [4f67c] Date adjustments
  • [877f7] Improved userflow + time

Add last month in QRL blog for July 2022

  • [c9fb1] Add last month in QRL blog for July
  • [70944] Update quantum news data file + shortcode

Add Catalyx exchange

  • [52554] Add Catalyx exchange

Remove Bittrex status message

  • [297be] Remove Bittrex status message

Add thank you landing page for registration form.

  • [e841a] Add thank you landing page for registration form.
  • [aa44c] Fix discord link

New developer hire blog: Welcome Prajjawal!

  • [0c362] New Blog: What exactly is the quantum threat to Bitcoin?
  • [13542] Summary adjustment
  • [9deed] Merge remote-tracking branch ‘upstream/main’
  • [93e7f] New blog: Welcome Prajjawal
  • [73f51] Flag “what exactly is the quantum threat to bitcoin” as draft
  • [d0adf] Summary fix.
  • [7e0c8] Other minor fixes

New feat: Add under maintenance status indicator to market

  • [faec6] New feat: Add under maintenance status indicator to market

New QRL guest blog: Quickly setup nodes with QRL Cannon

  • [21b3e] New QRL guest blog: Quickly setup nodes with QRL Cannon
  • [78d64] Hackathon edit

New landing page: QRL Hackathon 2022

  • [496be] Add event page structure
  • [cc3c4] Resolve preview summary encoding issues
  • [4fd7d] Correction for last month blog

Thanks to runforest for highlighting

  • [268f3] Re-add press category
  • [f69c1] Add QRL hackathon 2022 content
  • [c0881] Change link to hackathon landing page
  • [74505] Conflict fix
  • [ac55b] Add typeform to script-src inline policy.
  • [884fb] Improved CORS headers
  • [4f434] CORS
  • [9ee29] CORS…
  • [f771a] CSP …
  • [ab2c1] CSP …
  • [c274d] CSP v9 final v1

Add new exchange: dex-trade

  • [1cfc4] Correction for June’s last month at QRL blog
  • [f8592] Add new exchange: dex-trade

Add last month at qrl blog for June

  • [83c42] Add quantum news shortcode
  • [325f0] Add quantum news init data
  • [d402a] Add last month at qrl blog for June

theQRL/web3

Changes in transaction confirmation blocks

  • [f7aa0] changed confirmation blocks
  • [7fab0] _ethAccount -> _zondAccount and _ethCall -> _zondCall

changes in web3-zond-ens and web3-core-requestmanager

  • [8498e] changes in web3-zond-ens and web3-core-requestmanager

ZondWeb3->Web3

theQRL/zond

Allowing all CORS

  • [44835] Allowing all CORS

EstimateGas use the latestBlockNumber if blockNumber not provided as a parameter

  • [5cb49] EstimateGas use the latestBlockNumber if blockNumber not provided as a parameter

Fix: delPeer now correctly reduces node’s IP count on disconnection

  • [b724b] Fix: delPeer now correctly reduces node’s IP count on disconnection

Fix: return false when otsbitfield length is 0 while checking ots index

  • [2b639] Fix: return false when otsbitfield length is 0 while checking ots index

Fix: IsUsedOTSIndex return false if otsBitfield is not initialized for account

  • [95d08] Fix: IsUsedOTSIndex return false if otsBitfield is not initialized for account

ValidateTransferTxn returns error for Invalid XMSS OTS Index instead of log

  • [a8ec8] ValidateTransferTxn returns error for Invalid XMSS OTS Index instead of log

Fix: Removed command to create devnet directory

  • [c76a8] Fix: Removed command to create devnet directory

Removed command to create devnet directory as it already exists.

Adding devnet genesis and prestate files

  • [c8757] Adding devnet genesis and prestate files

Fix: Condition to check de-stake transaction

  • [fab6b] Fix: Condition to check de-stake transaction

Fix: Extracting IP for redundant connection check per IP

  • [2d41a] Fix: Extracting IP for redundant connection check per IP

fix check expected proposer address

  • [25068] fix check expected proposer address

  • fix: foundation address value checked against itself, rather than the decoded pre-state block proposer address

  • cleanup: removed debug print

Fix: Handling block attestation received from other nodes

  • [4dc8d] Fix: Handling block attestation received from other nodes

Fix: Stake balance validation for coinbase & attest txn

  • [4345c] Fix: Stake balance validation for coinbase & attest txn

Fix: Protocol transaction validation where stake amount is not updated while validating first block of an epoch

  • [fb635] Fix: Protocol transaction validation where stake amount is not updated while validating first block of an epoch

Added GetStakeBalance API to get the stake balance and pending stake balance

  • [1e89e] Added GetStakeBalance API to get the stake balance and pending stake balance

Fix: transaction pool checks ots index only for Valid XMSS address

  • [5a8b2] Fix: transaction pool checks ots index only for Valid XMSS address

Fix: Stake Validators update + GetValidators API

  • [d89c9] Fix: Stake Validators update + GetValidators API

Replaced hardcoded value 200 with the BlocksPerEpoch in config

  • [b77c1] Replaced hardcoded value 200 with the BlocksPerEpoch in config

Replaced hardcoded value 100 with BlocksPerEpoch in config

  • [24452] Replaced hardcoded value 100 with BlocksPerEpoch in config

Fix GetMaxPossibleSlotNumber based on timestamp

  • [3e2ca] Fix GetMaxPossibleSlotNumber based on timestamp

Added code to reconnect with the bootstrap nodes on disconnection

  • [eefaf] Added code to reconnect with the bootstrap nodes on disconnection

Fix: Slot Number in zond_getValidators API

  • [f4d6d] Fix: Slot Number in zond_getValidators API

Added zond_getValidators api to return the validators by slotNumber for current epoch

  • [19739] Added zond_getValidators api to return the validators by slotNumber for current epoch

Fix: stake tx API & CLI, added code to remove dilithium keys while de-staking

  • [574bb] Fix: stake tx API & CLI, added code to remove dilithium keys while destaking
  • [0ca6b] Merge remote-tracking branch ‘origin/master’

Fix: blockProposerDilithium address check

  • [7a158] Fix: blockProposerDilithium address check
  • [aa1c9] Merge remote-tracking branch ‘refs/remotes/origin/master’

Updated GetTransactionMetaDataByHash return values + implementation of blockHash function

  • [929d7] blockHash from blocknumber added
  • [824f9] Merge pull request #2 from sarkarabhijeet0512/master

blockHash from blocknumber added

  • [8a9ae] Updated GetTransactionMetaDataByHash return values

Fix: DeleteNonceData derive address from both Dilithium and XMSS PK

  • [14c8e] Fix: DeleteNonceData derive address from both Dilithium and XMSS PK

Added code to call UpdateFinalizedEpoch after the first block is added in the new epoch

  • [02b5d] Added code to call UpdateFinalizedEpoch after the first block is added in the new epoch

Fix: Epoch finalization

  • [ce170] Fix: Epoch finalization

Fix: Broadcast transaction in CLI prints error instead of panic

  • [a4e2c] Fix: Broadcast transaction in CLI prints error instead of panic
  • [408af] Merge remote-tracking branch ‘origin/master’

theQRL/zond-contract-example

Refactoring + updated comments

  • [8ea3c] Refactoring + updated comments

1-deploy.js now shows the expected contract address with checksum + refactoring

  • [3185b] 1-deploy.js now shows the expected contract address with checksum + refactoring

Removed unused imports + libraries

  • [c0dcd] Removed unused imports + libraries

Replaced hardcoded gas with the estimateGas API + refactoring

  • [f8788] Replaced hardcoded gas with the estimateGas API + refactoring

Smart contract guide minor improvements

  • [2edec] Smart contract guide minor improvements
  • [463b4] Merge upstream
  • [65dc3] Merge upstream changes

theQRL/zond-documentation

fix: Update stake command to include –dilithium-file flag

  • [25814] fix: Update stake command to include –dilithium-file flag and fix old reference to ~/.qrl directory

fix: github link to main theqrl github account page

  • [f05ea] fix: github link to main theqrl github account page

fix: Github edit links to correct URL

  • [001b4] fix: Github edit links to correct URL

fix: link rot corrections

  • [ec842] fix: link rot corrections

Adding issue templates to repo

Update Zond install instructions

  • [8ae71] fix: removed –output-file flag from staking transaction, and add example command
  • [57ca6] fix: error in staking command flag removed from command
  • [2a802] fix: Updating install instructions to be inline with current zond build requirements
  • [1b6fb] fix: cleanup

Jack Matier

WRITTEN BY

Jack Matier