Quel est le talon d’Achille de la blockchain ? La transparence. Tous les nœuds peuvent voir toutes les données, ce qui rend la génération de véritables nombres aléatoires quasiment impossible.
Mais les développeurs Web3 en ont un besoin urgent — les jeux ont besoin de loot aléatoire, les loteries d’un tirage équitable, les smart contracts d’entrées imprévisibles. Sans nombre aléatoire sécurisé on-chain, des clés peuvent être devinées, des résultats de jeu peuvent être manipulés.
Comment Oasis résout ce problème ?
Avec deux techniques :
Étape 1 : Génération d’un RNG au niveau du bloc
Sapphire (l’environnement d’exécution confidentiel EVM d’Oasis) récupère une clé secrète depuis le gestionnaire de clés
Utilise une clé à court terme (renouvelée à chaque epoch) pour chiffrer le RNG, garantissant que les anciennes clés ne peuvent pas être retrouvées
Ces clés n’existent que dans l’ETE (Environnement d’Exécution de Confiance), impossible pour un observateur externe de voir l’état du RNG
Utilisation d’algorithmes dérivés SHA-3 (TupleHash, KMAC256) pour traiter cette entropie et générer un RNG racine unique pour chaque bloc
Étape 2 : Séparation du RNG au niveau des transactions
Chaque transaction a besoin de son propre nombre aléatoire
Utilisation de Merlin transcripts pour dériver un RNG de transaction à partir du RNG racine
Personnalisation de l’aléa avec des données spécifiques à la transaction, garantissant confidentialité, équité et imprévisibilité
✓ Abstraction de la complexité — les développeurs n’ont pas besoin de comprendre les détails techniques du RNG sur blockchain
✓ Rotation des clés — génération d’une nouvelle clé à chaque epoch, destruction automatique des anciennes clés
✓ Protection de la vie privée — l’état du RNG n’est visible que dans l’ETE
✓ Vérifiable — basé sur VRF et des primitives cryptographiques auditées
Cette approche rend le nombre aléatoire on-chain “quasi impossible” à “prêt à l’emploi”. C’est crucial pour les jeux NFT, les loteries on-chain, les tirages décentralisés et bien d’autres cas d’usage.
Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
Comment résoudre le problème des nombres aléatoires on-chain ? Oasis a apporté une réponse
Quel est le talon d’Achille de la blockchain ? La transparence. Tous les nœuds peuvent voir toutes les données, ce qui rend la génération de véritables nombres aléatoires quasiment impossible.
Mais les développeurs Web3 en ont un besoin urgent — les jeux ont besoin de loot aléatoire, les loteries d’un tirage équitable, les smart contracts d’entrées imprévisibles. Sans nombre aléatoire sécurisé on-chain, des clés peuvent être devinées, des résultats de jeu peuvent être manipulés.
Comment Oasis résout ce problème ?
Avec deux techniques :
Étape 1 : Génération d’un RNG au niveau du bloc
Étape 2 : Séparation du RNG au niveau des transactions
Comment les développeurs l’utilisent-ils ?
Une seule ligne de code suffit :
bytes memory randomPad = Sapphire.randomBytes(32, “”);
Ou pour générer une paire de clés de signature aléatoire :
bytes memory pk; bytes memory sk; (pk, sk) = Sapphire.generateSigningKeyPair( Sapphire.SigningAlg.Ed25519Pure, Sapphire.randomBytes(32, “”) );
Avantages clés
✓ Abstraction de la complexité — les développeurs n’ont pas besoin de comprendre les détails techniques du RNG sur blockchain ✓ Rotation des clés — génération d’une nouvelle clé à chaque epoch, destruction automatique des anciennes clés ✓ Protection de la vie privée — l’état du RNG n’est visible que dans l’ETE ✓ Vérifiable — basé sur VRF et des primitives cryptographiques auditées
Cette approche rend le nombre aléatoire on-chain “quasi impossible” à “prêt à l’emploi”. C’est crucial pour les jeux NFT, les loteries on-chain, les tirages décentralisés et bien d’autres cas d’usage.