Qtum Mainnet Results Dec 11–17

L’horloge fleurie de Genève, small wallet winners, one Qtum leap for mankind

Here is the weekly chart review of Qtum Mainnet performance, with analysis of winning wallet sizes, a New Network Weight calculation (21.4 million), a new annual return chart, and an educational feature on passphrases with a passphrase guessing script.

I am a community member and independent researcher, not affiliated with the Qtum Team, but they did send me some cool stickers (thanks Brett).

Charts and Graphs

Data sources for this review of the Qtum Mainnet performance come from the Qtum Explorer, the blockchain, and logging from the qtumd server application.

Unique Reward Addresses

Unique addresses per day peaked up to 272 on December 17. For the entire week, there were 901 unique addresses, vs. 885 last week, perhaps showing the stabilization of large wallet growth.

Wallets winning multiple blocks seems to have stabilized, we may be seeing a decline of big new wallets joining the network.

Active Transactions per Day

The number of transactions per day saw good growth this week, and soon may pass the all-time high established on October 20. Active transactions reports transactions for coins and contracts above the baseline two transactions for each block (the coinbase and coinstake transactions). You can observe transaction peaks for the last two Fridays, it could be people want to get their transactions and tokens sent before the weekend.

You can also see the transaction chart at QTUM Explorer.io

Block Spacing Variation

From December 11 to December 17 there were 3 blocks with more than 20-minute spacing (vs. 2 last week), with the greatest spacing for block 62,606 at 28:46. Average block time is holding steady around 144 seconds. Note the target block spacing for Qtum is 128 seconds, which would give 675 blocks per day vs. the approximately 600 currently seen on Mainnet.

Network Weight

I was able to track some big wallets which held their balances constant through the week, allowing a calculation of the “Big Five Network Weight”. This calculation for network weight considers the block rewards won by this small group (with big balances) to calculate the network weight. The Big Five group won 1,003 block rewards, or 23.9% of the blocks during the past week, with a balance of 4.914 million, giving a network weight of:

In addition, there was enough stability over the past month to derive a “New Network Weight”, which is daily calculation based on a 10-day exponential moving average of blocks won and known balances for these big wallets, and here is that chart:

You can see there is still variation in this network weight calculation (due to the SHA-256 hash algorithm randomness), but I think it is much closer to the truth than our old friend the wallet network weight calculation, which was under 10 million today. The New Network Weight calculation for December 17 is 21.4 million. I believe this number is solid enough to permit an update of the annual return chart:

Given 600 blocks per day, the network weight of 21.4 million gives an annual return of 4.1%.

Block Reward Winners

Since there may be some new people reading these reports, I will reprise a topic from a month ago: a review of the wallet sizes winning block rewards for the week. The charts above give an indication of big vs. smaller wallets, but doing some screen scraping with a macro tool (described in a previous report) I was able to capture the balance of all the wallets winning block rewards from December 10 to December 16.

During this period of 4,208 blocks, there were 861 unique addresses for block reward winners, because the bigger wallets will win multiple awards per day. Mid-sized wallets may win several blocks per day, and smaller wallets may win a single block reward during the week. As you know, block rewards are given according to a completely random process with the probability of winning proportional to the weight of the wallet (the total number of mature coins staking for that wallet).

For this time period, the median (middle) wallet size was 4,028 coins, and the average was 23,000 coins.

The distribution of wallet winners was:

There were some coins moving around, and there were 8 wallets that had zero balances by the time I checked them.

For this next section keep in mind that for a wallet weight of 100 coins and a network weight of 20 million, the expected time to a block reward is about 300 days. There are many questions about this in the community, and questions about whether it is worth staking a few coins. I wanted to show the 7 wallet winners under 100 QTUM for this period and give a special shout-out to number 4 on the list below WHO SCORED TWO BLOCK REWARDS IN 20 DAYS WITH A WEIGHT OF 23 COINS.

Here the Wallet Weight gives the weight for these wallets when they won the block reward and the Actual Time to Reward is given by the transaction history using Qtum Explorer. I’m not making up these results, they’re on the blockchain for all time, or until that ball of fire thing.


Passphrases: how much you wanna risk?

For this week’s educational feature, we look at passphrases and build a passphrase guessing Python script, drawing inspiration from an appeal for help on the subreddit — buddy, I hope you can get your wallet unlocked.

Recently the advice on passwords was determined by NIST (USA National Institute of Standards and Technology) to be incorrect. That advice from many years ago was to make a password by substituting characters in a word (“Security” would become “S3cur1ty”) and to change this password every 90 days. Much better is a memorable passphrase of sufficient length, such as a modified song lyric.

Photo credit: Christopher Johnson globalite on Flickr

I will choose as the example passphrase a lyric from The Chainsmokers & Coldplay song “Something Just Like This” that goes to the heart of managing your crypto. Coldplay’s Chris Martin sings: “how much you wanna risk?” Chris knows in risk management you can eliminate, transfer, mitigate or accept the risk. As solo stakers running Qtum mining rigs we must mitigate the risk as much as is possible, and then accept the residual risk.

The starting point to mitigate your risk is encrypting your wallet, making proper backups of the wallet.dat file, and then decrypting your wallet for staking only. Also, don’t put your passphrase in the configuration file and don’t run your staking wallet on the same computer you use for email, surfing the Web, and going to those sketchy fetish porn sites (nsfw). There are some genuinely scary attacks on crypto peeps: key loggers, clipboard modifiers, and social engineering attacks on your mobile SMS two-factor authentication. See a good article on crypto security here.

To decrypt your wallet, your passphrase must match character-by-character, so all these are passphrases are different when used in the walletpassphrase command:

Here is a taste of my Python script which sends a passphrase to qtumd using the command line interpreter program:

