HIVE Quantum Resistance updates: Community bee-chat added, proposal at 11%, work started on low-level C++ library.

A few short updates on the HIVE quantum-resistance community and my HIVE hash-based-signatures proposal.

Community bee-chat

The community bee-chat channel is now active and added to the peakd community page. Kudus to @aggroed and @reazuliqbal for creating this amazing feature. I hope some of you will join me on this channel soon to discuss things like hash-based-signatures and future market-separation measures for HIVE.

Hash-based-signatures

As you might know, I created this proposal for making a starting work at a foundation for hash-based-signatures for HIVE. The aproval level for this proposal is currently at 11%.

If I don't get my proposal funded, I'll continue on working on the low level libs when I have some spare time. If the proposal does get funding, I'll be shifting focus and use 4 to 6 hours a week, structurally, to work on both the low-level and high-level libs, with a focus on dimensioning things just right for typical and outlier HIVE usage.

So if you feel this work is important and deserves my structural time resources, please press the Support Now button on my proposal if you haven't done so already.

Work on low-level C++ lib started.

I already started experimenting and coding on this project, and there is some dirty working low-level Python code and a start at and some partially working C++ code. I'm working on the low-level C++ code right now, and will be refactoring Python to match the C++ code more closely once the C++ and Python code both work and are interoperable.

An idea of how the usage of the low-level C++ lib will work.

#include 
#include 

int main(int args, char **argv) {
    static const int HASH_LENGTH = 24;
    static const int WOTS_BITS = 12;
    static const int MERLKE_TREE_DEPTH = 10;
    static const bool USE_MULTI_THREADING = False;
    auto skey = spqsigs::signing_key<HASH_LENGTH, WOTS_BITS, MERLKE_TREE_DEPTH, USE_MULTI_THREADING >();
    std::string msg("This is just a test.");
    std::string signature = skey.sign_message(msg);
    ...
}

The above code creates a signing key using :

  • 24 bytes keyed BLAKE2b hashes as hashing primitive
  • 12 bits per WOTS one-time-signature (resulting in 4k hashes long double WOTS chains)
  • A 10 levels deep Merkle-tree (resulting in a signing key that can sign up to 1k transactions)

The USE_MULTI_THREADING parameter currently isn't used yet in the implementation. It should be, because running the above code will take more than a minute to create the key, and the higher-level library will likely use a multi-level setup that could double or triple these.

Key validation in C++ hasn't been implemented yet and neither has signing key serialization and serialization. And as for the Python code, the current code is dirty, not const-correct, and
lacking other important code quality attributes that I will need to be working on.

image.png

H2
H3
H4
3 columns
2 columns
1 column
4 Comments
Ecency