Pourquoi les puzzles de hachage sont-ils essentiels pour la preuve de travail ?

Pourquoi les puzzles de hachage sont-ils essentiels pour la preuve de travail ?

Il y a quelques jours, j’ai expliqué le problème que Bitcoin exige de résoudre comme preuve de travail. En résumé, il s’agit de modifier un bloc de transactions jusqu’à ce que le double hachage SHA256 de son en-tête soit inférieur à une valeur cible [1]. Bien que toutes les cryptomonnaies n’utilisent pas la preuve de travail, celles qui le font reposent principalement sur des puzzles de hachage. D’autres cryptomonnaies utilisent des problèmes de hachage différents, mais le principe reste le même. Par exemple, Litecoin et Dogecoin utilisent le même mécanisme que Bitcoin, mais avec la fonction de hachage scrypt (prononcée S-crypt). D’autres, comme celles basées sur Equihash ou Monero avec son algorithme RandomX, résolvent également des problèmes de hachage [2].

Pourquoi privilégier les puzzles de hachage ? Les cryptomonnaies pourraient en théorie utiliser n’importe quel problème computationnel difficile à résoudre mais facile à vérifier, comme ceux de la théorie des nombres. Une raison majeure est la résistance supposée des fonctions de hachage aux attaques quantiques, contrairement aux problèmes basés sur la factorisation. De plus, les experts s’accordent à dire qu’une faille mathématique dans les fonctions de hachage est improbable. Comme l’a dit Ian Cassels : « La cryptographie est un mélange de mathématiques et de confusion, et sans cette confusion, les mathématiques pourraient se retourner contre vous. » Le hachage repose davantage sur la confusion que sur les mathématiques.

Pourquoi ne pas résoudre des problèmes utiles ? Bien que les puzzles de hachage soient efficaces pour prouver le travail accompli, leurs solutions n’ont aucune valeur intrinsèque. Certaines cryptomonnaies, comme FoldingCoin, se consacrent à des problèmes scientifiques tels que le repliement des protéines. Cependant, leur adoption reste limitée : FoldingCoin a une capitalisation 10 millions de fois inférieure à celle de Bitcoin. Les cryptomonnaies basées sur une « preuve de travail utile » peinent à décoller, en partie à cause des incitations divergentes qu’elles créent. Par exemple, si une entreprise pharmaceutique minait à perte pour obtenir des résultats scientifiques, cela perturberait le système monétaire.

Enfin, les problèmes pratiques ont souvent une structure mathématique, ce qui les rend vulnérables à des avancées soudaines. Les puzzles de hachage, bien que progressivement optimisés, offrent une stabilité plus prévisible. Une percée mathématique dans un domaine utile pourrait en revanche déstabiliser une cryptomonnaie avant que le marché ne s’adapte.

[1] Les mineurs ne modifient pas les montants des transactions, mais peuvent réorganiser leur ordre dans un arbre de Merkle pour obtenir des hachages différents. Un nonce de 32 bits et un horodatage sont aussi ajustables, mais la marge de manœuvre provient surtout de la réorganisation de l’arbre. [2] Scrypt et Equihash ont été conçus pour être gourmands en mémoire et résister aux ASIC, mais des contournements existent. RandomX génère aléatoirement un problème avant le hachage pour décourager le matériel spécialisé.

Tại sao câu đố băm lại quan trọng trong bằng chứng công việc?

Cách đây vài ngày, tôi đã đề cập đến bài toán mà Bitcoin yêu cầu giải quyết như một bằng chứng công việc (proof-of-work). Nói ngắn gọn, thợ đào phải điều chỉnh khối giao dịch cho đến khi giá trị băm kép SHA256 của phần đầu khối thấp hơn một ngưỡng nhất định [1]. Dù không phải tiền mã hóa nào cũng dùng cơ chế này, nhưng những đồng tiền áp dụng proof-of-work hầu hết đều dựa trên các câu đố băm. Một số đồng tiền khác sử dụng bài toán băm khác biệt, nhưng vẫn xoay quanh hàm băm. Ví dụ, Litecoin và Dogecoin dùng chung cơ chế với Bitcoin nhưng thay SHA256 bằng hàm scrypt (đọc là S-crypt). Các đồng tiền dựa trên Equihash hay Monero với thuật toán RandomX cũng đều giải quyết bài toán băm [2].

Tại sao lại chọn câu đố băm? Về lý thuyết, tiền mã hóa có thể sử dụng bất kỳ bài toán tính toán nào khó giải nhưng dễ kiểm tra, chẳng hạn các vấn đề trong lý thuyết số. Một lý do quan trọng là giới khoa học tin rằng máy tính lượng tử không làm giảm độ khó của bài toán băm, dù nó có thể phá vỡ các bài toán dựa trên phân tích thừa số. Hơn nữa, khả năng tìm ra điểm yếu trong hàm băm nhờ đột phá toán học được cho là cực kỳ thấp. Nhà mật mã học Ian Cassels từng nói: "Mật mã là sự pha trộn giữa toán học và sự hỗn độn, và nếu thiếu đi sự hỗn độn, toán học có thể quay lại chống lại bạn." Hàm băm nghiêng nhiều về sự hỗn độn hơn là toán học thuần túy.

Tại sao không giải quyết vấn đề hữu ích? Câu đố băm tuy hiệu quả để chứng minh công việc đã hoàn thành, nhưng bản thân chúng không mang lại giá trị thực tế. Một số đồng tiền như FoldingCoin hướng đến các bài toán khoa học như gấp protein, nhưng chúng vẫn chưa phổ biến. Vốn hóa thị trường của FoldingCoin chỉ khoảng 200.000 USD, nhỏ hơn Bitcoin 10 triệu lần. Các đồng tiền dựa trên "bằng chứng công việc hữu ích" khó phát triển do xung đột lợi ích. Ví dụ, nếu một công ty dược chấp nhận lỗ để đào tiền mã hóa nhằm lấy kết quả nghiên cứu, hệ thống tiền tệ sẽ bị xáo trộn.

Ngoài ra, bài toán thực tế thường có cấu trúc toán học rõ ràng, khiến chúng dễ bị ảnh hưởng bởi đột phá công nghệ. Trong khi đó, độ khó của câu đố băm được điều chỉnh dần theo thời gian. Một phát kiến toán học đột ngột trong lĩnh vực ứng dụng có thể gây biến động khó lường trước cho thị trường tiền mã hóa.

[1] Thợ đào không thay đổi số tiền giao dịch nhưng có thể sắp xếp lại thứ tự trong cây Merkle để tạo giá trị băm khác nhau. Họ cũng điều chỉnh nonce 32-bit và timestamp, nhưng phần lớn khả năng biến đổi đến từ việc tái cấu trúc cây. [2] Scrypt và Equihash được thiết kế để tiêu tốn bộ nhớ và chống lại ASIC, nhưng vẫn bị tối ưu hóa. RandomX sinh bài toán ngẫu nhiên trước khi băm nhằm hạn chế phần cứng đào chuyên dụng.