{"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\/hu\/blog\/administrirovanie\/cluchajnyj-orakul-na-osnove-tsifrovoj-podpisi-v-blokchejne","title":{"rendered":"V\u00e9letlen or\u00e1kulum blokkl\u00e1nc digit\u00e1lis al\u00e1\u00edr\u00e1s alapj\u00e1n","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Az \u00f6tlett\u0151l a megval\u00f3s\u00edt\u00e1sig: m\u00f3dos\u00edtjuk a megl\u00e9v\u0151 digit\u00e1lis al\u00e1\u00edr\u00e1si rendszert elliptikus g\u00f6rb\u00e9n, hogy az determinisztikus legyen, \u00e9s ezen alapul v\u00e9letlenszer\u0171 sz\u00e1mokat gener\u00e1l\u00f3 funkci\u00f3kat k\u00edn\u00e1lunk a blokkl\u00e1nc keretein bel\u00fcl.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"V\u00e9letlen or\u00e1kulum blokkl\u00e1nc digit\u00e1lis al\u00e1\u00edr\u00e1s alapj\u00e1n\" 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\">\u00d6tlet<\/h1>\n<p><\/p>\n<p>2018 \u0151sz\u00e9n a Waves blokkl\u00e1ncon <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.wavesplatform.com\/smart-accounts-finally-activated-on-waves-mainnet-8bb7c7b67beb\">aktiv\u00e1lt\u00e1k az els\u0151 okosszerz\u0151d\u00e9seket,<\/a><\/noindex>azonnal felmer\u00fclt a k\u00e9rd\u00e9s, hogy lehets\u00e9ges-e <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\">megb\u00edzhat\u00f3 v\u00e9letlenszer\u0171 sz\u00e1mokhoz jutni.<\/a><\/noindex>Elgondolkodva ezen a k\u00e9rd\u00e9sen, v\u00e9g\u00fcl arra a k\u00f6vetkeztet\u00e9sre jutottam, hogy b\u00e1rmely blokkl\u00e1nc egy ketrec, \u00e9s a z\u00e1rt rendszerben megb\u00edzhat\u00f3 entr\u00f3pi\u00e1t tal\u00e1lni lehetetlen.<\/p>\n<p><\/p>\n<p>De egy \u00f6tlet m\u00e9gis tetszett: ha<\/p>\n<p><\/p>\n<p>a v\u00e9letlensz\u00e1m-or\u00e1kulum <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\">a felhaszn\u00e1l\u00f3i adatokat determinisztikus algoritmus seg\u00edts\u00e9g\u00e9vel \u00edrja al\u00e1, akkor a felhaszn\u00e1l\u00f3 mindig ellen\u0151rizheti ezt az al\u00e1\u00edr\u00e1st a ny\u00edlt kulcs seg\u00edts\u00e9g\u00e9vel, \u00e9s biztos lehet benne, hogy a kapott \u00e9rt\u00e9k egyedi. Az or\u00e1kulum, b\u00e1rmennyire is akarja, semmit sem v\u00e1ltoztathat, az algoritmus egy\u00e9rtelm\u0171 eredm\u00e9nyt ad. Sz\u00f3val a felhaszn\u00e1l\u00f3 r\u00f6gz\u00edti az eredm\u00e9nyt, de nem tud r\u00f3la, am\u00edg az or\u00e1kulum nyilv\u00e1noss\u00e1gra nem hozza. \u00cdgy lehets\u00e9ges, hogy az or\u00e1kulumra egy\u00e1ltal\u00e1n nem b\u00edzhatunk, de ellen\u0151rizhetj\u00fck a munk\u00e1j\u00e1nak eredm\u00e9ny\u00e9t. Akkor, a sikeres ellen\u0151rz\u00e9s eset\u00e9n, ezt az al\u00e1\u00edr\u00e1st entr\u00f3piaforr\u00e1sk\u00e9nt lehet tekinteni egy v\u00e9letlenszer\u0171 sz\u00e1m sz\u00e1m\u00e1ra.<\/a><\/noindex> A Waves blokkl\u00e1nc-platformon az al\u00e1\u00edr\u00e1si strukt\u00fara<\/p>\n<p><\/p>\n<p>EdDSA <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/EdDSA\">. Ebben a strukt\u00far\u00e1ban az al\u00e1\u00edr\u00e1s R \u00e9s S \u00e9rt\u00e9kekb\u0151l \u00e1ll, ahol R a v\u00e9letlen \u00e9rt\u00e9kt\u0151l f\u00fcgg, m\u00edg S az al\u00e1\u00edrand\u00f3 \u00fczenet, a z\u00e1rt kulcs \u00e9s ugyanaz a v\u00e9letlen sz\u00e1m alapj\u00e1n ker\u00fcl kisz\u00e1m\u00edt\u00e1sra, mint R. \u00cdgy teh\u00e1t nem l\u00e9tezik egy\u00e9rtelm\u0171 f\u00fcgg\u0151s\u00e9g, egy adott felhaszn\u00e1l\u00f3i \u00fczenethez sz\u00e1mos \u00e9rv\u00e9nyes al\u00e1\u00edr\u00e1s tartozik.<\/a><\/noindex> a verzi\u00f3t <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/EdDSA#Ed25519\">Ed25519<\/a><\/noindex>Nyilv\u00e1nval\u00f3, hogy tiszta form\u00e1j\u00e1ban ezt az al\u00e1\u00edr\u00e1st nem lehet haszn\u00e1lni v\u00e9letlenszer\u0171 sz\u00e1mok forr\u00e1sak\u00e9nt, mivel az nem determinisztikus, ez\u00e9rt k\u00f6nnyen manipul\u00e1lhat\u00f3 az or\u00e1kulum \u00e1ltal.<\/p>\n<p><\/p>\n<p>De, mint kider\u00fclt, val\u00f3j\u00e1ban lehets\u00e9ges a determinisztikus l\u00e9trehoz\u00e1sa.<\/p>\n<p><\/p>\n<p>Nagy rem\u00e9nyeket f\u0171ztem a<\/p>\n<p><\/p>\n<p>ellen\u0151rizhet\u0151 v\u00e9letlensz\u00e1m-funkci\u00f3hoz (VRF) <noindex><a rel=\"nofollow\" href=\"https:\/\/tools.ietf.org\/html\/draft-irtf-cfrg-vrf-04\">verifik\u00e1lhat\u00f3 v\u00e9letlen funkci\u00f3 (VRF) ir\u00e1nt.<\/a><\/noindex>, de a m\u0171szaki anyagok \u00e1ttekint\u00e9se ut\u00e1n ezt a lehet\u0151s\u00e9get el kellett vetni. B\u00e1r a VRF determinisztikus al\u00e1\u00edr\u00e1si \u00e9s annak bizony\u00edt\u00e1si lehet\u0151s\u00e9get k\u00edn\u00e1l, a algoritmusban van egy furcsa hely, ami fekete lyukat nyit a j\u00f3sl\u00f3 manipul\u00e1ci\u00f3ira. Nevezetesen, a k \u00e9rt\u00e9k\u00e9nek kisz\u00e1m\u00edt\u00e1sakor (<noindex><a rel=\"nofollow\" href=\"https:\/\/tools.ietf.org\/html\/draft-irtf-cfrg-vrf-04#section-5.1\">5.1. szakasz<\/a><\/noindex>) egy z\u00e1rt kulcsot haszn\u00e1lnak, amely a felhaszn\u00e1l\u00f3 el\u0151tt ismeretlen marad, teh\u00e1t a felhaszn\u00e1l\u00f3 nem tudja ellen\u0151rizni a k sz\u00e1m\u00edt\u00e1s\u00e1nak helyess\u00e9g\u00e9t, \u00edgy a j\u00f3sl\u00f3 b\u00e1rmilyen sz\u00fcks\u00e9ges k \u00e9rt\u00e9ket haszn\u00e1lhat, \u00e9s egyidej\u0171leg nyilv\u00e1ntart\u00e1st vezethet a k \u00e9s az al\u00e1\u00edrand\u00f3 adatok megfelel\u0151 kapcsolatair\u00f3l, hogy mindig k\u00e9pes legyen \u00fajra sz\u00e1m\u00edtani a VRF szempontj\u00e1b\u00f3l helyes eredm\u00e9nyt. Ha l\u00e1tja a VRF alap\u00fa sorsol\u00e1st an\u00e9lk\u00fcl, hogy felfedn\u00e9 a z\u00e1rt kulcsot, elmondhatja, hogy sz\u00fcks\u00e9ges felfedni a kulcsot, vagy kiz\u00e1rni azt a k sz\u00e1m\u00edt\u00e1s\u00e1b\u00f3l, ez esetben a z\u00e1rt kulcs automatikusan felfed\u00e9sre ker\u00fcl az els\u0151 al\u00e1\u00edr\u00e1s megjelen\u00e9sekor. \u00d6sszess\u00e9g\u00e9ben, ahogy m\u00e1r eml\u00edtettem, furcsa s\u00e9ma egy v\u00e9letlen j\u00f3sl\u00f3ra.<\/p>\n<p><\/p>\n<p>N\u00e9h\u00e1ny gondolkod\u00e1s ut\u00e1n \u00e9s a helyi elemz\u0151k t\u00e1mogat\u00e1s\u00e1val, megsz\u00fcletett a VECRO m\u0171k\u00f6d\u00e9si terve.<\/p>\n<p><\/p>\n<p>A VECRO a Verifiable Elliptic Curve Random Oracle r\u00f6vid\u00edt\u00e9se, amely magyarul ellen\u0151rizhet\u0151 v\u00e9letlen j\u00f3sl\u00f3t jelent elliptikus g\u00f6rb\u00e9k alapj\u00e1n.<\/p>\n<p><\/p>\n<p>Mindez meglehet\u0151sen egyszer\u0171nek bizonyult, a determin\u00e1lts\u00e1g el\u00e9r\u00e9s\u00e9hez sz\u00fcks\u00e9ges a R \u00e9rt\u00e9k\u00e9nek r\u00f6gz\u00edt\u00e9se az al\u00e1\u00edrand\u00f3 \u00fczenet megjelen\u00e9se el\u0151tt. Ha R r\u00f6gz\u00edtve van, \u00e9s az al\u00e1\u00edrand\u00f3 \u00fczenet r\u00e9sz\u00e9t k\u00e9pezi, ami tov\u00e1bbi garanci\u00e1t ny\u00fajt R r\u00f6gz\u00edt\u00e9s\u00e9re mag\u00e1ban az al\u00e1\u00edrand\u00f3 \u00fczenetben, akkor az S \u00e9rt\u00e9k egy\u00e9rtelm\u0171en meghat\u00e1rozva van a felhaszn\u00e1l\u00f3i \u00fczenet alapj\u00e1n, \u00e9s ez\u00e9rt felhaszn\u00e1lhat\u00f3 \u00e1l-random sz\u00e1mok forr\u00e1sak\u00e9nt.<\/p>\n<p><\/p>\n<p>Ilyen s\u00e9ma eset\u00e9n nem sz\u00e1m\u00edt, hogyan r\u00f6gz\u00edtik R-t, az a j\u00f3sl\u00f3 felel\u0151ss\u00e9gi k\u00f6r\u00e9be tartozik. Fontos, hogy S-t egy\u00e9rtelm\u0171en a felhaszn\u00e1l\u00f3 hat\u00e1rozza meg, de ennek \u00e9rt\u00e9ke ismeretlen, am\u00edg a j\u00f3sl\u00f3 nem teszi k\u00f6zz\u00e9. Minden \u00fagy van, ahogy akartuk!<\/p>\n<p><\/p>\n<p>A r\u00f6gz\u00edtett R-r\u0151l besz\u00e9lve, vegye figyelembe, hogy <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jedisct1\/libsodium\/issues\/170\">az \u00fajrahaszn\u00e1lt R<\/a><\/noindex> A k\u00fcl\u00f6nb\u00f6z\u0151 \u00fczenetek al\u00e1\u00edr\u00e1sakor egy\u00e9rtelm\u0171en felfedi a z\u00e1rkulcsot az EdDSA s\u00e9m\u00e1ban. Az oracle tulajdonosa sz\u00e1m\u00e1ra rendk\u00edv\u00fcl fontos, hogy kiz\u00e1rja a R \u00fajrahaszn\u00e1lat\u00e1nak lehet\u0151s\u00e9g\u00e9t a felhaszn\u00e1l\u00f3 k\u00fcl\u00f6nb\u00f6z\u0151 \u00fczeneteinek al\u00e1\u00edr\u00e1s\u00e1hoz. Vagyis b\u00e1rmilyen manipul\u00e1ci\u00f3 vagy \u00f6sszej\u00e1tsz\u00e1s eset\u00e9n az oracle mindig kock\u00e1zatot v\u00e1llal a z\u00e1rkulcs elveszt\u00e9s\u00e9re.<\/p>\n<p><\/p>\n<p>\u00d6sszess\u00e9g\u00e9ben az oracle-nak k\u00e9t funkci\u00f3t kell biztos\u00edtania a felhaszn\u00e1l\u00f3k sz\u00e1m\u00e1ra: az init\u00e1l\u00f3 funkci\u00f3t, amely r\u00f6gz\u00edti az R \u00e9rt\u00e9ket, \u00e9s az al\u00e1\u00edr\u00e1s funkci\u00f3t, amely visszaadja az S \u00e9rt\u00e9ket. Ezenk\u00edv\u00fcl az R \u00e9s S p\u00e1r egy szok\u00e1sos ellen\u0151rizhet\u0151 al\u00e1\u00edr\u00e1sa a felhaszn\u00e1l\u00f3i \u00fczenetnek, amely tartalmazza az R r\u00f6gz\u00edtett \u00e9rt\u00e9k\u00e9t \u00e9s a felhaszn\u00e1l\u00f3 \u00f6n\u00e1ll\u00f3 adatokat.<\/p>\n<p><\/p>\n<p>Ellenkezhet\u00fcnk azzal, hogy ez a s\u00e9ma nem m\u00e1s, mint egy szok\u00e1sos <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/348838\/\">elk\u00f6telez\u0151-nyilv\u00e1noss\u00e1gra hoz\u00e1si s\u00e9ma<\/a><\/noindex>. Val\u00f3j\u00e1ban igen, az. De van n\u00e9h\u00e1ny \u00e1rnyalat. El\u0151sz\u00f6r is, az oracle mindig ugyanazzal a kulccsal dolgozik minden m\u0171velet sor\u00e1n, p\u00e9ld\u00e1ul ez k\u00e9nyelmesen haszn\u00e1lhat\u00f3 szerz\u0151d\u00e9sekben. M\u00e1sodszor, az oracle z\u00e1rkulcs\u00e1nak elveszt\u00e9se a hib\u00e1s viselked\u00e9s miatt kock\u00e1zatot jelent, p\u00e9ld\u00e1ul, ha az oracle lehet\u0151v\u00e9 teszi az eredm\u00e9ny mintav\u00e9telez\u00e9s\u00e9t, akkor el\u00e9g csak k\u00e9t mint\u00e1t venni ahhoz, hogy megtudjuk a z\u00e1rkulcsot, \u00e9s teljes hozz\u00e1f\u00e9r\u00e9st nyerj\u00fcnk a p\u00e9nzt\u00e1rc\u00e1hoz. Harmadszor, a blokkl\u00e1ncban nat\u00edvan ellen\u0151rizhet\u0151 al\u00e1\u00edr\u00e1s, amely a v\u00e9letlenszer\u0171s\u00e9g forr\u00e1sa - ez sz\u00e9pen hangzik.<\/p>\n<p><\/p>\n<p>Hat h\u00f3napig foglalkozott az \u00f6tlet megval\u00f3s\u00edt\u00e1s\u00e1val, m\u00edg v\u00e9g\u00fcl megjelent a motiv\u00e1ci\u00f3 <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/waves-lab\/waves-labs-announces-first-grant-recipients-7568f01fec22\">a Waves Labs t\u00e1mogat\u00e1sa<\/a><\/noindex>. Nagy t\u00e1mogat\u00e1ssal nagy felel\u0151ss\u00e9g j\u00e1r, teh\u00e1t a projekt megval\u00f3sulhat!<\/p>\n<p><\/p>\n<h1 id=\"realizaciya\">Megval\u00f3s\u00edt\u00e1s<\/h1>\n<p><\/p>\n<p>Teh\u00e1t ebben a projektben <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/VECRO\">a VECRO megval\u00f3sult<\/a><\/noindex> a Waves blokkl\u00e1ncon k\u00e9r\u00e9s-v\u00e1lasz \u00fczemm\u00f3dban a felhaszn\u00e1l\u00f3 \u00e9s az oracle k\u00f6z\u00f6tti \u00e1tutal\u00e1si tranzakci\u00f3k seg\u00edts\u00e9g\u00e9vel. Ezenk\u00edv\u00fcl az oracle fi\u00f3kj\u00e1n egy olyan szkript van telep\u00edtve, amely szigor\u00faan ellen\u0151rzi a fent le\u00edrt logika szerint a m\u0171k\u00f6d\u00e9st. Az oracle tranzakci\u00f3i ellen\u0151rz\u00e9sen mennek kereszt\u00fcl, helyre\u00e1ll\u00edtva az \u00f6sszes felhaszn\u00e1l\u00f3val val\u00f3 interakci\u00f3 l\u00e1ncolat\u00e1t. A v\u00e9gs\u0151 \u00e9rt\u00e9k ellen\u0151rz\u00e9s\u00e9ben mind a n\u00e9gy tranzakci\u00f3 r\u00e9szt vesz, a smart contract szigor\u00faan felf\u0171zi ezeket az ellen\u0151rz\u00e9si sz\u00e1lra, l\u00e9p\u00e9sr\u0151l l\u00e9p\u00e9sre ellen\u0151rizve az \u00f6sszes \u00e9rt\u00e9ket \u00e9s nem hagyva helyet b\u00e1rmif\u00e9le manipul\u00e1ci\u00f3nak.<\/p>\n<p><\/p>\n<p>M\u00e9g egyszer, hogy r\u00f6gz\u00fclj\u00f6n \u00e9s \u00e9rthet\u0151bb legyen. Az oracle nem csup\u00e1n a javasolt s\u00e9ma szerint m\u0171k\u00f6dik. A m\u0171k\u00f6d\u00e9se teljes m\u00e9rt\u00e9kben ellen\u0151rz\u00f6tt a blokkl\u00e1nc szintj\u00e9n, amelyet be\u00e1ll\u00edtottak. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/VECRO\/blob\/master\/vecro.ride\">v\u00e9glegesen okosszerz\u0151d\u00e9ssel<\/a><\/noindex>. Egy l\u00e9p\u00e9s balra, \u00e9s a tranzakci\u00f3 egyszer\u0171en nem megy \u00e1t. Teh\u00e1t ha a tranzakci\u00f3 a blokkl\u00e1ncra ker\u00fclt, a felhaszn\u00e1l\u00f3nak m\u00e9g csak ellen\u0151riznie sem kell, mert m\u00e1r sz\u00e1mos h\u00e1l\u00f3zati csom\u00f3pont ellen\u0151rizte helyette.<\/p>\n<p><\/p>\n<p>Jelenleg a Waves f\u0151h\u00e1l\u00f3zat\u00e1ban egy VECRO m\u0171k\u00f6dik (ind\u00edthat saj\u00e1tot is, ez nem neh\u00e9z, csak <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/VECRO\/blob\/master\/config.sample.php\">n\u00e9zze meg a konfigur\u00e1ci\u00f3s p\u00e9ld\u00e1t<\/a><\/noindex>). A jelenlegi k\u00f3d PHP nyelven m\u0171k\u00f6dik (a <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\">WavesKit<\/a><\/noindex>-r\u00f3l, amir\u0151l <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/446110\/\">kor\u00e1bban besz\u00e9ltem<\/a><\/noindex>).<\/p>\n<p><\/p>\n<p>Ahhoz, hogy ig\u00e9nybe vegye az oracle szolg\u00e1ltat\u00e1st, a k\u00f6vetkez\u0151ket kell tenni:<\/p>\n<p><\/p>\n<ul>\n<li>R r\u00f6gz\u00edt\u00e9se;\n<ul>\n<li>K\u00fcldj\u00f6n minimum 0.005 Wavest az oracle alias\u00e1nak, init@vecr;<\/li>\n<li>Szerezze meg az R-k\u00f3dot a csatolm\u00e1ny mez\u0151ben az oracle-t\u00f3l a felhaszn\u00e1l\u00f3hoz t\u00f6rt\u00e9n\u0151 1 R-vecr token \u00e1tutal\u00e1sakor;<\/li>\n<\/ul>\n<\/li>\n<li>Szerezze meg az al\u00e1\u00edr\u00e1st;\n<ul>\n<li>K\u00fcldj\u00f6n minimum 0.005 Wavest az oracle alias\u00e1nak, random@vecr, \u00e9s K\u00d6TELEZ\u0150EN adja meg a kor\u00e1bban kapott R-k\u00f3dot a csatolm\u00e1ny mez\u0151ben, valamint tov\u00e1bbi felhaszn\u00e1l\u00f3i adatokat;<\/li>\n<li>Szerezze meg az S-k\u00f3dot a csatolm\u00e1ny mez\u0151ben az oracle-t\u00f3l a felhaszn\u00e1l\u00f3hoz t\u00f6rt\u00e9n\u0151 1 S-vecr token \u00e1tutal\u00e1sakor;<\/li>\n<\/ul>\n<\/li>\n<li>Haszn\u00e1lja az S-k\u00f3dot mint f\u00e9lrees\u0151 v\u00e9letlensz\u00e1m forr\u00e1st.<\/li>\n<\/ul>\n<p><\/p>\n<p>A jelenlegi megval\u00f3s\u00edt\u00e1s r\u00e9szletei:<\/p>\n<p><\/p>\n<ul>\n<li>Az oracle-nek k\u00fcld\u00f6tt Wavese-k a felhaszn\u00e1l\u00f3hoz val\u00f3 visszautal\u00e1s d\u00edjak\u00e9nt haszn\u00e1latosak, maximum 1 Waves-ig;<\/li>\n<li>Az R-k\u00f3d a \u2018R\u2019 karakterb\u0151l \u00e9s a 32 b\u00e1jt hossz\u00fa R \u00e9rt\u00e9kb\u0151l \u00e1ll a base58 k\u00f3dol\u00e1sban;<\/li>\n<li>Az R-k\u00f3dnak a csatolm\u00e1nyban el\u00f6l kell lennie, a felhaszn\u00e1l\u00f3i adatok ut\u00e1n k\u00f6vetkeznek;<\/li>\n<li>Az S-k\u00f3d a \u2018S\u2019 karakterb\u0151l \u00e9s a 32 b\u00e1jt hossz\u00fa S \u00e9rt\u00e9kb\u0151l \u00e1ll a base58 k\u00f3dol\u00e1sban;<\/li>\n<li>Az S a modulo oszt\u00e1s eredm\u00e9nye, ez\u00e9rt az S-t nem lehet teljes 256 bites v\u00e9letlensz\u00e1mk\u00e9nt haszn\u00e1lni (ez a sz\u00e1m maximum 252 bites v\u00e9letlensz\u00e1mnak tekinthet\u0151);<\/li>\n<li>A legegyszer\u0171bb megold\u00e1s az S-k\u00f3d hash \u00e9rt\u00e9k\u00e9t haszn\u00e1lni v\u00e9letlensz\u00e1mk\u00e9nt.<\/li>\n<\/ul>\n<p><\/p>\n<p>S-k\u00f3d beszerz\u00e9s\u00e9nek p\u00e9ld\u00e1ja:<\/p>\n<p><\/p>\n<ul>\n<li>Inicializ\u00e1ci\u00f3: <noindex><a rel=\"nofollow\" href=\"https:\/\/wavesexplorer.com\/tx\/8gc8jwM7JrPNehoDs7NVyos7BsufYktvkwVW1B6FAY6\">https:\/\/wavesexplorer.com\/tx\/8gc8jwM7JrPNehoDs7NVyos7BsufYktvkwVW1B6FAY6<\/a><\/noindex><\/li>\n<li>R-k\u00f3d beszerz\u00e9se: <noindex><a rel=\"nofollow\" href=\"https:\/\/wavesexplorer.com\/tx\/9eB25SbzEwvHEbm8pcKj7MGDrYv1u3Fxpj696FkJ96hd\">https:\/\/wavesexplorer.com\/tx\/9eB25SbzEwvHEbm8pcKj7MGDrYv1u3Fxpj696FkJ96hd<\/a><\/noindex><\/li>\n<li>Az R-k\u00f3d al\u00e1\u00edr\u00e1s\u00e1nak \u00e9s a felhaszn\u00e1l\u00f3i adatoknak a 'random' \u00e9rt\u00e9k\u00e9nek lek\u00e9rdez\u00e9se: <noindex><a rel=\"nofollow\" href=\"https:\/\/wavesexplorer.com\/tx\/6faoFJobEsugDFYmYmfsbtQYABmckNuE2kevaLh7ifzz\">https:\/\/wavesexplorer.com\/tx\/6faoFJobEsugDFYmYmfsbtQYABmckNuE2kevaLh7ifzz<\/a><\/noindex><\/li>\n<li>S-k\u00f3d beszerz\u00e9se: <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>Technikai szempontb\u00f3l az oracle teljesen k\u00e9sz a haszn\u00e1latra, b\u00e1tran ig\u00e9nybe veheti. A v\u00e9gfelhaszn\u00e1l\u00f3 sz\u00e1m\u00e1ra a k\u00f6nnyen haszn\u00e1lhat\u00f3 grafikus fel\u00fclet hi\u00e1nyzik, erre m\u00e9g v\u00e1rni kell.<\/p>\n<p><\/p>\n<p>\u00d6r\u00f6mmel v\u00e1laszolok a k\u00e9rd\u00e9sekre \u00e9s fogadom a megjegyz\u00e9seket, k\u00f6sz\u00f6n\u00f6m.<\/p>\n<p>Forr\u00e1s: <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\/hu\/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=\"hu_HU\" \/>\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\/hu\/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\udd47V\u00e9letlen or\u00e1kulum digit\u00e1lis al\u00e1\u00edr\u00e1s alapj\u00e1n a blokkl\u00e1ncon | ProHoster","description":"Az \u00f6tlett\u0151l a megval\u00f3s\u00edt\u00e1sig: m\u00f3dos\u00edtjuk a megl\u00e9v\u0151 digit\u00e1lis al\u00e1\u00edr\u00e1si s\u00e9m\u00e1t elliptikus g\u00f6rb\u00e9n, hogy meghat\u00e1rozott legyen, \u00e9s ezen alapul v\u00e9gezz\u00fck a blokkl\u00e1ncon ellen\u0151rizhet\u0151 funkci\u00f3k megszerz\u00e9s\u00e9t.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/cluchajnyj-orakul-na-osnove-tsifrovoj-podpisi-v-blokchejne","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","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\/hu\/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\/hu\/wp-json\/wp\/v2\/posts\/32343","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=32343"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/32343\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/24158"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=32343"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=32343"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=32343"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}