AoiNakamoto’s 1st Quizchain of 77

The Start

On April 6th, 2019, the first tweet was sent by user AoiNakamoto:
https://twitter.com/NakamotoAoi/status/1114733123793608704

This was the beginning of a great adventure of 77 quiz blocks, each with their own riddle and reward.

Little did we know these puzzles would evolve, not only because of the puzzle maker, but because of the synergy between the puzzle hobbyists and the puzzle maker.

Before proceeding, I highly suggest you read this article by AoiNakamoto, which sheds light on how this puzzle series works:

https://www.wattpad.com/717956015-second-welcome-to-the-quizchain

Make no mistake, this article simply aims at presenting my observations on this puzzle series and should in no way be interpreted as criticism.

A great thanks to AoiNakamoto for bringing us this great entertainment that is most certainly well appreciated by the puzzle community.

The Mistakes and Flaws

In the initial block creation experience, the puzzle maker made a few mistakes or inadvertently incorporated flaws, most of them easily cracked by puzzle hobbyists.

The important thing is that the puzzle maker learned from these mistakes.

My objective in this article is to present basic concepts encountered in the puzzle chain, to ensure that the subsequent puzzles are as accurate as possible, avoid confusion for puzzle hobbyists and limit brute force opportunities.

Digit vs Character

One of the Quizchain blocks uses the term « digits » in a broader sense (see block 68 referring to passwords of 10 digits).

Let us take a look at the definition of the words digit and character in the online Merriam-Webster dictionary:

https://www.merriam-webster.com/dictionary/digit
https://www.merriam-webster.com/dictionary/character

Digit:
a: any of the Arabic numerals 1 to 9 and usually the symbol 0
b: one of the elements that combine to form numbers in a system other than the decimal system

Examples of digits:
- 21 in base 10
- 2a in base 16
- 2Z in base 58

Character:
a: a graphic symbol (such as a hieroglyph or alphabet letter) used in writing or printing
b: a symbol (such as a letter or number) that represents information
c: a magical or astrological emblem
d: ALPHABET

Alphabet (from element d under the definition of Character)
1a: a set of letters or other characters with which one or more languages are written especially if arranged in a customary order
b: a system of signs or signals that serve as equivalents for letters

These definitions give us the insight required to determine that digits are within the characters subset, but characters are not necessarily within the digits subset. In other words, a digit is also a character, but a character is not always a digit.

The context is important to properly define the string as being composed of digits or characters.

Examples of digits (that are ALSO characters)
- Blockchain address or transaction hash
- Base 58 number

Examples of characters (that are NOT digits)
- Series of random numbers and letters: A1B2C3D4E5
- Words: Hello world
- Leet speak: H3110 w0r1d

Letter Case

A few of the Quizchain blocks refer to the application of capitalization or letter case formatting. My objective here is to present different types of letter case formatting based on the current English Alphabet.

It is important to note that some of these letter case formatting types are only used in the context of programming.

Here are the main articles I referred to:
https://en.wikipedia.org/wiki/Letter_case
https://convertcase.net/

Capitalization

  • Apply upper case to the first letter of a word only (or to a specific letter)

=> Welcome

Lowercase

  • Apply lower case on all the letters

=> welcome to my world

Uppercase (aka all-caps)

  • Apply upper case on all the letters

=> WELCOME TO MY WORLD

The next sections will demonstrate how to apply different case formatting types, based on the principle of capitalization, lowercase and uppercase.

Start case

  • Apply capitalization on each word, with no exception

=> Welcome To My World

Title case

  • Apply capitalization on each word except:
    articles, prepositions, conjunctions

Note: There may be slight variations on how title case is applied

=> Welcome to my World

German-style sentence case

  • Apply capitalization on the first word and all nouns

=> Welcome to my great World

Sentence case

  • Apply capitalization on the first word and all proper nouns

=> Welcome to my great country here in Canada

Camel case

  • Apply capitalization on each word
  • Remove punctuation
  • Remove spaces

