Skip to content

bitgc Mystery Cache

Hidden : 7/29/2021
Difficulty:
4 out of 5
Terrain:
1.5 out of 5

Size: Size:   micro (micro)

Join now to view geocache location details. It's free!

Watch

How Geocaching Works

Please note Use of geocaching.com services is subject to the terms and conditions in our disclaimer.

Geocache Description:


bitgc

Le bitgc est très librement inspiré du bitcoin. Le bitgc va principalement utiliser deux des principes sous-jacents des bitcoins pour se mettre en oeuvre :

  • les blockchains (chaîne de blocs)
  • la preuve de travail

Les blockchains du bitcoin

Le premier principe d'une blockchain bitcoin est d'être publique et connue de tous.
Une blockchain va permettre de lister toutes les transactions ayant eu lieu et de les "chainer". Un bloc d'une blockchain va référencer son ancêtre direct de manière univoque et sécurisée. Un bloc n'aura qu'un descendant dans une blockchain. Le système assure qu'il n'existe qu'une blockchain valide de transactions successives.
Dans le cas du bitcoin le système est distribué et la publication des blocs, ainsi que leur création, est décentralisé. Les algorithmes assurent que la blockchain restera linéaire et que des branches créées en parallèle mourront dans un délai raisonnable. Le système étant distribué, plusieurs ordinateurs peuvent en effet créer une descendance au dernier bloc de la blockchain, en même temps. La purge des branches "mortes" se fera naturellement.

La preuve de travail

Afin de protéger le système de la corruption de la blockchain, la création d'un nouveau bloc valide n'est possible que si que si l'ordinateur le publiant est à même de prouver qu'il a effectué un certain volume de travail pour produire ce bloc.
L'idée est que le bloc créé dispose de propriétés difficiles à établir mais faciles à vérifier. Puisque la création d'un bloc fils valide est coûteuse, et que sa vérification est aisée, le système enrichit la liste des transactions de manière bien plus lente qu'il n'est nécessaire pour la valider et donc l'accepter.

Cryptomining

Il est possible de créer des bitcoins selon certaines conditions. Le "cryptomineur" ayant réuni les conditions se voit accordé un bitcoin. Dans le cas du bitgc, ce seront les coordonnées du final qui vous seront accordées si vous soumettez un bloc valide en tête de blockchain.

Les outils techniques

Dans le bitcoin ils sont nombreux et complexes, cela est nécessaire car le système est distribué et il est nécessaire de créer des chaines de confiance basée sur les outils de la cryptographie. Dans le bitgc, le système est centralisé afin de simplifier les outils nécessaires.
Le bitgc n'utilise que l'algorithme de hashage SHA-256. %*@&# hashage (hachage) c'est quoi ?
wikipedia est bien plus pédagogue que nécessaire sur le sujet que ce texte pourrait l'être.
Il reste à retenir que l'utilisation d'une "bonne" fonction de hashage assure :

  • une empreinte de taille définie
  •  que pour une empreinte donnée il est calculatoirement illusoire de trouver une donnée d'entrée donnant cette empreinte

Ainsi il existe une infinité de données d'entrée possibles donnant une empreinte donnée, mais trouver une entrée générant une empreinte donnée est une gageure.
Il existe des dizaines d'outils proposant le calcul d'une empreinte sha256 à partir d'un texte donné (même notre ami dcode le propose).

Par la suite nous utiliserons la formulation SHA256(texte)=empreinte avec "texte" qui est une chaine de caractères et "empreinte" désignant le codage hexadecimal du résultat.

Quelques exemples :

SHA256(geocaching) = 21c16a5f9ec8af78ffa09fd8e0a306827bb1c0903955779e1330cb549897e3c4
SHA256(zoumba) = 2e250fca7a363884d72be4e111a3a0bc36eaaf5ae7fc86050e84e0c10f018bde
SHA256(FTF) = fe5d0ae2aa8e9bed06c90e84af62db2176d35ea44c3af72824e67d490375e493

Les blocs du bitgc

Le format des blocs du bitgc est :

<10 premiers caractères de l'empreinte du bloc précédent>*<pseudo>*<preuve de travail>

Les caractères valides sont les alphanumériques A à Z, a à z, 0 à 9.

Afin d'éviter des soucis de codage de caractères <pseudo> doit être adapté à cette règle. Ainsi le pseudo a&z ne sera pas accepté et il faudrait utiliser aetz ou aETz ou un autre choix respectant les contraintes.

Pour la preuve de travail : la preuve de travail est un texte constitué de caractères valides qui assurent que le SHA256(bloc) se termine par 0000 (sauf pour le FTF où il faut 000000)

Pour le premier bloc (le bloc racine) : l'empreinte est constituée uniquement de 0

Exemple de blockchain bitgc

Hypothèse : le bloc n à l'empreinte 1111111111111111111111111111111111111111111111111111111111111111
Le bloc n+1 est valide avec comme preuve de travail 3OmZdsN8ak.

SHA256(1111111111*zoumba*3OmZdsN8ak)=62c4c377e42541f71359434f6017acea866dde2f6287e765076159db49f30000
L'empreinte se termine bien par 0000, le bloc proposé est valide.

Le bloc n+1 publié est 1111111111*zoumba*3OmZdsN8ak
Le bloc n+2 commencera par 62c4c377e4

Un exemple de quelques blocs techniquement valides et consécutifs, mais avec des pseudos plus que très imaginaires... :

  • 1111111111*zoumba*3OmZdsN8ak
  • 62c4c377e4*OnChaine*KdBzAN4ep2
  • 5220c6a5f6*OnChaineEncore*q8pVyvqLBw
  • a2ffc47d82*OnChaineEncoreEtToujours*YmvmwPrrj1
  • 41986c24fe*EtVoila*tVd
  • 31b4d32611*BlocFTF*GROZdjGi

Remarquons que l'empreinte du dernier bloc se termine par 000000 (3b5639c98f0e093592d7423d5e9486218deac200d925aabc4db76157a9000000).

ATTENTION : les empreintes sont en lettres minuscules, les seules caractères utilisés sont 0123456789abcdef.

31b4d32611*BlocFTF*GROZdjGi est valide 31B4d32611*BlocFTF*GROZdjGi ne l'est pas.

Comme indiqué précédemment le système du bitgc est centralisé et les blocs sont publiés via le site bitgc, le seul habilité à valider un bloc de la blockchain bitgc. Le système assure qu'il n'y a qu'une chaine et aucune ramification. Ainsi il est possible que lorsque vous travailliez sur le bloc n+1 à partir de l'empreinte du n, si vous n'êtes pas assez rapide, le bloc n+1 peut avoir été publié par un autre gcmineur rendant votre travail caduc.
Par ailleurs, le système a besoin de temps pour digérer un bloc, quand un bloc valide est proposé le système se met en pause pour 30 minutes avant de pouvoir accepter de nouvelles soumissions de blocs.
Le système du bitgc est fait pour accepter des blocs valides, il introduit un système de captcha pour éviter l'utilisation de bruteforce qu'il ne saurait encaisser (une sorte de preuve d'humanité en plus de la preuve de travail).

Rappel le bloc de FTF est valide si son empreinte se termine par 000000

Merci de publier votre bloc dans votre log !

Et maintenant rendez-vous sur bitgc

Additional Hints (Decrypt)

ovgtp

Decryption Key

A|B|C|D|E|F|G|H|I|J|K|L|M
-------------------------
N|O|P|Q|R|S|T|U|V|W|X|Y|Z

(letter above equals below, and vice versa)