{"id":32343,"date":"2019-10-31T21:46:27","date_gmt":"2019-10-31T18:46:27","guid":{"rendered":"https:\/\/prohoster.info\/blog\/cluchajnyj-orakul-na-osnove-tsifrovoj-podpisi-v-blokchejne\/"},"modified":"2019-10-31T21:46:27","modified_gmt":"2019-10-31T18:46:27","slug":"cluchajnyj-orakul-na-osnove-tsifrovoj-podpisi-v-blokchejne","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/cluchajnyj-orakul-na-osnove-tsifrovoj-podpisi-v-blokchejne","title":{"rendered":"Oracule al\u00e9atoire bas\u00e9 sur une signature num\u00e9rique dans la blockchain","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>De l'id\u00e9e \u00e0 la r\u00e9alisation : nous modifions le sch\u00e9ma existant de signature num\u00e9rique sur courbe elliptique pour le rendre d\u00e9terministe, et nous proposons \u00e0 partir de celui-ci des fonctionnalit\u00e9s d'obtention de nombres pseudo-al\u00e9atoires v\u00e9rifiables dans le cadre de la blockchain.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Oracule al\u00e9atoire bas\u00e9 sur une signature num\u00e9rique dans la blockchain\" src=\"\/wp-content\/uploads\/2019\/04\/91c321aa895498263f80f586aa336956.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h1 id=\"ideya\">Id\u00e9e<\/h1>\n<p><\/p>\n<p>\u00c0 l'automne 2018, la blockchain Waves a <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.wavesplatform.com\/smart-accounts-finally-activated-on-waves-mainnet-8bb7c7b67beb\">activ\u00e9 les premiers contrats intelligents<\/a><\/noindex>, la question de la possibilit\u00e9 d'obtenir <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%93%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80_%D0%BF%D1%81%D0%B5%D0%B2%D0%B4%D0%BE%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D1%87%D0%B8%D1%81%D0%B5%D0%BB\">des nombres pseudo-al\u00e9atoires<\/a><\/noindex>, dignes de confiance, est imm\u00e9diatement apparue.<\/p>\n<p><\/p>\n<p>En r\u00e9fl\u00e9chissant \u00e0 cette question, je suis finalement arriv\u00e9 \u00e0 la conclusion : toute blockchain est une cage, il est impossible d'obtenir une source d'entropie fiable dans un syst\u00e8me ferm\u00e9.<\/p>\n<p><\/p>\n<p>Mais une id\u00e9e m'a tout de m\u00eame plu : si un <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A1%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D0%B9_%D0%BE%D1%80%D0%B0%D0%BA%D1%83%D0%BB\">oracle al\u00e9atoire<\/a><\/noindex> signait les donn\u00e9es utilisateur avec un algorithme d\u00e9terministe, alors l'utilisateur pourrait toujours v\u00e9rifier une telle signature avec la cl\u00e9 publique et serait assur\u00e9 que la valeur obtenue est unique. L'oracle, quoi qu'il en soit, ne peut rien modifier, l'algorithme produit un r\u00e9sultat unique. En substance, l'utilisateur fixe le r\u00e9sultat, mais ne le conna\u00eet pas tant que l'oracle ne l'a pas publi\u00e9. Il s'av\u00e8re qu'il est possible de ne pas faire confiance \u00e0 l'oracle en g\u00e9n\u00e9ral, mais de v\u00e9rifier le r\u00e9sultat de son travail. Ainsi, en cas de v\u00e9rification r\u00e9ussie, une telle signature peut \u00eatre consid\u00e9r\u00e9e comme une source d'entropie pour un nombre pseudo-al\u00e9atoire.<\/p>\n<p><\/p>\n<p>La plateforme blockchain Waves utilise un sch\u00e9ma de signature <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/EdDSA\">EdDSA<\/a><\/noindex> une variante <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/EdDSA#Ed25519\">Ed25519<\/a><\/noindex>. Dans ce sch\u00e9ma, la signature consiste en des valeurs R et S, o\u00f9 R d\u00e9pend d'une valeur al\u00e9atoire, et S est calcul\u00e9 sur la base du message sign\u00e9, de la cl\u00e9 secr\u00e8te et de la m\u00eame valeur al\u00e9atoire que R. Il en r\u00e9sulte qu'il n'y a pas de d\u00e9pendance unique, pour le m\u00eame message utilisateur, il existe de nombreuses signatures valides.<\/p>\n<p><\/p>\n<p>Il est \u00e9vident qu'une telle signature, dans sa forme pure, ne peut pas \u00eatre utilis\u00e9e comme source de nombres pseudo-al\u00e9atoires, car elle est non d\u00e9terministe et, par cons\u00e9quent, peut facilement \u00eatre manipul\u00e9e par l'oracle.<\/p>\n<p><\/p>\n<p>Mais, comme il s'est av\u00e9r\u00e9, il est en r\u00e9alit\u00e9 possible de la rendre d\u00e9terministe.<\/p>\n<p><\/p>\n<p>J'avais de grands espoirs pour la <noindex><a rel=\"nofollow\" href=\"https:\/\/tools.ietf.org\/html\/draft-irtf-cfrg-vrf-04\">fonction al\u00e9atoire v\u00e9rifiable (VRF)<\/a><\/noindex>, mais apr\u00e8s avoir \u00e9tudi\u00e9 la mati\u00e8re, il a fallu abandonner cette option. Bien que le VRF propose une variante d\u00e9terministe de la signature et de sa preuve, il y a un aspect \u00e9trange dans l'algorithme qui ouvre une faille pour les manipulations de l'oracle. En effet, lors du calcul de la valeur k (<noindex><a rel=\"nofollow\" href=\"https:\/\/tools.ietf.org\/html\/draft-irtf-cfrg-vrf-04#section-5.1\">section 5.1<\/a><\/noindex>) un cl\u00e9 priv\u00e9e est utilis\u00e9e, qui reste inconnue de l'utilisateur, ce qui signifie que l'utilisateur ne peut pas v\u00e9rifier la validit\u00e9 du calcul de k, donc l'oracle peut utiliser n'importe quelle valeur k n\u00e9cessaire et en m\u00eame temps maintenir une base de donn\u00e9es de correspondances entre k et les donn\u00e9es sign\u00e9es, afin de toujours pouvoir recalculer un r\u00e9sultat correct selon le VRF. Si vous voyez un tirage bas\u00e9 sur le VRF sans divulguer la cl\u00e9 priv\u00e9e, vous pouvez faire la remarque : il est n\u00e9cessaire soit de r\u00e9v\u00e9ler la cl\u00e9, soit de l'exclure du calcul de k, alors la cl\u00e9 priv\u00e9e se r\u00e9v\u00e9lera d'elle-m\u00eame \u00e0 l'apparition de la premi\u00e8re signature. En r\u00e9sum\u00e9, comme d\u00e9j\u00e0 mentionn\u00e9, un sch\u00e9ma \u00e9trange pour un oracle al\u00e9atoire.<\/p>\n<p><\/p>\n<p>Apr\u00e8s avoir r\u00e9fl\u00e9chi et obtenu le soutien d'analystes locaux, un sch\u00e9ma de fonctionnement pour VECRO a \u00e9t\u00e9 \u00e9labor\u00e9.<\/p>\n<p><\/p>\n<p>VECRO est l'acronyme de Verifiable Elliptic Curve Random Oracle, ce qui signifie en fran\u00e7ais un oracle al\u00e9atoire v\u00e9rifiable bas\u00e9 sur des courbes elliptiques.<\/p>\n<p><\/p>\n<p>Tout s'est r\u00e9v\u00e9l\u00e9 assez simple, pour atteindre la d\u00e9terminit\u00e9, il est n\u00e9cessaire de fixer la valeur R avant l'apparition du message \u00e0 signer. Si R est fix\u00e9 et fait partie du message sign\u00e9, ce qui garantit en outre la fixation de R dans le message lui-m\u00eame, la valeur S est d\u00e9termin\u00e9e de mani\u00e8re unique par le message de l'utilisateur et peut donc \u00eatre utilis\u00e9e comme source de nombres pseudo-al\u00e9atoires.<\/p>\n<p><\/p>\n<p>Dans un tel sch\u00e9ma, peu importe comment R est fix\u00e9, cela reste de la responsabilit\u00e9 de l'oracle. L'important est que S soit d\u00e9termin\u00e9e de mani\u00e8re unique par l'utilisateur, mais sa valeur reste inconnue tant que l'oracle ne la publie pas. Tout comme nous le voulions !<\/p>\n<p><\/p>\n<p>En parlant de R fix\u00e9, notez que <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jedisct1\/libsodium\/issues\/170\">R r\u00e9utilis\u00e9<\/a><\/noindex> La signature de diff\u00e9rents messages r\u00e9v\u00e8le ind\u00e9niablement la cl\u00e9 secr\u00e8te dans le sch\u00e9ma EdDSA. Pour le propri\u00e9taire de l'oracle, il devient crucial d'exclure la possibilit\u00e9 de r\u00e9utiliser R pour signer plusieurs messages d'utilisateur. Cela signifie que, dans toutes les manipulations ou collusions, l'oracle risque toujours de perdre sa cl\u00e9 secr\u00e8te.<\/p>\n<p><\/p>\n<p>Ainsi, l'oracle doit offrir aux utilisateurs deux fonctions : l'initialisation, qui fixe la valeur de R, et la signature, qui retourne la valeur de S. Dans ce cas, la paire R, S constitue une signature v\u00e9rifiable classique d'un message utilisateur contenant la valeur fixe de R et des donn\u00e9es utilisateur arbitraires.<\/p>\n<p><\/p>\n<p>On pourrait objecter que ce sch\u00e9ma pour la blockchain n'est autre qu'une simple <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/348838\/\">sch\u00e9ma de commit-r\u00e9v\u00e9lation<\/a><\/noindex>. En effet, c'est le cas. Mais il y a plusieurs nuances. Tout d'abord, l'oracle utilise toujours la m\u00eame cl\u00e9 dans toutes les op\u00e9rations, ce qui est pratique dans les contrats. Deuxi\u00e8mement, il existe un risque de perte de la cl\u00e9 secr\u00e8te par l'oracle en cas de comportement incorrect, par exemple, si l'oracle permet des essais de r\u00e9sultats, alors il suffit de faire seulement deux essais pour conna\u00eetre la cl\u00e9 secr\u00e8te et obtenir un acc\u00e8s complet au portefeuille. Troisi\u00e8mement, une signature v\u00e9rifiable nativement dans la blockchain, qui est source d'al\u00e9atoire \u2014 c'est \u00e9l\u00e9gant.<\/p>\n<p><\/p>\n<p>L'id\u00e9e de mise en \u0153uvre a m\u00fbri pendant six mois, jusqu'\u00e0 ce qu'une motivation apparaisse sous la forme de <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/waves-lab\/waves-labs-announces-first-grant-recipients-7568f01fec22\">une subvention de Waves Labs<\/a><\/noindex>. Avec une grande subvention vient une grande responsabilit\u00e9, donc le projet doit voir le jour !<\/p>\n<p><\/p>\n<h1 id=\"realizaciya\">Mise en \u0153uvre<\/h1>\n<p><\/p>\n<p>Ainsi, dans ce projet <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/VECRO\">VECRO a \u00e9t\u00e9 r\u00e9alis\u00e9<\/a><\/noindex> sur la blockchain Waves en mode requ\u00eate-r\u00e9ponse \u00e0 l'aide de transactions de transfert entre l'utilisateur et l'oracle. Dans ce cadre, un script est install\u00e9 sur le compte de l'oracle, qui contr\u00f4le le fonctionnement conform\u00e9ment \u00e0 la logique d\u00e9crite ci-dessus. Les transactions de l'oracle sont v\u00e9rifi\u00e9es en reconstruisant toute la cha\u00eene d'interaction avec l'utilisateur. La v\u00e9rification de la valeur finale implique toutes les quatre transactions, le contrat intelligent encha\u00eene celles-ci sur un fil de v\u00e9rification strict, v\u00e9rifiant pas \u00e0 pas toutes les valeurs et ne laissant aucune place pour des manipulations.<\/p>\n<p><\/p>\n<p>Encore une fois, pour que ce soit bien clair. L'oracle ne fonctionne pas seulement selon le sch\u00e9ma propos\u00e9. Son fonctionnement est enti\u00e8rement contr\u00f4l\u00e9 au niveau de la blockchain par une installation d\u00e9finie. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/VECRO\/blob\/master\/vecro.ride\">smart contract \u00e0 jamais<\/a><\/noindex>. Un pas \u00e0 gauche, et la transaction ne passera tout simplement pas. Ainsi, si la transaction est entr\u00e9e dans la blockchain, l'utilisateur n'a m\u00eame rien \u00e0 v\u00e9rifier, des centaines de n\u0153uds du r\u00e9seau ont d\u00e9j\u00e0 tout v\u00e9rifi\u00e9 pour lui.<\/p>\n<p><\/p>\n<p>Actuellement, un VECRO est lanc\u00e9 sur le r\u00e9seau principal de Waves (vous pouvez lancer le v\u00f4tre, ce n'est pas compliqu\u00e9, il suffit de <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/VECRO\/blob\/master\/config.sample.php\">jeter un \u0153il \u00e0 l'exemple de configuration<\/a><\/noindex>). Le code actuel fonctionne sur PHP (sur <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\">WavesKit<\/a><\/noindex>, dont <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/446110\/\">j'ai parl\u00e9 pr\u00e9c\u00e9demment.<\/a><\/noindex>).<\/p>\n<p><\/p>\n<p>Pour utiliser le service oracle, il est n\u00e9cessaire de :<\/p>\n<p><\/p>\n<ul>\n<li>Fixer R;\n<ul>\n<li>Envoyer au minimum 0.005 Waves \u00e0 l'alias de l'oracle init@vecr;<\/li>\n<li>Recevoir le R-code dans le champ attachment lors du transfert de 1 R-vecr token de l'oracle \u00e0 l'utilisateur;<\/li>\n<\/ul>\n<\/li>\n<li>Obtenir la signature;\n<ul>\n<li>Envoyer au minimum 0.005 Waves \u00e0 l'alias de l'oracle random@vecr, et indiquer OBLIGATOIREMENT dans le champ attachment le R-code obtenu pr\u00e9c\u00e9demment et des donn\u00e9es utilisateur suppl\u00e9mentaires ;<\/li>\n<li>Recevoir le S-code dans le champ attachment lors du transfert de 1 S-vecr token de l'oracle \u00e0 l'utilisateur ;<\/li>\n<\/ul>\n<\/li>\n<li>Utiliser le S-code comme source de nombre pseudo-al\u00e9atoire.<\/li>\n<\/ul>\n<p><\/p>\n<p>Nuances de l'impl\u00e9mentation actuelle :<\/p>\n<p><\/p>\n<ul>\n<li>Les Waves envoy\u00e9s \u00e0 l'oracle sont utilis\u00e9s comme commission pour la transaction de retour \u00e0 l'utilisateur, jusqu'\u00e0 un maximum de 1 Waves ;<\/li>\n<li>Le R-code est la concat\u00e9nation d'un octet du symbole 'R' et de 32 octets de valeur R en encodage base58 ;<\/li>\n<li>Le R-code dans l'attachment doit \u00eatre en premier, les donn\u00e9es utilisateur viennent apr\u00e8s le R-code ;<\/li>\n<li>Le S-code est la concat\u00e9nation d'un octet du symbole 'S' et de 32 octets de valeur S en encodage base58 ;<\/li>\n<li>S est le r\u00e9sultat d'une division modulo, il ne faut donc pas utiliser S comme num\u00e9ro pseudo-al\u00e9atoire de 256 bits (ce nombre peut \u00eatre consid\u00e9r\u00e9 comme un nombre pseudo-al\u00e9atoire de maximum 252 bits) ;<\/li>\n<li>La solution la plus simple consiste \u00e0 utiliser le hash du S-code comme nombre pseudo-al\u00e9atoire.<\/li>\n<\/ul>\n<p><\/p>\n<p>Exemple d'obtention du S-code :<\/p>\n<p><\/p>\n<ul>\n<li>Initialisation : <noindex><a rel=\"nofollow\" href=\"https:\/\/wavesexplorer.com\/tx\/8gc8jwM7JrPNehoDs7NVyos7BsufYktvkwVW1B6FAY6\">https:\/\/wavesexplorer.com\/tx\/8gc8jwM7JrPNehoDs7NVyos7BsufYktvkwVW1B6FAY6<\/a><\/noindex><\/li>\n<li>Obtention du R-code : <noindex><a rel=\"nofollow\" href=\"https:\/\/wavesexplorer.com\/tx\/9eB25SbzEwvHEbm8pcKj7MGDrYv1u3Fxpj696FkJ96hd\">https:\/\/wavesexplorer.com\/tx\/9eB25SbzEwvHEbm8pcKj7MGDrYv1u3Fxpj696FkJ96hd<\/a><\/noindex><\/li>\n<li>Demande du r\u00e9sultat de la signature du R-code et des donn\u00e9es utilisateur 'random': <noindex><a rel=\"nofollow\" href=\"https:\/\/wavesexplorer.com\/tx\/6faoFJobEsugDFYmYmfsbtQYABmckNuE2kevaLh7ifzz\">https:\/\/wavesexplorer.com\/tx\/6faoFJobEsugDFYmYmfsbtQYABmckNuE2kevaLh7ifzz<\/a><\/noindex><\/li>\n<li>Obtention du S-code : <noindex><a rel=\"nofollow\" href=\"https:\/\/wavesexplorer.com\/tx\/C5VrFLQcprbA1KXAToaNvMP4Kg2rq43NkwWuADAA7wXX\">https:\/\/wavesexplorer.com\/tx\/C5VrFLQcprbA1KXAToaNvMP4Kg2rq43NkwWuADAA7wXX<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<p>D'un point de vue technique, l'oracle est enti\u00e8rement op\u00e9rationnel, vous pouvez l'utiliser sans crainte. D'un point de vue utilisateur, il manque une interface graphique conviviale, cela devra attendre.<\/p>\n<p><\/p>\n<p>Je serais heureux de r\u00e9pondre \u00e0 vos questions et de prendre vos remarques, merci.<\/p>\n<p>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/449340\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u0442 \u0438\u0434\u0435\u0438 \u0434\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438: \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u0441\u0445\u0435\u043c\u0443 \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u043d\u0430 \u044d\u043b\u043b\u0438\u043f\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043a\u0440\u0438\u0432\u043e\u0439, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0430 \u0431\u044b\u043b\u0430 \u0434\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439, \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430 \u0435\u0451 \u043e\u0441\u043d\u043e\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c\u044b\u0445 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430 \u043f\u0441\u0435\u0432\u0434\u043e\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b. \u0418\u0434\u0435\u044f \u041e\u0441\u0435\u043d\u044c\u044e 2018 \u0432 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0435 Waves \u0431\u044b\u043b\u0438 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043f\u0435\u0440\u0432\u044b\u0435 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u044b, \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a \u0432\u043e\u043f\u0440\u043e\u0441 \u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u0441\u0435\u0432\u0434\u043e\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0432\u0435\u0440\u044f\u0442\u044c. \u041b\u043e\u043c\u0430\u044f \u0433\u043e\u043b\u043e\u0432\u0443 \u043d\u0430\u0434 \u044d\u0442\u0438\u043c \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":24158,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-32343","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u0442 \u0438\u0434\u0435\u0438 \u0434\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438: \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u0441\u0445\u0435\u043c\u0443 \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u043d\u0430 \u044d\u043b\u043b\u0438\u043f\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043a\u0440\u0438\u0432\u043e\u0439, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0430 \u0431\u044b\u043b\u0430 \u0434\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439, \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430 \u0435\u0451 \u043e\u0441\u043d\u043e\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c\u044b\u0445 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/cluchajnyj-orakul-na-osnove-tsifrovoj-podpisi-v-blokchejne\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47C\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0439 \u043e\u0440\u0430\u043a\u0443\u043b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u0432 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u0442 \u0438\u0434\u0435\u0438 \u0434\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438: \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u0441\u0445\u0435\u043c\u0443 \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u043d\u0430 \u044d\u043b\u043b\u0438\u043f\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043a\u0440\u0438\u0432\u043e\u0439, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0430 \u0431\u044b\u043b\u0430 \u0434\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439, \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430 \u0435\u0451 \u043e\u0441\u043d\u043e\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c\u044b\u0445 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/cluchajnyj-orakul-na-osnove-tsifrovoj-podpisi-v-blokchejne\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:46:27+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:46:27+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Oracle al\u00e9atoire bas\u00e9 sur une signature num\u00e9rique dans la blockchain | ProHoster","description":"De l'id\u00e9e \u00e0 la r\u00e9alisation : nous modifions le sch\u00e9ma existant de signature num\u00e9rique sur courbe elliptique pour le rendre d\u00e9terministe et proposons, sur cette base, des fonctionnalit\u00e9s de v\u00e9rification dans la blockchain.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/cluchajnyj-orakul-na-osnove-tsifrovoj-podpisi-v-blokchejne","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47C\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0439 \u043e\u0440\u0430\u043a\u0443\u043b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u0432 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0435 | ProHoster","og:description":"\u041e\u0442 \u0438\u0434\u0435\u0438 \u0434\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438: \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u0441\u0445\u0435\u043c\u0443 \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u043d\u0430 \u044d\u043b\u043b\u0438\u043f\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043a\u0440\u0438\u0432\u043e\u0439, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0430 \u0431\u044b\u043b\u0430 \u0434\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439, \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430 \u0435\u0451 \u043e\u0441\u043d\u043e\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c\u044b\u0445 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430.","og:url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/cluchajnyj-orakul-na-osnove-tsifrovoj-podpisi-v-blokchejne","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:46:27+00:00","article:modified_time":"2019-10-31T18:46:27+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"32343","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 10:26:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:00:23","updated":"2026-01-21 10:26:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/32343","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=32343"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/32343\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/24158"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=32343"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=32343"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=32343"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}