Mon 20 January 2014

[caption id="" align="alignright" width="103"]English: New Wikipedia's logo. Famous 3D puzzle (Photo credit: Wikipedia)[/caption]

The question is: what is a puzzle? The answer I prefer is: a riddle whose solution is hard to find but easy to verify. In computer science, it's used to provide proof-of-work and usually implemented through cryptographic mechanisms. I found versions of cryptographic proof of work in:

  • HIP anti-flood system (part of handshake/authentification)
  • Namecoin's public chain block system
  • IPv6's CGA mechanism


In Host Identity Protocol, puzzle is used for DoS protection. It seems that IETF take into account  TCP SYN flooding attack.

In this context, the context and protocol is the following: this is a communication involving  two peer (called "Initiator" and "Responder"). Initiator must provide proof-of-work. The puzzle consist in finding a number [latex]J [/latex] such that the [latex]K[/latex] lower bit of [latex]h(I|id|J)[/latex] are zeros (with [latex]begin{cases}h \qquadtext{a hash function} \Iqquadtext{an element given by the responder for this exchange}\id \qquadtext{HIP identifiers (called HIT)}\| \qquadtext{the concatenation}\end{cases}[/latex]). The difficulty is given by [latex]K[/latex] and the puzzle cannot be precompute ([latex]I[/latex] previously unknown).


The first  time I heard about cryptography in IPv6 was when I heard about SEND protocol. It is used for Cryptographically Generated Address (CGA). The goal is to bind an address and a public key. This way, messages in neighbor discovery can be signed and signature verified (authentication and integrity).

The CGA generation (step 3 of the algorithm) ensure proof-of-work.


Here is the commercial stuff. Namecoin is not yet widely used. It uses the same proof-of-work mechanisms as Bitcoin, namely public chain block. This mechanism lies on a peer to peer network and ensure that a transaction is verified by a huge proportion of computing power available in the network.

This chain is a space where anyone can write transaction. Anyone can verify the transaction. The chain is composed of blocks. Each block is cryptographically linked with the previous one. Forks are solved by readding leaf block into a longer chain.

(Non-)Related articles

Enhanced by Zemanta

Category: maths Tagged: Cryptographically Generated Address Domain Name System IPv6 Namecoin Proof-of-work system Protocols reflections maths

Page 1 of 1