This code is inside a loop that cycles through a list of passphrase guesses, but how would you make that list of guesses?

Assume that you know the basic passphrase “how much you wanna risk”, and are trying to fix a typo in the original entry, or maybe you remembered the passphrase slightly wrong. You could make up a list of possible typos, or even better, find a Web site to do it for you.

Fortunately, pernicious online advertisers have figured out how to buy cheap ads for miss-typed search words using “typo generators” such as SEO Chat Keyword Typo Generator. From this typo generator, we can get a list of 65 passphrases with likely typos:

how, much, you, wnana, risk,
how, much, you, wanna, rsik,
how, much, yuo, wanna, risk,
now, much, you, wanna, risk,
tow, much, you, wanna, risk,
<snip>

Just use a word processor (Notepad works fine) to remove the commas.

Here is another typo generator SEO Book Keyword Typo Generator. With all the options selected it generates 386 passphrases with likely typos.

Take all these passphrases with typos and prepare a text input file for a Python passphrase guessing script, such as this one from my GitHub.

The passphrase guessing script works with the wallet server application qtumd and the command line interpreter qtum-cli to sequentially try all the passphrase guesses using the “walletpassphrase” command. It takes about 14 minutes to run through 452 guesses. I had qualms about publishing a passphrase guessing script, but if script kitties have access to your staking computer and wallet.dat file, you have bigger problems than a passphrase guessing script.


Patrick will be in Geneva Switzerland for a conference this week (the Swiss have a high standard of living, and an even higher cost of visiting) so we end with a visit to Geneva: the obligatory drone footage, and a 360 photo of the Broken Chair sculpture symbolizing opposition to wartime bombing. I’m sure you know crypto-friendly Zug Switzerland is home to many blockchain startups and ICOs.

Next week: VPNs.

Hoping you successfully manage how much you wanna risk. Be safe online, and continue to collect those block rewards,

JB395

Cultural note: my icon is Pixiu (貔貅 天祿 — Money Monster in English) that brings good fortune and prosperity. Pixiu favors gold, silver, and QTUM. Place Pixiu facing inwards towards your household and staking computer.

References

National Institute of Standards and Technology new password guidelines, TL,DR: use a passphrase.

Two crypto resources I recommend (different from all the other crypto-noise) are Laura Shin’s podcast Unchained and Cedrick Dahl’s YouTube vlog.

In the old QtumNexus Slack, Michael Anuzis published the script below for a password generator (thank you Michael), with the comment:

Michael Anuzis Oct 4th at 4:43 PM
If anyone is interested in a nice way to generate a passphrase for their QTUM wallet encryption this is akin to the option I used. You can adjust the length by changing the 116 number to whatever you want. Anything above 81 will generate more password possibilities than there are estimated atoms in the universe and be fairly difficult to brute force.

Here are some examples of passphrases Michael’s script generates:

eq6EAQpuHkKpB6HtNZrYkagyJkeQ8fQ3M7BN85m3ZxtnCdxRS5uckitpdO7XAvzEBqlUi4NinM6afM1uj3QxdZlAwZjhl5PZOZLQDjm5Df53cNEzCusk
F3VV6uN9j8c5hMNiyJlMKu8jRKi7Q2K74wk3iFrDUTQ9jaERx9P2Ph43dfzz4ezXwZAjiamgAjuP5JNfaeB5m5IWCY6EI3pcgfwZiskE2zOLGas71GpL
TKSHFaIrhQJaJkTJiApR9VJ3ATsWrhsnGmIdfokORU3Xd6BV1zCAPvisKiV9aDemhgOjsEhVjlPzzX7WLRpS6n6HRspC2D148h1x68DprFnRGWYdEsCz

These are really good passphrases. The code is pasted below if you want to try it.

Past Articles

Qtum Mainnet Results Dec 4–10

The memory pool (mempool) and processing of unconfirmed transactions. This topic may be of interest related to the current Ledger wallet issues (Sydney)

Published on Dec 10

Qtum Mainnet Results Nov 27 — Dec 3

Orphan blocks (Hong Kong — Lantau Island)

Published on Dec 3

Qtum Mainnet Results November 20–26

The QTUM.explorer.io Contracts page (Berlin)

Published on Nov 26

Qtum Mainnet Results November 13–19

A really simple example of the SHA-256 hash algorithm and Difficulty (Berlin — Friedrichshain)

Published on Nov 20

Qtum Mainnet Results November 6–12

Distribution of wallets winning block rewards, the Big Five Network Weight (Beijing)

Published on Nov 12

Qtum Mainnet Results October 30 — November 5

The SHA-256 hash algorithm, the Target and Difficulty (Seoul)

Published on Nov 5

An Introduction to Qtum Proof of Stake Mining — A Racing Story

An ELI5 story about PoS mining (Berlin Marathon)

Published on Oct 29

Qtum Mainnet Results October 23–29

Foundation wallets leave the field (Berlin)

Published on Oct 29

Qtum Mainnet Results October 1–8

Unofficial staking FAQ

Published on Oct 26

Qtum Mainnet Results October 16–22

Network weight, time to reward statistics and Nodemap (Vivid Sydney 2017)

Published on Oct 22

Simulating Proof of Stake Mining for Qtum

A simulation to pick the correct size of UTXOs for PoS mining

Published on Oct 21

Qtum Proof of Stake Mining

My version 1.0 simulator for PoS mining

Published on Oct 16

Qtum Mainnet Ignition Results October 9–15

Introduction to Mainnet charts and graphs (Singapore)

Published on Oct 15

Michael Anuzis’ password generator

from random import SystemRandom
alphabet = u'123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
generator = SystemRandom()
if __name__ == '__main__':
print(u''.join(generator.choice(alphabet) for _ in range(116)))
Like what you read? Give Jackson Belove a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.