Upper camel case=> WelcomeToMyGreatCountryHereInCanada
Lower camel case=> welcomeToMyGreatCountryHereInCanada

Snake case

  • Apply lowercase on all the letters
  • Remove punctuation
  • Replace all spaces with the underscore character « _ »

Regular snake case =>
welcome_to_my_great_country_here_in_canada

SCREAMING SNAKE CASE => WELCOME_TO_MY_GREAT_COUNTRY_HERE_IN_CANADA

Kebab case (aka spinal, param, Lisp or dash case)

  • Apply lowercase on all the letters
  • Remove punctuation
  • Replace all spaces with the hyphen character « — »

Kebab case => welcome-to-my-great-country-here-in-canada
TRAIN-CASE => WELCOME-TO-MY-GREAT-COUNTRY-HERE-IN-CANADA

Studly caps case

  • Apply capitalization on letters arbitrarily or based on a pattern

=> WeLCoMe To MY GReaT CouNTRY HeRe iN CaNaDa

Alternating case

  • Apply capitalization on letters using an alternating pattern

=> WeLcOmE tO mY gReAt CoUnTrY hErE iN cAnAdA

Inverse case

  • Reverse capitalization of letters in an existing string

Current string => WeLcOmE tO mY gReAt CoUnTrY hErE iN cAnAdA
Inverse case => wElCoMe To My GrEaT cOuNtRy HeRe In CaNaDa

Brute force solutions (aka the birth of BFUB)

The puzzle maker quickly discovered that some solutions in the first 77 puzzle series could be brute forced. The riddles evolved to avoid attempts to brute force solutions by adding a BFUB field.

In this section I will provide clarifications on a basic level regarding riddle modifications that cannot deter or increase brute force difficulty. I do not attempt to presume knowing

Hash of a string

It might be tempting to use the hash of a word to increase the length of a solution string. If it is revealed that the 64 length string solution is simply the hash of a word, then brute force solving is not impossible and the difficulty to do so does not increase.

Why? The reason is simple.

Brute forcing the hash of a word (or a short string) is the same as brute forcing the word itself; calculating the hash is merely a question of adding a line of code or two (and a tiny bit more of computer solving power).
=> Hello
=> MD5 = 8b1a9953c4611296a827abf8c47804d7

The second string looks like it can’t be brute forced, but that is an illusion, when it is known that the MD5 is the hash of a word.

Static characters

Adding static characters to the solution string does not increase the brute force difficulty, no matter the length of the static string.
=> [solution] TOMI [TOMI] [link]

=> [TOMI]=This is a very long string to make a solution impossible to brute
=> [TOMI]=Hello

With the TOMI block and the link block known, the solution block can be solved using brute force just as easily with the first TOMI string or the second TOMI string above, because these strings are STATIC and KNOWN.

Using static characters therefore does not increase brute force difficulty.

Twitter & Reddit

Partial solutions should not be posted directly to twitter or Reddit by puzzle makers.

Scripts can easily identify the required text and brute force the solution the moment the tweet or Reddit post is released into the wild.

This defeats the purpose of having a lottery style block as the playing field won’t be fair.

The good

A few improvements by the puzzle maker merit being mentioned:

  • Modifying the [link] portion to be the string of the previous puzzle PK
  • Avoiding short strings (length 3 for example) for [solution] or [TOMI]

If I riddle hard enough, maybe i’ll become a draziw too.

The first block of 77 puzzles is not finished yet and I am already looking forward to the second puzzle series !

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

TosLabs introduces Iagon

An Introduction to Kujira Protocol

How Fintech Initiatives Are Driving Financial Services Innovation

NFT Free And Unique For Everyone ! Get your Now 2022

NFT Free And Unique For Everyone ! Get your Now 2022

Introduction to Athena

The Advantages of YAY Games: What we bring to the table

InsureDAO is a decentralized insurance market on Ethereum

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
mapl3Sn0w

mapl3Sn0w

More from Medium

The flaw in Novak’s “defence”

Christmas Blues

What We Were Made Of