{"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\/es\/blog\/administrirovanie\/cluchajnyj-orakul-na-osnove-tsifrovoj-podpisi-v-blokchejne","title":{"rendered":"Or\u00e1culo aleatorio basado en firma digital en blockchain","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Desde la idea hasta la implementaci\u00f3n: modificamos el esquema existente de firma digital sobre curvas el\u00edpticas para que sea determinista, y proporcionamos en su base funciones para obtener n\u00fameros pseudorandom verificables dentro de la blockchain.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Or\u00e1culo aleatorio basado en firma digital en 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\">La idea<\/h1>\n<p><\/p>\n<p>En oto\u00f1o de 2018, en la blockchain Waves se <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.wavesplatform.com\/smart-accounts-finally-activated-on-waves-mainnet-8bb7c7b67beb\">activaron los primeros contratos inteligentes<\/a><\/noindex>, inmediatamente surgi\u00f3 la pregunta sobre la posibilidad de obtener <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\">n\u00fameros pseudorandom<\/a><\/noindex>, en los que se pueda confiar.<\/p>\n<p><\/p>\n<p>Reflexionando sobre esta cuesti\u00f3n, llegu\u00e9 a la conclusi\u00f3n final: cualquier blockchain es una celda, obtener una fuente confiable de entrop\u00eda en un sistema cerrado es imposible.<\/p>\n<p><\/p>\n<p>Pero una idea me agrad\u00f3: 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\">or\u00e1culo aleatorio<\/a><\/noindex> firma los datos del usuario con un algoritmo determinista, entonces el usuario siempre podr\u00e1 verificar dicha firma con la clave p\u00fablica, y estar\u00e1 seguro de que el valor obtenido es \u00fanico. El or\u00e1culo, por mucho que quiera, no puede cambiar nada, el algoritmo produce un resultado \u00fanico. De hecho, el usuario fija el resultado, pero no lo conoce hasta que el or\u00e1culo lo publique. As\u00ed, se puede no confiar en absoluto en el or\u00e1culo, pero verificar el resultado de su trabajo. Entonces, en caso de que la verificaci\u00f3n sea exitosa, tal firma puede considerarse una fuente de entrop\u00eda para un n\u00famero pseudorandom.<\/p>\n<p><\/p>\n<p>En la plataforma blockchain Waves se utiliza un esquema de firma <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/EdDSA\">EdDSA<\/a><\/noindex> una variante <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/EdDSA#Ed25519\">Ed25519<\/a><\/noindex>. En este esquema, la firma consiste en los valores R y S, donde R depende de un valor aleatorio, y S se calcula sobre la base del mensaje firmado, la clave privada y el mismo n\u00famero aleatorio que R. Por lo tanto, no hay una dependencia \u00fanica; para el mismo mensaje del usuario existe una multitud de firmas v\u00e1lidas.<\/p>\n<p><\/p>\n<p>Es evidente que tal firma en su forma pura no se puede utilizar como fuente de n\u00fameros pseudorandom, ya que es no determinista y, por lo tanto, puede ser f\u00e1cilmente manipulada por el or\u00e1culo.<\/p>\n<p><\/p>\n<p>Pero, como se descubri\u00f3, en realidad es posible hacerla determinista.<\/p>\n<p><\/p>\n<p>Ten\u00eda grandes esperanzas en un <noindex><a rel=\"nofollow\" href=\"https:\/\/tools.ietf.org\/html\/draft-irtf-cfrg-vrf-04\">funci\u00f3n aleatoria verificable (VRF)<\/a><\/noindex>, pero despu\u00e9s de estudiar el material, se tuvo que renunciar a esta variante. Aunque VRF ofrece una variante determinista de firma y su prueba, hay un punto extra\u00f1o en el algoritmo que abre un agujero negro para las manipulaciones del or\u00e1culo. Espec\u00edficamente, al calcular el valor de k (<noindex><a rel=\"nofollow\" href=\"https:\/\/tools.ietf.org\/html\/draft-irtf-cfrg-vrf-04#section-5.1\">secci\u00f3n 5.1<\/a><\/noindex>) se utiliza una clave privada que permanece desconocida para el usuario, lo que significa que el usuario no puede verificar la correcci\u00f3n del c\u00e1lculo de k, lo que permite al or\u00e1culo usar cualquier valor de k que necesite y al mismo tiempo mantener una base de datos de correspondencias entre k y los datos firmados, para siempre poder volver a calcular el resultado correcto seg\u00fan VRF. Si ves un sorteo basado en VRF sin revelar la clave privada, puedes ser astuto: se\u00f1alar la necesidad de o revelar la clave, o excluirla del c\u00e1lculo de k, entonces la clave privada se revelar\u00e1 autom\u00e1ticamente con la primera firma que aparezca. En resumen, como se ha mencionado, es un esquema extra\u00f1o para un or\u00e1culo aleatorio.<\/p>\n<p><\/p>\n<p>Despu\u00e9s de reflexionar un poco y con el apoyo de analistas locales, naci\u00f3 el esquema de trabajo de VECRO.<\/p>\n<p><\/p>\n<p>VECRO es un acr\u00f3nimo de Verifiable Elliptic Curve Random Oracle, que en espa\u00f1ol significa or\u00e1culo aleatorio verificable en curvas el\u00edpticas.<\/p>\n<p><\/p>\n<p>Todo result\u00f3 ser bastante simple, para lograr la determinaci\u00f3n es necesario fijar el valor de R antes de que aparezca el mensaje firmado. Si R est\u00e1 fijado y es parte del mensaje firmado, lo que garantiza adicionalmente la fijaci\u00f3n de R en el mismo mensaje firmado, el valor de S se determina de manera \u00fanica por el mensaje del usuario y, por lo tanto, puede usarse como fuente de n\u00fameros pseudoaleatorios.<\/p>\n<p><\/p>\n<p>En este esquema no importa c\u00f3mo se fija R, eso queda en la responsabilidad del or\u00e1culo. Lo importante es que S se determina de manera \u00fanica por el usuario, pero su valor es desconocido hasta que el or\u00e1culo lo publique. \u00a1Todo como quer\u00edamos!<\/p>\n<p><\/p>\n<p>Hablando de R fijo, ten en cuenta que <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jedisct1\/libsodium\/issues\/170\">R reutilizado<\/a><\/noindex> Al firmar diferentes mensajes, se revela sin ambig\u00fcedades la clave privada en el esquema EdDSA. Para el propietario del or\u00e1culo, es crucial eliminar la posibilidad de reutilizar R para firmar distintos mensajes del usuario. Es decir, en cualquier manipulaci\u00f3n o conspiraci\u00f3n, el or\u00e1culo siempre arriesgar\u00e1 la p\u00e9rdida de su clave privada.<\/p>\n<p><\/p>\n<p>En resumen, el or\u00e1culo debe proporcionar a los usuarios dos funciones: la inicializaci\u00f3n, que fija el valor R, y la firma, que devuelve el valor S. De este modo, el par R, S es una firma verificable com\u00fan del mensaje del usuario que contiene el valor R fijo y datos arbitrarios del usuario.<\/p>\n<p><\/p>\n<p>Se podr\u00eda argumentar que este esquema para blockchain no es m\u00e1s que un simple <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/348838\/\">esquema de compromiso-revelaci\u00f3n<\/a><\/noindex>. En esencia, s\u00ed, lo es. Pero hay varios matices. En primer lugar, el or\u00e1culo siempre trabaja con la misma clave en todas las operaciones, lo cual es conveniente para utilizar en contratos. En segundo lugar, existe el riesgo de que el or\u00e1culo pierda su clave privada debido a un comportamiento incorrecto. Por ejemplo, si el or\u00e1culo permite hacer pruebas del resultado, bastar\u00eda con hacer solo dos pruebas para conocer la clave privada y obtener acceso completo a la billetera. En tercer lugar, la firma nativamente verificable en blockchain, que es la fuente de aleatoriedad, es algo interesante.<\/p>\n<p><\/p>\n<p>Durante seis meses, la idea de implementaci\u00f3n estuvo latente en mi mente hasta que finalmente apareci\u00f3 la motivaci\u00f3n en forma de <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/waves-lab\/waves-labs-announces-first-grant-recipients-7568f01fec22\">una subvenci\u00f3n de Waves Labs<\/a><\/noindex>. Con una gran subvenci\u00f3n viene una gran responsabilidad, \u00a1as\u00ed que el proyecto debe llevarse a cabo!<\/p>\n<p><\/p>\n<h1 id=\"realizaciya\">Implementaci\u00f3n<\/h1>\n<p><\/p>\n<p>As\u00ed que, en este proyecto, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/VECRO\">VECRO fue implementado<\/a><\/noindex> en la blockchain de Waves en modo de solicitud-respuesta mediante transacciones de transferencia entre el usuario y el or\u00e1culo. Al mismo tiempo, en la cuenta del or\u00e1culo se instal\u00f3 un script que controla su funcionamiento estrictamente de acuerdo con la l\u00f3gica descrita anteriormente. Las transacciones del or\u00e1culo son verificadas restaurando toda la cadena de interacci\u00f3n con el usuario. En la verificaci\u00f3n del valor final participan las cuatro transacciones, el contrato inteligente las enlaza en un hilo de verificaci\u00f3n estricto, verificando paso a paso todos los valores y sin dejar lugar para ninguna maniobra.<\/p>\n<p><\/p>\n<p>Una vez m\u00e1s, para que quede claro y comprensible. El or\u00e1culo no simplemente opera seg\u00fan el esquema propuesto. Su funcionamiento est\u00e1 completamente controlado a nivel de blockchain. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/VECRO\/blob\/master\/vecro.ride\">firmemente con un contrato inteligente<\/a><\/noindex>. Un paso a la izquierda y la transacci\u00f3n simplemente no se procesar\u00e1. As\u00ed que, si la transacci\u00f3n ha entrado en la blockchain, el usuario ni siquiera necesita verificar nada, ya que cientos de nodos de la red lo han comprobado todo por \u00e9l.<\/p>\n<p><\/p>\n<p>En este momento, en la red principal de Waves se ha lanzado un VECRO (puedes lanzar el tuyo, no es dif\u00edcil, solo <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/VECRO\/blob\/master\/config.sample.php\">mira un ejemplo de configuraci\u00f3n<\/a><\/noindex>). El c\u00f3digo actual funciona en PHP (en <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\">WavesKit<\/a><\/noindex>, del cual <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/446110\/\">habl\u00e9 anteriormente<\/a><\/noindex>).<\/p>\n<p><\/p>\n<p>Para poder utilizar el servicio del or\u00e1culo, es necesario:<\/p>\n<p><\/p>\n<ul>\n<li>Fijar R;\n<ul>\n<li>Enviar un m\u00ednimo de 0.005 Waves al alias del or\u00e1culo init@vecr;<\/li>\n<li>Obtener el R-code en el campo de adjunto en la transferencia de 1 token R-vecr del or\u00e1culo al usuario;<\/li>\n<\/ul>\n<\/li>\n<li>Obtener la firma;\n<ul>\n<li>Enviar un m\u00ednimo de 0.005 Waves al alias del or\u00e1culo random@vecr, y tambi\u00e9n OBLIGATORIAMENTE indicar en el campo de adjunto el R-code obtenido anteriormente y datos adicionales del usuario;<\/li>\n<li>Obtener el S-code en el campo de adjunto en la transferencia de 1 token S-vecr del or\u00e1culo al usuario;<\/li>\n<\/ul>\n<\/li>\n<li>Utilizar el S-code como fuente de n\u00famero pseudoaleatorio.<\/li>\n<\/ul>\n<p><\/p>\n<p>Particularidades de la implementaci\u00f3n actual:<\/p>\n<p><\/p>\n<ul>\n<li>Los Waves enviados al or\u00e1culo se utilizan como comisi\u00f3n para la transacci\u00f3n inversa al usuario, hasta un m\u00e1ximo de 1 Waves;<\/li>\n<li>El R-code es la concatenaci\u00f3n del byte del car\u00e1cter \u2018R\u2019 y del valor de 32 bytes R en codificaci\u00f3n base58;<\/li>\n<li>El R-code en el adjunto debe ser el primero, los datos del usuario van despu\u00e9s del R-code;<\/li>\n<li>El S-code es la concatenaci\u00f3n del byte del car\u00e1cter \u2018S\u2019 y del valor de 32 bytes S en codificaci\u00f3n base58;<\/li>\n<li>S es el resultado de una divisi\u00f3n m\u00f3dulo, por lo que no se puede usar S como un n\u00famero pseudoaleatorio de 256 bits (este n\u00famero puede considerarse como un n\u00famero pseudoaleatorio de m\u00e1ximo 252 bits);<\/li>\n<li>La opci\u00f3n m\u00e1s sencilla es usar el hash del S-code como n\u00famero pseudoaleatorio.<\/li>\n<\/ul>\n<p><\/p>\n<p>Ejemplo de obtenci\u00f3n del S-code:<\/p>\n<p><\/p>\n<ul>\n<li>Inicializaci\u00f3n: <noindex><a rel=\"nofollow\" href=\"https:\/\/wavesexplorer.com\/tx\/8gc8jwM7JrPNehoDs7NVyos7BsufYktvkwVW1B6FAY6\">https:\/\/wavesexplorer.com\/tx\/8gc8jwM7JrPNehoDs7NVyos7BsufYktvkwVW1B6FAY6<\/a><\/noindex><\/li>\n<li>Obtenci\u00f3n del R-code: <noindex><a rel=\"nofollow\" href=\"https:\/\/wavesexplorer.com\/tx\/9eB25SbzEwvHEbm8pcKj7MGDrYv1u3Fxpj696FkJ96hd\">https:\/\/wavesexplorer.com\/tx\/9eB25SbzEwvHEbm8pcKj7MGDrYv1u3Fxpj696FkJ96hd<\/a><\/noindex><\/li>\n<li>Solicitud del resultado de la firma del R-code y los datos del usuario 'random': <noindex><a rel=\"nofollow\" href=\"https:\/\/wavesexplorer.com\/tx\/6faoFJobEsugDFYmYmfsbtQYABmckNuE2kevaLh7ifzz\">https:\/\/wavesexplorer.com\/tx\/6faoFJobEsugDFYmYmfsbtQYABmckNuE2kevaLh7ifzz<\/a><\/noindex><\/li>\n<li>Obtenci\u00f3n del 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>Desde un punto de vista t\u00e9cnico, el or\u00e1culo est\u00e1 completamente listo para funcionar, puedes usarlo sin problemas. Desde el punto de vista del usuario promedio, falta una interfaz gr\u00e1fica conveniente, eso a\u00fan tendr\u00e1 que esperar.<\/p>\n<p><\/p>\n<p>Estar\u00e9 encantado de responder preguntas y recibir comentarios, gracias.<\/p>\n<p>Fuente: <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\/es\/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=\"es_ES\" \/>\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\/es\/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\udd47Or\u00e1culo aleatorio basado en firma digital en blockchain | ProHoster","description":"Desde la idea hasta la implementaci\u00f3n: modificamos el esquema de firma digital existente en la curva el\u00edptica para que sea determinista, y ofrecemos funciones basadas en \u00e9l para la obtenci\u00f3n de verificaciones en el marco de la blockchain.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/cluchajnyj-orakul-na-osnove-tsifrovoj-podpisi-v-blokchejne","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","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\/es\/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\/es\/wp-json\/wp\/v2\/posts\/32343","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=32343"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/32343\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/24158"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=32343"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=32343"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=32343"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}