Programmation en Radiant

Mar 10 2023
Radiant utilise un langage de programmation appelé script hérité de Bitcoin, mais en ajoutant des fonctionnalités avancées qui lui permettent d'être Turing complet. Pour bien le comprendre il faut faire un saut dans le temps aux débuts du Bitcoin.

Radiant utilise un langage de programmation appelé script hérité de Bitcoin , mais en ajoutant des fonctionnalités avancées qui lui permettent d'être Turing complet.

Pour bien le comprendre il faut faire un bond dans le temps jusqu'aux débuts du Bitcoin .

Script bitcoin

Bitcoin avait besoin d'un langage simple pour gérer les transactions et Satoshi a décidé d'utiliser un langage basé sur la pile, similaire à Forth (1970), qui s'appelle Bitcoin Script ou uniquement Script .

Structure des transactions

C'est un langage simple qui n'est pas complet de Turing, ce qui signifie qu'il lui manque certaines fonctions logiques, dont les boucles. Cela a été fait pour s'assurer qu'aucun script dans Bitcoin n'entraînera de grandes quantités de puissance de calcul ou des blocages en raison d'une erreur de programmation.

Le script est utilisé presque exclusivement pour verrouiller et déverrouiller les bitcoins, car vous ne pouvez pas créer d'applications ou exécuter de programmes avec.

OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG

OP_Codes

Les opcodes sont de simples commandes du langage de script et chacun d'eux a des fonctions bien spécifiques, permettant d'interagir avec le contenu de la blockchain de manière précise.

Ce sont les opcodes qui peuvent être utilisés dans Bitcoin

https://github.com/bitcoin/bitcoin/blob/24.x/src/script/script.h

Dans l'image suivante, vous pouvez voir comment le langage de script Bitcoin fonctionne avec les OP_Codes dans un script de validation. Le flux d'exécution est de gauche à droite et l'opérateur de droite effectue une action sur la gauche si c'est le cas.

6 2 ADD = 8
8 8 EQUAL = TRUE

      
                

OP_Codes dans Radiant

Radiant ajoute au langage de script une série de fonctionnalités qui lui permettent d'être Turing Complete , basé sur l'induction mathématique. Ceci est ajouté dans les OP_Codes avancés suivants.

https://github.com/RadiantBlockchain/radiant-node/blob/master/src/script/script.h

OP_PUSHINPUTREF : La clé de tout

L'un des gros problèmes de la gestion des UTXOS tagués, comme pour les ordinaux actuels, est de connaître l'historique jusqu'à l'origine. Cela peut être fait de deux manières simples.

1/ Avec un script externe qui vérifie l'origine et autorise la sortie (oracle).
2/ Ajouter tout l'historique dans le même UTXO, le faire grandir en continu.

Dans Radiant, cela est résolu en ajoutant une référence unique et globale dans ces transactions, permettant de valider l'origine de manière efficace sans avoir besoin d'oracles ou d'augmenter la taille de l'UTXO de manière constante.

RadiantScript

L'une des parties les plus complexes de la programmation avec OP_Codes est leur langage de pile.

Pour résoudre cela, nous travaillons sur RadiantScript , qui sera le premier interpréteur de programmation à gérer le potentiel de Radiant avec ses OP_Codes avec un langage de programmation de haut niveau pour les contrats intelligents dans Radiant .

Sa syntaxe est basée sur le langage de contrat intelligent Solidity d'Ethereum , mais sa fonctionnalité est très différente car les contrats intelligents dans Radiant diffèrent grandement des contrats intelligents dans Ethereum.

Il est actuellement en phase de test et est en train de documenter la programmation car il contient de nouveaux OP_Codes .

L'avenir

Lorsque Radiant a été conçu, cela a été fait avec l'idée de travailler dès le premier jour et de ne pas attendre des mois ou des années pour ajouter des développements à la chaîne. À l'heure actuelle, il est déjà possible d'utiliser toutes ses capacités, mais le plus compliqué est d'avoir un logiciel capable de programmer dans les nouveaux OP_Codes et cela nécessite du temps et du développement.

Mais l'avenir est radieux, car ce nouveau code permettra de rivaliser avec les grandes chaînes comme Ethereum, Cardano ou Solana en termes de potentiel.

(Ce sera l'un des nombreux articles axés sur le côté technique de Radiant , là où réside tout son potentiel.)

Bibliographie

  • https://radiant4people.com/tech/radiant-system-design
  • https://www.researchgate.net/publication/335146032_An_Analysis_of_Non-standard_Transactions
  • https://github.com/bitcoinbook/bitcoinbook
  • https://github.com/RadiantBlockchain-Community/radiantscript