Pourquoi Bitcoin utilise-t-il deux fonctions de hachage (SHA-256 et RIPEMD-160) pour créer une adresse ?

Voici une idée hautement spéculative qui n’est pas affirmée comme définitive ni certaine. Pourtant, c’est la seule raison plausible que j’ai envisagée étant donné que je rejette la présomption inconcevable selon laquelle Satoshi a mal compris ou n’a « pas eu à penser » aux attaques d’extension de longueur. Les attaques par extension de longueur sont évidemment impossibles dans Bitcoin car les attaques par extension de longueur (ne s'appliquent jamais dans Bitcoin et) ne s'appliquent que lorsque les données hachées sont secrètes. Je ne comprends pas que Satoshi ait été si négligent. Bien qu'en employant le double hachage partout (cf aussi), il avait ostensiblement l'intention de nous tromper (c'est-à-dire de nous donner assez de corde pour nous pendre) dans cette explication anodine. C'est si, comme je le suppose, il n'avait qu'une utilité pour le double hachage pour la fonction de dépense.

De plus, le double hachage n'augmente pas la sécurité contre les collisions ni les attaques de seconde pré-image, cf également.

Imaginez donc que dans le futur, l'ECDSA 256 bits soit exploitable de manière réaliste. Deux scénarios : 1) tous les UXTO sont exploitables de manière triviale et rentable ; ou peut-être d'abord 2) seuls les résultats de grande valeur sont exploitables de manière rentable étant donné le coût de calcul élevé.

Dans ce dernier cas, aucun adversaire ne peut être assuré de ne pas être fragilisé par un concurrent en termes de pourcentage de butin qu'il doit attribuer aux mineurs, car le mineur qui remporte le bloc acceptera la transaction de remplacement (conflictuelle, accaparement du butin) avec les frais les plus élevés. . (Les lecteurs naïfs doivent noter que le mineur ne peut pas faire la distinction entre une transaction contradictoire et une transaction sans butin.) Cela semble être un dilemme du prisonnier à moins que dans le cas apparemment improbable, les mineurs puissent former un consensus d'une oligarchie de plus de 50 % pour faire respecter ledit butin. pourcentage, rejetant tous les blocs de hashrate minoritaires qui font défaut. On pourrait soutenir que le seul scénario d’exploitation de grande valeur force la formation de ladite oligarchie, de peur qu’un modèle ne semble montrer une perte de compatibilité des incitations qui converge normalement vers une seule règle de chaîne la plus longue (c’est-à-dire la plus grande difficulté). Mais les mineurs ne détruiront probablement pas leurs investissements en matériel minier irrécupérables et les hodlers ne seraient pas non plus incités à abandonner ledit pourcentage de leur ₿ pour les raisons que j'explique ci-dessous.

Dans les deux scénarios, il existe des UXTO qui ne peuvent pas être dépensés sans être volés, à moins que le protocole de validation Bitcoin ne soit modifié pour proposer des dépenses avec un NIZKP (preuve) non exploitable de l'une ou l'autre des pré-images du hachage RIPEMD160 (SHA256).

(AJOUTÉ : les lecteurs naïfs notent que la compromission de l'ECDSA ne compromet pas les sorties de transactions stationnaires non dépensées (UXTO) si la fonction de hachage n'est pas également compromise. Ces UXTO seraient bloqués par une menace de les voler avec ledit futur exploit ECDSA proposé quand et si la transaction de dépense est publiée sur le réseau car elle révèle la clé publique ECDSA qui est autrement masquée et protégée par le hachage jusqu'à la dépense.)

J'ai également envisagé une alternative dans laquelle le payeur enregistre d'abord sur la blockchain une transaction de faible valeur (soit non exploitable de manière rentable, soit dans le premier des scénarios susmentionnés en incitant le mineur hors bande avec des pièces colorées à ne pas choisir la transaction contradictoire). avec des sorties de valeur nulle ou OP_RETURN (cf exemple) le hachage (preimage||txn_hash) avant de publier la finalisation (c'est-à-dire la preuve) de la transaction exploitable par ailleurs de valeur plus élevée.

Bien que ces deux idées suffiraient si Satoshi n'avait utilisé qu'un seul hachage, Satoshi n'aurait peut-être pas voulu dépendre d'un résultat politique controversé (par exemple la controverse sur la taille limite des blocs) pour le changement de protocole de couche zéro, afin de ne pas retenir les dépenses. otage intérimaire. Les mineurs résisteraient probablement à toute solution et si je peux exprimer le fait tendancieux que les 1% qui décident normalement (parce que la répartition inviolable des richesses selon la loi du pouvoir ne connaît aucune exception) seraient impuissants dans l’un ou l’autre des scénarios susmentionnés (ouvrant ainsi un vide de pouvoir de l'analogue fractionné du chaos des seigneurs de guerre) si leur UTXO ne peut pas être dépensé sans être volé. En d’autres termes, l’équilibre de Nash est tel que toute modification du protocole de couche zéro n’est stable que si les intérêts particuliers de la majorité économique (c’est-à-dire les 1 %) n’ont pas de meilleure stratégie. Dans le cas impensable où Satoshi serait suffisamment abandonné pour concevoir de telle sorte que les 1% puissent être entièrement cédés, les mineurs seraient détruits avec Bitcoin.

Si, à la place, ma deuxième idée pour contourner l'exploit est utilisée sur la préimage intermédiaire du hachage composite, c'est-à-dire RIPEMD160 (preimage||txn_hash), une dépense ad hoc de pièces colorées est alors instantanément possible (et adoptée par la convention des points de Schelling comme seule option) sans aucune modification requise du protocole de validation de couche zéro appliqué par les mineurs. Lors d'une dépense avec la préimage intermédiaire, la clé publique ECDSA exploitable n'a jamais été révélée si le payeur avait dépensé ses sorties reçues publiquement avec une clé publique secrète avant l'arrivée de l'exploit ECDSA. Le double hachage n'est requis que si le payeur est incité à ne pas publier la clé publique (au lieu dudit intermédiaire) comme pré-image pour finaliser (c'est-à-dire prouver) la dépense en pièces colorées. Lesdites pièces colorées restent non exploitables et conservent donc probablement de la valeur malgré tout. La perspective d'un futur hard fork qui rétablit la capacité de dépenser ₿ inexploitée, incite à ne pas dépenser prématurément avec la clé publique, nécessitant ainsi un double hachage intermédiaire pour dépenser les pièces colorées ad hoc.

J'étais motivé à évoquer cette idée comme une réfutation partielle à l'affirmation non fondée de Craig « Faketoshi » Wright selon laquelle il expliquait la raison du double hachage. C'est à condition que mon idée survive au contre-interrogatoire de la communauté dans son ensemble.

A ne pas confondre avec les clés publiques de trou noir.

Ignorez les bêtises suivantes : en passant, pour ne pas être ridiculisé par la majorité économique de 1 % qui connaît la vérité, mais s'il vous plaît, si vous avez une conscience, ce qui suit ne devrait pas être pris en compte pour décider d'être d'accord ou pas d'accord avec ma réponse., mon opinion personnelle est que OP_RETURN est un fork invalide qui finira par être détruit.