Qtum Mainnet Results Dec 11–17
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.
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.
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,
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,
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.
National Institute of Standards and Technology new password guidelines, TL,DR: use a passphrase.
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:
These are really good passphrases. The code is pasted below if you want to try it.
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
Orphan blocks (Hong Kong — Lantau Island)
Published on Dec 3
The QTUM.explorer.io Contracts page (Berlin)
Published on Nov 26
A really simple example of the SHA-256 hash algorithm and Difficulty (Berlin — Friedrichshain)
Published on Nov 20
Distribution of wallets winning block rewards, the Big Five Network Weight (Beijing)
Published on Nov 12
The SHA-256 hash algorithm, the Target and Difficulty (Seoul)
Published on Nov 5
An ELI5 story about PoS mining (Berlin Marathon)
Published on Oct 29
Foundation wallets leave the field (Berlin)
Published on Oct 29
Unofficial staking FAQ
Published on Oct 26
Network weight, time to reward statistics and Nodemap (Vivid Sydney 2017)
Published on Oct 22
A simulation to pick the correct size of UTXOs for PoS mining
Published on Oct 21
My version 1.0 simulator for PoS mining
Published on Oct 16
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)))