{"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\/da\/blog\/administrirovanie\/cluchajnyj-orakul-na-osnove-tsifrovoj-podpisi-v-blokchejne","title":{"rendered":"Tilf\u00e6ldigt orakel baseret p\u00e5 digital signatur i blockchain","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Fra id\u00e9 til implementering: vi modificerer den eksisterende skema for digital underskrift baseret p\u00e5 elliptiske kurver, s\u00e5 den bliver deterministisk, og tilbyder funktioner til at generere verificerbare pseudotilf\u00e6ldige tal baseret p\u00e5 den.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Tilf\u00e6ldigt orakel baseret p\u00e5 digital signatur i 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\u00e9<\/h1>\n<p><\/p>\n<p>I efter\u00e5ret 2018 blev der aktivere de f\u00f8rste smart contracts i Waves blockchain <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.wavesplatform.com\/smart-accounts-finally-activated-on-waves-mainnet-8bb7c7b67beb\">, hvilket straks rejste sp\u00f8rgsm\u00e5let om muligheden for at opn\u00e5<\/a><\/noindex>pseudotilf\u00e6ldige tal <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\">, som man kan stole p\u00e5.<\/a><\/noindex>Da jeg t\u00e6nkte over dette sp\u00f8rgsm\u00e5l, kom jeg endelig frem til konklusionen: enhver blockchain er en f\u00e6ngsel, det er umuligt at f\u00e5 en p\u00e5lidelig kilde til entropi i et lukket system.<\/p>\n<p><\/p>\n<p>Men der var ideen, jeg kunne lide: hvis en<\/p>\n<p><\/p>\n<p>tilf\u00e6ldig oracle <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\">signerer brugerdata med et deterministisk algoritme, s\u00e5 kan brugeren altid b\u00e5de verificere en s\u00e5dan underskrift ved hj\u00e6lp af den offentlige n\u00f8gle og v\u00e6re sikker p\u00e5, at den opn\u00e5ede v\u00e6rdi er unik. Oracle kan ikke \u00e6ndre noget, algoritmen giver et entydigt resultat. I bund og grund fasts\u00e6tter brugeren resultatet, men ved det ikke, f\u00f8r oraklet offentligg\u00f8r det. Det viser sig, at man slet ikke beh\u00f8ver at stole p\u00e5 oraklet, men blot verificere resultatet af dets arbejde. S\u00e5 i tilf\u00e6lde af en vellykket verifikation kan en s\u00e5dan underskrift betragtes som en kilde til entropi for det pseudotilf\u00e6ldige tal.<\/a><\/noindex> Waves blockchain-platformen bruger en signaturordning<\/p>\n<p><\/p>\n<p>EdDSA <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/EdDSA\">. I denne ordning best\u00e5r en signatur af v\u00e6rdierne R og S, hvor R afh\u00e6nger af et tilf\u00e6ldigt tal, og S beregnes p\u00e5 baggrund af den signerede besked, den private n\u00f8gle og det samme tilf\u00e6ldige tal som R. Det betyder, at der ikke er nogen entydig afh\u00e6ngighed, for den samme brugerbesked findes der mange gyldige signaturer.<\/a><\/noindex> variant <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/EdDSA#Ed25519\">Ed25519<\/a><\/noindex>Det er tydeligt, at en ren version af en s\u00e5dan signatur ikke kan bruges som kilde til pseudotilf\u00e6ldige tal, da den er nondeterministisk og s\u00e5ledes let kan manipuleres af oraklet.<\/p>\n<p><\/p>\n<p>Men som det viste sig, er det faktisk muligt at g\u00f8re den deterministisk.<\/p>\n<p><\/p>\n<p>Jeg havde store forh\u00e5bninger til<\/p>\n<p><\/p>\n<p>verificerbare tilf\u00e6ldige funktioner (VRF) <noindex><a rel=\"nofollow\" href=\"https:\/\/tools.ietf.org\/html\/draft-irtf-cfrg-vrf-04\">en verificerbar tilf\u00e6ldig funktion (VRF)<\/a><\/noindex>, men efter at have studeret materialet m\u00e5tte vi opgive denne mulighed. Selvom VRF tilbyder en deterministisk metode til underskrift og dens bevis, er der et underligt sted i algoritmen, der \u00e5bner en sort hul for manipulationer af oraklet. Specifikt, n\u00e5r v\u00e6rdien k beregnes (<noindex><a rel=\"nofollow\" href=\"https:\/\/tools.ietf.org\/html\/draft-irtf-cfrg-vrf-04#section-5.1\">afsnit 5.1<\/a><\/noindex>), bruges en hemmelig n\u00f8gle, som forbliver ukendt for brugeren, hvilket betyder, at brugeren ikke kan verificere korrektheden af beregningen af k, derfor kan oraklet bruge enhver v\u00e6rdi for k, det \u00f8nsker, og samtidig f\u00f8re en database med forbindelser mellem k og de data, der underskrives, for altid at v\u00e6re i stand til at genberegne et korrekt resultat set fra VRF\u2019s synspunkt. Ser du et VRF-baseret lotteri uden at offentligg\u00f8re den hemmelige n\u00f8gle, kan du komme med en bem\u00e6rkning: p\u00e5pege n\u00f8dvendigheden af enten at offentligg\u00f8re n\u00f8gle eller udelade den fra beregningen af k, s\u00e5 vil n\u00f8glen automatisk blive afsl\u00f8ret ved den f\u00f8rste underskrift. Generelt, som allerede n\u00e6vnt, en underlig ordning for et tilf\u00e6ldigt orakel.<\/p>\n<p><\/p>\n<p>Efter lidt overvejelse og med st\u00f8tte fra lokale analytikere blev der udviklet en arbejdsordning for VECRO.<\/p>\n<p><\/p>\n<p>VECRO er en forkortelse for Verifiable Elliptic Curve Random Oracle, som p\u00e5 dansk betyder verificerbar tilf\u00e6ldig orakel p\u00e5 elliptiske kurver.<\/p>\n<p><\/p>\n<p>Det viste sig at v\u00e6re ret simpelt, for at opn\u00e5 determinisme kr\u00e6ves det, at v\u00e6rdien R fasts\u00e6ttes inden den underskrevne besked optr\u00e6der. Hvis R er fastsat og er en del af den underskrevne besked, hvilket yderligere sikrer, at R er fastsat i selve den underskrevne besked, s\u00e5 bestemmes v\u00e6rdien S entydigt af brugermeddelelsen og kan derfor anvendes som kilde til pseudotilf\u00e6ldige tal.<\/p>\n<p><\/p>\n<p>I en s\u00e5dan ordning er det ligegyldigt, hvordan R fasts\u00e6ttes, det forbliver oraklets ansvar. Det vigtige er, at S entydigt defineres af brugeren, men dens v\u00e6rdi er ukendt, indtil oraklet offentligg\u00f8r den. Pr\u00e6cis som vi \u00f8nskede!<\/p>\n<p><\/p>\n<p>N\u00e5r vi taler om det fastsatte R, s\u00e5 bem\u00e6rk, at <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jedisct1\/libsodium\/issues\/170\">genbrugt R<\/a><\/noindex> N\u00e5r man signer forskellige meddelelser, afsl\u00f8rer det entydigt den private n\u00f8gle i EdDSA-skemaet. For ejeren af oraklet bliver det ekstremt vigtigt at udelukke muligheden for genbrug af R til at signere forskellige brugerbeskeder. Det vil sige, at uanset hvad der sker, vil oraklet altid risikere at miste sin private n\u00f8gle.<\/p>\n<p><\/p>\n<p>Alt i alt skal oraklet tilbyde brugerne to funktioner: initialisering, der fasts\u00e6tter v\u00e6rdien R, og signatur, der returnerer v\u00e6rdien S. Her er parret R, S en almindelig verificerbar signatur p\u00e5 et brugerbesked, der indeholder den faste v\u00e6rdi R og brugerens vilk\u00e5rlige data.<\/p>\n<p><\/p>\n<p>Man kan indvende, at dette skema til blockchain ikke er andet end et almindeligt <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/348838\/\">commit-reveal skema.<\/a><\/noindex>I bund og grund ja, det er det. Men der er nogle nuancer. For det f\u00f8rste arbejder oraklet altid med den samme n\u00f8gle i alle operationer, hvilket g\u00f8r det praktisk at bruge i kontrakter. For det andet er der risiko for, at oraklet mister den private n\u00f8gle ved forkert adf\u00e6rd, for eksempel hvis oraklet tillader at tage pr\u00f8ver af resultatet; s\u00e5 er det nok at tage to pr\u00f8ver for at finde den private n\u00f8gle og f\u00e5 fuld adgang til tegnebogen. For det tredje er en indbygget verificerbar signatur p\u00e5 blockchain, der er kilden til tilf\u00e6ldighed \u2014 det er flot.<\/p>\n<p><\/p>\n<p>I et halvt \u00e5r maturede id\u00e9en om implementeringen i mit hoved, indtil motivet endelig dukkede op i form af <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/waves-lab\/waves-labs-announces-first-grant-recipients-7568f01fec22\">et legat fra Waves Labs.<\/a><\/noindex>Med et stort legat f\u00f8lger et stort ansvar, s\u00e5 projektet skal f\u00f8res ud i livet!<\/p>\n<p><\/p>\n<h1 id=\"realizaciya\">Implementering<\/h1>\n<p><\/p>\n<p>S\u00e5 i dette projekt <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/VECRO\">blev VECRO implementeret<\/a><\/noindex> p\u00e5 Waves blockchain i en request-response mode ved hj\u00e6lp af overf\u00f8rsels transaktioner mellem brugeren og oraklet. P\u00e5 oraklets konto er der installeret et script, der kontrollerer driften strengt i overensstemmelse med den ovenfor beskrevne logik. Oraklets transaktioner gennemg\u00e5r verifikation med genoprettelse af hele k\u00e6den af interaktioner med brugeren. Alle fire transaktioner deltager i verificeringen af den endelige v\u00e6rdi; smartkontrakten sn\u00f8rer dem p\u00e5 en streng kontroltr\u00e5d, trin for trin verificerer den alle v\u00e6rdier og efterlader ikke plads til manipulation.<\/p>\n<p><\/p>\n<p>Endnu en gang, for at det kan sive ind og blive klarere. Oraklet fungerer ikke bare efter det foresl\u00e5ede skema. Dets arbejde kontrolleres fuldst\u00e6ndigt p\u00e5 blockchain-niveau af den installerede <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/VECRO\/blob\/master\/vecro.ride\">fastgjort med en smart kontrakt<\/a><\/noindex>. \u00c9t skridt til venstre, og transaktionen vil simpelthen ikke g\u00e5 igennem. S\u00e5 hvis transaktionen er blevet registreret p\u00e5 blockchain, beh\u00f8ver brugeren ikke engang at tjekke noget, det er allerede blevet verificeret af hundrede noder i netv\u00e6rket.<\/p>\n<p><\/p>\n<p>I \u00f8jeblikket er der en VECRO lanceret i Waves hovednetv\u00e6rk (du kan ogs\u00e5 starte din egen, det er ikke sv\u00e6rt, bare <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/VECRO\/blob\/master\/config.sample.php\">se p\u00e5 eksemplet p\u00e5 konfiguration<\/a><\/noindex>). Den nuv\u00e6rende kode k\u00f8rer p\u00e5 PHP (p\u00e5 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\">WavesKit<\/a><\/noindex>, som jeg har n\u00e6vnt tidligere <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/446110\/\">For at bruge orakeltjenesten er det n\u00f8dvendigt at:<\/a><\/noindex>).<\/p>\n<p><\/p>\n<p>Fastl\u00e6gge R;<\/p>\n<p><\/p>\n<ul>\n<li>Sende minimum 0.005 Waves til oraklets alias init@vecr;\n<ul>\n<li>Modtage R-kode i feltet attachment i overf\u00f8rslen af 1 R-vecr token fra oraklet til brugeren;<\/li>\n<li>Modtage en signatur;<\/li>\n<\/ul>\n<\/li>\n<li>Sende minimum 0.005 Waves til oraklets alias random@vecr, og s\u00f8rge for at angive den tidligere modtagne R-kode i attachment-feltet samt yderligere brugerdata;\n<ul>\n<li>Modtage S-kode i feltet attachment i overf\u00f8rslen af 1 S-vecr token fra oraklet til brugeren;<\/li>\n<li>Brug S-koden som kilde til pseudo-tilf\u00e6ldige tal.<\/li>\n<\/ul>\n<\/li>\n<li>Nuancer i den nuv\u00e6rende implementering:<\/li>\n<\/ul>\n<p><\/p>\n<p>De Waves, der sendes til oraklet, bruges som gebyr for den tilbagevendende transaktion til brugeren, op til maksimalt 1 Waves;<\/p>\n<p><\/p>\n<ul>\n<li>R-kode er en sammenkobling af byte-tegnet \u2018R\u2019 og 32-byte v\u00e6rdien R i base58 kodning;<\/li>\n<li>R-koden i attachment skal v\u00e6re f\u00f8rst, brugerdata f\u00f8lger efter R-koden;<\/li>\n<li>S-kode er en sammenkobling af byte-tegnet \u2018S\u2019 og 32-byte v\u00e6rdien S i base58 kodning;<\/li>\n<li>S er resultatet af division modulo, derfor kan S ikke bruges som et fuldt 256-bit pseudo-tilf\u00e6ldigt tal (dette tal kan betragtes som maksimalt 252-bit pseudo-tilf\u00e6ldigt tal);<\/li>\n<li>Den nemmeste mulighed er at bruge hash af S-koden som pseudo-tilf\u00e6ldigt tal.<\/li>\n<li>Eksempel p\u00e5 modtagelse af S-kode:<\/li>\n<\/ul>\n<p><\/p>\n<p>Initialization:<\/p>\n<p><\/p>\n<ul>\n<li>Modtagelse af R-kode: <noindex><a rel=\"nofollow\" href=\"https:\/\/wavesexplorer.com\/tx\/8gc8jwM7JrPNehoDs7NVyos7BsufYktvkwVW1B6FAY6\">https:\/\/wavesexplorer.com\/tx\/8gc8jwM7JrPNehoDs7NVyos7BsufYktvkwVW1B6FAY6<\/a><\/noindex><\/li>\n<li>Anmodning om resultatet af signering af R-kode og brugerdata \u201crandom\u201d: <noindex><a rel=\"nofollow\" href=\"https:\/\/wavesexplorer.com\/tx\/9eB25SbzEwvHEbm8pcKj7MGDrYv1u3Fxpj696FkJ96hd\">https:\/\/wavesexplorer.com\/tx\/9eB25SbzEwvHEbm8pcKj7MGDrYv1u3Fxpj696FkJ96hd<\/a><\/noindex><\/li>\n<li>Modtagelse af S-kode: <noindex><a rel=\"nofollow\" href=\"https:\/\/wavesexplorer.com\/tx\/6faoFJobEsugDFYmYmfsbtQYABmckNuE2kevaLh7ifzz\">https:\/\/wavesexplorer.com\/tx\/6faoFJobEsugDFYmYmfsbtQYABmckNuE2kevaLh7ifzz<\/a><\/noindex><\/li>\n<li>Set fra et teknisk synspunkt er oraklet helt klar til brug, du kan trygt bruge det. Set fra en almindelig brugers synspunkt mangler det en brugervenlig grafisk gr\u00e6nseflade, det m\u00e5 vi vente p\u00e5. <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>Jeg vil v\u00e6re glad for at besvare sp\u00f8rgsm\u00e5l og modtage kommentarer, tak.<\/p>\n<p><\/p>\n<p>Jeg vil gerne svare p\u00e5 sp\u00f8rgsm\u00e5l og modtage kommentarer, tak.<\/p>\n<p>Kilde: <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.3 - 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\/da\/blog\/administrirovanie\/cluchajnyj-orakul-na-osnove-tsifrovoj-podpisi-v-blokchejne\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\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\/da\/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\udd47Tilf\u00e6ldig orakel baseret p\u00e5 digital signatur i blockchain | ProHoster","description":"Fra id\u00e9 til realisering: vi tilpasser den eksisterende ordning for digital signatur baseret p\u00e5 elliptiske kurver, s\u00e5 den bliver deterministisk, og tilbyder p\u00e5 dens basis funktioner til at opn\u00e5 verificerbarhed i blockchainen.","canonical_url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/cluchajnyj-orakul-na-osnove-tsifrovoj-podpisi-v-blokchejne","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/32343","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=32343"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/32343\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/24158"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=32343"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=32343"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=32343"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}