{"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\/hr\/blog\/administrirovanie\/cluchajnyj-orakul-na-osnove-tsifrovoj-podpisi-v-blokchejne","title":{"rendered":"Slu\u010dajni orakl temeljen na digitalnom potpisu u blockchainu","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Od ideje do realizacije: prilagodimo postoje\u0107u shemu digitalnog potpisa na elipti\u010dnoj krivulji kako bi bila deterministi\u010dka i na osnovu nje pru\u017eimo funkcije za generiranje provjerljivih pseudo slu\u010dajnih brojeva u okviru blockchaina.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Slu\u010dajni orakl temeljen na digitalnom potpisu u blockchainu\" 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\">Ideja<\/h1>\n<p><\/p>\n<p>U jesen 2018. blockchain Waves je imao <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.wavesplatform.com\/smart-accounts-finally-activated-on-waves-mainnet-8bb7c7b67beb\">aktivirane prve pametne ugovore<\/a><\/noindex>, odmah se postavilo pitanje o mogu\u0107nosti dobivanja <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\">pseudo slu\u010dajnih brojeva<\/a><\/noindex>, kojima se mo\u017ee vjerovati.<\/p>\n<p><\/p>\n<p>Razmi\u0161ljaju\u0107i o ovom pitanju, kona\u010dno sam do\u0161ao do zaklju\u010dka: svaki blockchain je kavez, dobiti pouzdan izvor entropije u zatvorenom sustavu je nemogu\u0107e.<\/p>\n<p><\/p>\n<p>Ali jedna ideja mi se ipak svidjela: ako <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\">slu\u010dajni orakl<\/a><\/noindex> potpisuje korisni\u010dke podatke pomo\u0107u deterministi\u010dkog algoritma, tada korisnik mo\u017ee uvijek provjeriti takav potpis javnim klju\u010dem i biti siguran da je dobivena vrijednost jedinstvena. Orakl, ma koliko se trudio, ne mo\u017ee ni\u0161ta promijeniti, algoritam daje jednozna\u010dan rezultat. U su\u0161tini, korisnik fiksira rezultat, ali ga ne zna sve dok ga orakl ne objavi. Tako ispada da se oraklu uop\u0107e ne mora vjerovati, ali se mo\u017ee provjeriti rezultat njegovog rada. Tada, u slu\u010daju uspje\u0161ne provjere, takav potpis mo\u017ee se smatrati izvorom entropije za pseudo slu\u010dajan broj.<\/p>\n<p><\/p>\n<p>U blockchain platformi Waves koristi se shema potpisa <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/EdDSA\">EdDSA<\/a><\/noindex> varijantu <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/EdDSA#Ed25519\">Ed25519<\/a><\/noindex>. U ovoj shemi potpis se sastoji od vrijednosti R i S, gdje R ovisi o slu\u010dajnoj vrijednosti, a S se izra\u010dunava na temelju potpisivane poruke, privatnog klju\u010da i iste slu\u010dajne brojke koja je i R. Tako ispada da ne postoji jednozna\u010dna ovisnost, za istu korisni\u010dku poruku postoji vi\u0161e valjanih potpisa.<\/p>\n<p><\/p>\n<p>O\u010digledno je da se u \u010distom obliku takav potpis ne mo\u017ee koristiti kao izvor pseudo slu\u010dajnih brojeva, budu\u0107i da je nedeterminisana i, samim tim, mo\u017ee biti lako podlo\u017ena manipulacijama od strane orakla.<\/p>\n<p><\/p>\n<p>Ali, kako se ispostavilo, mogu\u0107e je u\u010diniti ga deterministi\u010dnim.<\/p>\n<p><\/p>\n<p>Imam velike nade u <noindex><a rel=\"nofollow\" href=\"https:\/\/tools.ietf.org\/html\/draft-irtf-cfrg-vrf-04\">provjerljivu slu\u010dajnu funkciju (VRF)<\/a><\/noindex>, ali nakon prou\u010davanja materijala, od ove mogu\u0107nosti je odlu\u010deno odustati. Iako VRF nudi deterministi\u010dku verziju potpisa i njegovih dokaza, u algoritmu postoji \u010dudno mjesto koje otvara crnu rupu za manipulacije oraklom. Naime, prilikom izra\u010duna vrijednosti k (<noindex><a rel=\"nofollow\" href=\"https:\/\/tools.ietf.org\/html\/draft-irtf-cfrg-vrf-04#section-5.1\">odjeljak 5.1<\/a><\/noindex>) koristi se tajni klju\u010d, koji ostaje nepoznat korisniku, \u0161to zna\u010di da korisnik ne mo\u017ee provjeriti ispravnost izra\u010duna k, pa orakl mo\u017ee koristiti bilo koju potrebnu vrijednost k i istovremeno voditi bazu podataka odgovaraju\u0107ih k i potpisanih podataka, kako bi uvijek mogao ponovo izra\u010dunati ispravni rezultat s obzirom na VRF. Ako vidite izvla\u010denje temeljen na VRF bez otkrivanja tajnog klju\u010da, mo\u017eete pametovati: ukazati na potrebu da se ili otkrije klju\u010d ili isklju\u010di iz izra\u010duna k, tada \u0107e se tajni klju\u010d automatski otkriti na prvoj potpisanoj verziji. Ukratko, kao \u0161to je ve\u0107 re\u010deno, \u010dudna shema za slu\u010dajnog orakla.<\/p>\n<p><\/p>\n<p>Nakon malo razmi\u0161ljanja i uz podr\u0161ku lokalnih analiti\u010dara, ro\u0111ena je shema rada VECRO.<\/p>\n<p><\/p>\n<p>VECRO je akronim za Verifiable Elliptic Curve Random Oracle, \u0161to na hrvatskom zna\u010di provodivi slu\u010dajni orakl na elipti\u010dnim krivuljama.<\/p>\n<p><\/p>\n<p>Sve se pokazalo prili\u010dno jednostavnim, za postizanje deterministi\u010dnosti potrebno je fiksirati vrijednost R prije pojave potpisane poruke. Ako je R fiksirano i dio je potpisane poruke, \u0161to dodatno osigurava fiksaciju R u samoj potpisanoj poruci, vrijednost S se jednozna\u010dno odre\u0111uje korisni\u010dkom porukom i, stoga, mo\u017ee se koristiti kao izvor za pseudonarandome.<\/p>\n<p><\/p>\n<p>U takvoj shemi nije va\u017eno na koji na\u010din se fiksira R, to ostaje odgovornost orakla. Va\u017eno je da S jednozna\u010dno odre\u0111uje korisnik, ali njegova vrijednost ostaje nepoznata sve dok ga orakl ne objavi. Sve kako smo \u017eeljeli!<\/p>\n<p><\/p>\n<p>Govore\u0107i o fiksnom R, obratite pa\u017enju da <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jedisct1\/libsodium\/issues\/170\">ponovno kori\u0161teno R<\/a><\/noindex> Potpisivanje razli\u010ditih poruka jasno otkriva tajni klju\u010d u EdDSA shemi. Za vlasnika orakla izuzetno je va\u017eno isklju\u010diti mogu\u0107nost ponovne upotrebe R za potpisivanje razli\u010ditih korisni\u010dkih poruka. To zna\u010di da, prilikom bilo kakvih manipulacija ili dogovora, orakl uvijek riskira gubitak svog tajnog klju\u010da.<\/p>\n<p><\/p>\n<p>Dakle, orakl mora pru\u017eiti korisnicima dvije funkcije: inicijalizaciju koja fiksira vrijednost R i potpisivanje koja vra\u0107a vrijednost S. Pri tome, par R, S predstavlja uobi\u010dajen provjerljiv potpis korisni\u010dke poruke koja sadr\u017ei fiksiranu vrijednost R i proizvoljne podatke korisnika.<\/p>\n<p><\/p>\n<p>Mo\u017ee se prigovoriti da je ova shema za blockchain ni\u0161ta drugo nego obi\u010dna <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/348838\/\">shema komit-otkrivanje<\/a><\/noindex>. Su\u0161tinski, da, to jest. No, postoje nekoliko nijansi. Prvo, orakl uvijek radi s istim klju\u010dem u svim operacijama, na primjer, to je prakti\u010dno za kori\u0161tenje u ugovorima. Drugo, postoji rizik gubitka tajnog klju\u010da od strane orakla zbog nepravilnog pona\u0161anja, na primjer, orakl omogu\u0107ava uzimanje uzoraka rezultata, pa je dovoljno uzeti samo dva uzorka da se otkrije tajni klju\u010d i dobije potpuni pristup nov\u010daniku. Tre\u0107e, nativno provjerljiv potpis u blockchainu, koji predstavlja izvor slu\u010dajnosti \u2014 to je lijepo.<\/p>\n<p><\/p>\n<p>Pol godine ideja o realizaciji bila je u glavi, dok napokon nije do\u0161la motivacija u obliku <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/waves-lab\/waves-labs-announces-first-grant-recipients-7568f01fec22\">granta od Waves Labs<\/a><\/noindex>. S velikim grantom dolazi velika odgovornost, \u0161to zna\u010di da projekt mora biti realiziran!<\/p>\n<p><\/p>\n<h1 id=\"realizaciya\">Implementacija<\/h1>\n<p><\/p>\n<p>Dakle, u ovom projektu <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/VECRO\">VECRO je realiziran<\/a><\/noindex> na Waves blockchainu u re\u017eimu zahtjev-odgovor putem transfer transakcija izme\u0111u korisnika i orakla. Pritom je na ra\u010dunu orakla postavljen skript koji rigorozno kontrolira rad u skladu s gore opisanim logi\u010dkim okvirom. Transakcije orakla prolaze provjeru uz obnovu cijelog lanca interakcije s korisnikom. U provjeri kona\u010dne vrijednosti sudjeluje svih \u010detiri transakcije, pametan ugovor ih povezuje na strogu provjeru, korak po korak provjeravaju\u0107i sve vrijednosti i ne ostavljaju\u0107i mjesta za bilo kakve manipulacije.<\/p>\n<p><\/p>\n<p>Jo\u0161 jednom, da se to upamti i bude jasnije. Orakl ne radi samo prema predlo\u017eenoj shemi. Njegov rad je potpuno kontroliran na razini blockchaina postavljenom <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/VECRO\/blob\/master\/vecro.ride\">smrtnim pametnim ugovorom<\/a><\/noindex>. Korak ulijevo, i transakcija jednostavno ne\u0107e pro\u0107i. Tako da, ako je transakcija u\u0161la u blockchain, korisnik \u010dak ni ne mora ni\u0161ta provjeravati, sve su ve\u0107 provjerili stotine \u010dvorova mre\u017ee.<\/p>\n<p><\/p>\n<p>Trenutno je u glavnoj mre\u017ei Waves pokrenut jedan VECRO (mo\u017eete pokrenuti svoj, to nije te\u0161ko, samo <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/VECRO\/blob\/master\/config.sample.php\">pogledajte primjer konfiguracije<\/a><\/noindex>). Trenutni kod radi na PHP-u (o <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\">WavesKit<\/a><\/noindex>, o kojem <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/446110\/\">sam pri\u010dao ranije<\/a><\/noindex>).<\/p>\n<p><\/p>\n<p>Da biste koristili uslugu oracle, potrebno je:<\/p>\n<p><\/p>\n<ul>\n<li>Fiksirati R;\n<ul>\n<li>Poslati minimalno 0.005 Waves na alias oracle-a init@vecr;<\/li>\n<li>Dobiti R-code u polju attachment u transferu 1 R-vecr tokena od oracle-a korisniku;<\/li>\n<\/ul>\n<\/li>\n<li>Dobiti potpis;\n<ul>\n<li>Poslati minimalno 0.005 Waves na alias oracle-a random@vecr, te OBAVEZNO navesti u polju attachment prethodno dobiveni R-code i dodatne korisni\u010dke podatke;<\/li>\n<li>Dobiti S-code u polju attachment u transferu 1 S-vecr tokena od oracle-a korisniku;<\/li>\n<\/ul>\n<\/li>\n<li>Koristiti S-code kao izvor pseudojasnog broja.<\/li>\n<\/ul>\n<p><\/p>\n<p>Situlacije trenutne realizacije:<\/p>\n<p><\/p>\n<ul>\n<li>Poslani Waves oracle-u koriste se kao provizija za povratnu transakciju korisniku, do maksimalnih 1 Waves;<\/li>\n<li>R-code je konkatenacija bajta simbola \u2018R\u2019 i 32-bajtne vrijednosti R u base58 kodiranju;<\/li>\n<li>R-code u attachmentu mora biti prve, korisni\u010dki podaci idu nakon R-code;<\/li>\n<li>S-code je konkatenacija bajta simbola \u2018S\u2019 i 32-bajtne vrijednosti S u base58 kodiranju;<\/li>\n<li>S je rezultat modula, pa se ne mo\u017ee koristiti S kao potpuno 256-bitno pseudojasno broj (ovaj broj mo\u017ee biti maksimalno 252-bitno pseudojasno broj);<\/li>\n<li>Najjednostavnija opcija je koristiti hash od S-code kao pseudojasni broj.<\/li>\n<\/ul>\n<p><\/p>\n<p>Primjer dobivanja S-code:<\/p>\n<p><\/p>\n<ul>\n<li>Inicijalizacija: <noindex><a rel=\"nofollow\" href=\"https:\/\/wavesexplorer.com\/tx\/8gc8jwM7JrPNehoDs7NVyos7BsufYktvkwVW1B6FAY6\">https:\/\/wavesexplorer.com\/tx\/8gc8jwM7JrPNehoDs7NVyos7BsufYktvkwVW1B6FAY6<\/a><\/noindex><\/li>\n<li>Dobivanje R-code: <noindex><a rel=\"nofollow\" href=\"https:\/\/wavesexplorer.com\/tx\/9eB25SbzEwvHEbm8pcKj7MGDrYv1u3Fxpj696FkJ96hd\">https:\/\/wavesexplorer.com\/tx\/9eB25SbzEwvHEbm8pcKj7MGDrYv1u3Fxpj696FkJ96hd<\/a><\/noindex><\/li>\n<li>Zahtev za rezultat potpisa R-code i korisni\u010dkih podataka \u201crandom\u201d: <noindex><a rel=\"nofollow\" href=\"https:\/\/wavesexplorer.com\/tx\/6faoFJobEsugDFYmYmfsbtQYABmckNuE2kevaLh7ifzz\">https:\/\/wavesexplorer.com\/tx\/6faoFJobEsugDFYmYmfsbtQYABmckNuE2kevaLh7ifzz<\/a><\/noindex><\/li>\n<li>Dobivanje 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>Sa tehni\u010dkog aspekta, oracle je potpuno spreman za rad, mo\u017eete ga slobodno koristiti. Sa stajali\u0161ta kori\u0161tenja od strane obi\u010dnog korisnika, nedostaje prikladno grafi\u010dko su\u010delje, na to \u0107e se morati \u010dekati.<\/p>\n<p><\/p>\n<p>Bit \u0107u rado dostupan za odgovore na pitanja i primanje komentara, hvala.<\/p>\n<p>Izvor: <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.4 - 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\/hr\/blog\/administrirovanie\/cluchajnyj-orakul-na-osnove-tsifrovoj-podpisi-v-blokchejne\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"hr_HR\" \/>\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\/hr\/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\udd47Nasumi\u010dni oracle temeljen na digitalnom potpisu u blockchainu | ProHoster","description":"Od ideje do realizacije: modificiramo postoje\u0107u shemu digitalnog potpisa na elipti\u010dnoj krivulji kako bi bila deterministi\u010dka i pru\u017eamo usluge dobijanja provjerljivih unutar blockchain-a.","canonical_url":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/cluchajnyj-orakul-na-osnove-tsifrovoj-podpisi-v-blokchejne","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hr_HR","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\/hr\/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\/hr\/wp-json\/wp\/v2\/posts\/32343","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/comments?post=32343"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/32343\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media\/24158"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media?parent=32343"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/categories?post=32343"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/tags?post=32343"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}