{"id":95468,"date":"2020-09-29T19:42:29","date_gmt":"2020-09-29T17:42:29","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/mozhno-li-generirovat-sluchajnye-chisla-esli-my-ne-doveryaem-drug-drugu-chast-1"},"modified":"2020-09-29T19:42:29","modified_gmt":"2020-09-29T17:42:29","slug":"mozhno-li-generirovat-sluchajnye-chisla-esli-my-ne-doveryaem-drug-drugu-chast-1","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/mozhno-li-generirovat-sluchajnye-chisla-esli-my-ne-doveryaem-drug-drugu-chast-1","title":{"rendered":"A \u00ebsht\u00eb e mundur t\u00eb gjenerohen numra t\u00eb rastit n\u00ebse nuk kemi besim te nj\u00ebri-tjetri? Pjesa 1","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>P\u00ebrsh\u00ebndetje, Habr!<\/p>\n<p>N\u00eb k\u00ebt\u00eb artikull do t\u00eb flas p\u00ebr gjenerimin e numrave pseudo-t rast\u00ebsor nga pjes\u00ebmarr\u00ebsit q\u00eb nuk i besojn\u00eb nj\u00ebri-tjetrit. Si\u00e7 do t\u00eb shohim m\u00eb posht\u00eb, t\u00eb realizosh nj\u00eb gjenerator \"gjithmon\u00eb\" t\u00eb mir\u00eb \u00ebsht\u00eb mjaft e leht\u00eb, por nj\u00eb gjenerator t\u00eb shk\u00eblqyer \u00ebsht\u00eb e v\u00ebshtir\u00eb.<\/p>\n<p>Pse \u00ebsht\u00eb e nevojshme t\u00eb gjenerosh numra t\u00eb rastit p\u00ebr pjes\u00ebmarr\u00ebsit q\u00eb nuk kan\u00eb besim n\u00eb nj\u00ebri-tjetrin? Nj\u00eb nga fushat e aplikimit \u00ebsht\u00eb aplikacionet e decentralizuara. P\u00ebr shembull, nj\u00eb aplikacion q\u00eb merr nj\u00eb bast nga nj\u00eb pjes\u00ebmarr\u00ebs dhe ose dyfishon shum\u00ebn me nj\u00eb probabilitet prej 49%, ose e merr at\u00eb me 51%, do t\u00eb funksionoj\u00eb vet\u00ebm n\u00ebse mund t\u00eb marr\u00eb nj\u00eb num\u00ebr t\u00eb rastit pa paragjykim. N\u00ebse nj\u00eb sulmues mund t\u00eb ndikoj\u00eb n\u00eb rezultatin e pun\u00ebs s\u00eb gjeneratorit t\u00eb numrave t\u00eb rastit, edhe n\u00ebse e rrit disi mund\u00ebsin\u00eb e tij p\u00ebr t\u00eb marr\u00eb pages\u00ebn n\u00eb aplikacion, ai do ta shteroj\u00eb at\u00eb leht\u00ebsisht.<\/p>\n<p>Kur zhvillojm\u00eb nj\u00eb protokoll t\u00eb shp\u00ebrndar\u00eb p\u00ebr gjenerimin e numrave t\u00eb rastit, ne duam q\u00eb ai t\u00eb ket\u00eb tri veti:<\/p>\n<ol>\n<li>\n<p>Ai duhet t\u00eb jet\u00eb pa paragjykim. N\u00eb fjal\u00eb t\u00eb tjera, asnj\u00eb pjes\u00ebmarr\u00ebs nuk duhet t\u00eb ndikoj\u00eb n\u00eb ndonj\u00eb m\u00ebnyr\u00eb n\u00eb rezultatin e gjeneratorit t\u00eb numrave t\u00eb rastit.<\/p>\n<\/li>\n<li>\n<p>Ai duhet t\u00eb jet\u00eb i paparashikuesh\u00ebm. N\u00eb fjal\u00eb t\u00eb tjera, asnj\u00eb pjes\u00ebmarr\u00ebs nuk duhet t\u00eb ket\u00eb mund\u00ebsin\u00eb t\u00eb parashikoj\u00eb se cili num\u00ebr do t\u00eb gjenerohet (ose t\u00eb nxjerr\u00eb ndonj\u00eb nga vetit\u00eb e tij) para se ai t\u00eb gjenerohet.<\/p>\n<\/li>\n<li>\n<p>Protokolli duhet t\u00eb jet\u00eb funksional, do t\u00eb thot\u00eb t\u00eb jet\u00eb i q\u00ebndruesh\u00ebm ndaj faktit q\u00eb nj\u00eb p\u00ebrqindje e disa pjes\u00ebmarr\u00ebsve t\u00eb shk\u00ebputen nga rrjeti ose t\u00eb p\u00ebrpiqen q\u00ebllimisht t\u00eb ndalojn\u00eb protokollin.<\/p>\n<\/li>\n<\/ol>\n<p>N\u00eb k\u00ebt\u00eb artikull, ne do t\u00eb shqyrtojm\u00eb dy qasje: RANDAO + VDF dhe qasjen q\u00eb bazohet n\u00eb kodet fshir\u00ebse. N\u00eb pjes\u00ebn tjet\u00ebr do ta shqyrtojm\u00eb n\u00eb detaje qasjen q\u00eb bazohet n\u00eb n\u00ebnshkrimet me prag.<\/p>\n<p>Por p\u00ebrpara se t\u00eb fillojm\u00eb, le t\u00eb shqyrtojm\u00eb nj\u00eb algorit\u00ebm t\u00eb thjesht\u00eb dhe mjaft t\u00eb p\u00ebrdorur, i cili \u00ebsht\u00eb funksional, i paparashikuesh\u00ebm, por i paragjykuar.<\/p>\n<h3>RANDAO<\/h3>\n<p>RANDAO \u00ebsht\u00eb nj\u00eb qasje shum\u00eb e thjesht\u00eb dhe, p\u00ebr pasoj\u00eb, mjaft e p\u00ebrdorur p\u00ebr t\u00eb siguruar rast\u00ebsin\u00eb. T\u00eb gjith\u00eb pjes\u00ebmarr\u00ebsit n\u00eb rrjet fillimisht zgjidhin lokal nj\u00eb num\u00ebr pseudorast\u00ebsor, pastaj \u00e7do pjes\u00ebmarr\u00ebs d\u00ebrgon hash-in e numrit t\u00eb zgjedhur. M\u00eb pas, pjes\u00ebmarr\u00ebsit n\u00eb radh\u00eb hapin numrat e zgjedhur dhe kryejn\u00eb operacionin XOR mbi numrat e hapur, dhe rezultati i k\u00ebtij operacioni b\u00ebhet rezultati i protokollit.<\/p>\n<p>Hapi i publikimit t\u00eb hash-eve para se t\u00eb zbulohet numrat \u00ebsht\u00eb i nevojsh\u00ebm, q\u00eb sulmuesi t\u00eb mos mund t\u00eb zgjedh\u00eb numrin e tij pasi t\u00eb ket\u00eb par\u00eb numrat e pjes\u00ebmarr\u00ebsve t\u00eb tjer\u00eb. Kjo do t'i jepte atij mund\u00ebsin\u00eb p\u00ebr t\u00eb p\u00ebrcaktuar n\u00eb m\u00ebnyr\u00eb t\u00eb vetme rezultatin e gjeneratorit t\u00eb numrave t\u00eb rast\u00ebsish\u00ebm.<\/p>\n<p>Gjat\u00eb protokollit, pjes\u00ebmarr\u00ebsit duhet t\u00eb arrijn\u00eb dy her\u00eb n\u00eb nj\u00eb marr\u00ebveshje t\u00eb p\u00ebrbashk\u00ebt (t\u00eb ashtuquajturin konsensus): kur t\u00eb fillojn\u00eb t\u00eb zbulojn\u00eb numrat e zgjedhur dhe p\u00ebr pasoj\u00eb t\u00eb ndalen s\u00eb pranuari hash-e, dhe kur t\u00eb p\u00ebrfundojn\u00eb pranimin e numrave t\u00eb zgjedhur dhe t\u00eb llogarisin numrin e rast\u00ebsish\u00ebm p\u00ebrfundimtar. Arritja e k\u00ebtyre vendimeve midis pjes\u00ebmarr\u00ebsve q\u00eb nuk i besojn\u00eb nj\u00ebri-tjetrit \u00ebsht\u00eb nj\u00eb detyr\u00eb e v\u00ebshtir\u00eb, dhe ne do t\u00eb kthehemi n\u00eb t\u00eb n\u00eb artikujt n\u00eb vazhdim; n\u00eb k\u00ebt\u00eb artikull do ta supozojm\u00eb se nj\u00eb algorit\u00ebm konsensusi \u00ebsht\u00eb n\u00eb dispozicion.<\/p>\n<p>Cilat nga karakteristikat q\u00eb p\u00ebrshkruam m\u00eb sip\u00ebr ka RANDAO? Ai \u00ebsht\u00eb i paparashikuesh\u00ebm, ka t\u00eb nj\u00ebjtin jet\u00ebgjat\u00ebsi si protokolli i konsensusit n\u00eb t\u00eb cilin bazohet, por \u00ebsht\u00eb i favorizuar. N\u00eb ve\u00e7anti, sulmuesi mund t\u00eb v\u00ebzhgoj\u00eb rrjetin, dhe pasi pjes\u00ebmarr\u00ebsit e tjer\u00eb t\u00eb zbulojn\u00eb numrat e tyre, ai mund t\u00eb llogaris\u00eb XOR-in e tyre dhe t\u00eb vendos\u00eb n\u00ebse t\u00eb zbuloj\u00eb ose jo numrin e tij, p\u00ebr t\u00eb ndikuar n\u00eb rezultat. Nd\u00ebrsa kjo nuk i lejon sulmuesit t\u00eb p\u00ebrcaktoj\u00eb n\u00eb m\u00ebnyr\u00eb t\u00eb vetme rezultatin e gjeneratorit t\u00eb numrave t\u00eb rast\u00ebsish\u00ebm, ende i jep atij 1 bit ndikimi. Dhe n\u00ebse sulmuesit kontrollojn\u00eb disa pjes\u00ebmarr\u00ebs, numri i bit\u00ebve t\u00eb kontrolluar do t\u00eb jet\u00eb i barabart\u00eb me numrin e pjes\u00ebmarr\u00ebsve n\u00ebn kontrollin e tyre.<\/p>\n<p><img decoding=\"async\" alt=\"A \u00ebsht\u00eb e mundur t\u00eb gjenerohen numra t\u00eb rastit n\u00ebse nuk kemi besim te nj\u00ebri-tjetri? Pjesa 1\" src=\"\/wp-content\/uploads\/2020\/09\/4869d0c7dbc4cc8a368c2846997d6d2a.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Ndikimi i sulmuesve mund t\u00eb pak\u00ebsohet ndjesh\u00ebm n\u00ebse k\u00ebrkohet q\u00eb pjes\u00ebmarr\u00ebsit t\u00eb zbulojn\u00eb numrat n\u00eb rend. At\u00ebher\u00eb, sulmuesi do t\u00eb mund t\u00eb ndikoj\u00eb n\u00eb rezultatin vet\u00ebm n\u00ebse zbulohet i fundit. Nd\u00ebrsa ndikimi \u00ebsht\u00eb shum\u00eb m\u00eb i vog\u00ebl, algoritmi ende \u00ebsht\u00eb i favorizuar.<\/p>\n<h3>RANDAO + VDF<\/h3>\n<p>Nj\u00eb nga opsionet p\u00ebr ta b\u00ebr\u00eb RANDAO t\u00eb paansh\u00ebm \u00ebsht\u00eb si n\u00eb vijim: pas zbules s\u00eb t\u00eb gjith\u00ebve numrave dhe pas llogaritjes s\u00eb XOR-it, rezultati i tij jepet si hyrje p\u00ebr nj\u00eb funksion q\u00eb merr shum\u00eb koh\u00eb p\u00ebr t'u llogaritur, por lejon t\u00eb verifikohet sakt\u00ebsia e llogaritjes shum\u00eb shpejt.<\/p>\n<pre><code>(vdf_output, vdf_proof) = VDF_compute(input) \/\/ kjo \u00ebsht\u00eb shum\u00eb e ngadalt\u00eb\ncorrect = VDF_verify(input, vdf_output, vdf_proof) \/\/ kjo \u00ebsht\u00eb shum\u00eb e shpejt\u00eb<\/code><\/pre>\n<p>Ky funksion quhet Verifiable Delay Function, ose VDF. N\u00ebse llogaritja e rezultatit p\u00ebrfundimtar zgjat m\u00eb shum\u00eb se faza e zbulimit t\u00eb numrave, at\u00ebher\u00eb nj\u00eb sulmues nuk do t\u00eb jet\u00eb n\u00eb gjendje t\u00eb parashikoj\u00eb efektin e demonstrimit ose fshehjes s\u00eb numrit t\u00eb tij, dhe p\u00ebr pasoj\u00eb ai do t\u00eb humbas\u00eb mund\u00ebsin\u00eb p\u00ebr t\u00eb ndikuar n\u00eb rezultat.<\/p>\n<p>Zhvillimi i nj\u00eb VDF t\u00eb mir\u00eb \u00ebsht\u00eb jasht\u00ebzakonisht i v\u00ebshtir\u00eb. Koh\u00ebt e fundit jan\u00eb b\u00ebr\u00eb disa p\u00ebrparime, p\u00ebr shembull <noindex><a rel=\"nofollow\" href=\"https:\/\/eprint.iacr.org\/2018\/623.pdf\"><u>k\u00ebt\u00eb<\/u><\/a><\/noindex> dhe <noindex><a rel=\"nofollow\" href=\"https:\/\/eprint.iacr.org\/2018\/627.pdf\"><u>kjo,<\/u><\/a><\/noindex> e cila e b\u00ebri VDF m\u00eb t\u00eb aplikueshme n\u00eb praktik\u00eb, dhe Ethereum 2.0 n\u00eb afat t\u00eb gjat\u00eb planifikon t\u00eb p\u00ebrdor\u00eb RANDAO me VDF si burim t\u00eb numrave t\u00eb rast\u00ebsish\u00ebm. P\u00ebrve\u00e7 faktit q\u00eb ky qasje \u00ebsht\u00eb e paparashikueshme dhe e paanshme, ajo ka nj\u00eb avantazh suplementar q\u00eb p\u00ebrkat\u00ebsia, n\u00ebse t\u00eb pakt\u00ebn dy pjes\u00ebmarr\u00ebs jan\u00eb t\u00eb disponuesh\u00ebm n\u00eb rrjet (n\u00eb kushtet q\u00eb protokolli i konsensusit t\u00eb p\u00ebrdorur \u00ebsht\u00eb i vlefsh\u00ebm p\u00ebr t\u00eb punuar me nj\u00eb num\u00ebr kaq t\u00eb vog\u00ebl pjes\u00ebmarr\u00ebsish).<\/p>\n<p>V\u00ebshtir\u00ebsia m\u00eb e madhe e k\u00ebtij qasje \u00ebsht\u00eb n\u00eb p\u00ebrcaktimin e nj\u00eb VDF, n\u00eb m\u00ebnyr\u00eb q\u00eb edhe nj\u00eb pjes\u00ebmarr\u00ebs me pajisje t\u00eb specializuara shum\u00eb t\u00eb shtrenjta t\u00eb mos jet\u00eb n\u00eb gjendje ta llogaris\u00eb at\u00eb deri n\u00eb p\u00ebrfundimin e faz\u00ebs s\u00eb zbulimit. N\u00eb m\u00ebnyr\u00eb ideale, algoritmi duhet t\u00eb ket\u00eb madje edhe nj\u00eb rezerv\u00eb t\u00eb r\u00ebnd\u00ebsishme, le t\u00eb themi, 10x. N\u00eb figur\u00ebn m\u00eb posht\u00eb \u00ebsht\u00eb shfaqur nj\u00eb sulm nga nj\u00eb pjes\u00ebmarr\u00ebs q\u00eb ka nj\u00eb ASIC t\u00eb specializuar, i cili i lejon atij t\u00eb ekzekutoj\u00eb VDF m\u00eb shpejt se koha e caktuar p\u00ebr zbulimin e konfirmimit RANDAO. Ky pjes\u00ebmarr\u00ebs ende mund t\u00eb llogaris\u00eb rezultatin p\u00ebrfundimtar duke p\u00ebrdorur ose jo numrin e tij, dhe pas k\u00ebsaj, n\u00eb baz\u00eb t\u00eb llogaritjeve, mund t\u00eb zgjedh\u00eb ta tregoj\u00eb at\u00eb ose jo.<\/p>\n<p><img decoding=\"async\" alt=\"A \u00ebsht\u00eb e mundur t\u00eb gjenerohen numra t\u00eb rastit n\u00ebse nuk kemi besim te nj\u00ebri-tjetri? Pjesa 1\" src=\"\/wp-content\/uploads\/2020\/09\/3c6e64b6473b951f549f5ba60edbafa9.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>P\u00ebr familjen e sip\u00ebrp\u00ebrmendur t\u00eb VDF-ve, performanca e nj\u00eb ASIC t\u00eb specializuar mund t\u00eb jet\u00eb m\u00eb shum\u00eb se 100 her\u00eb m\u00eb e lart\u00eb se ajo e pajisjeve normale. Pra, n\u00ebse faza e zbulimit zgjat 10 sekonda, at\u00ebher\u00eb VDF, e llogaritur n\u00eb nj\u00eb t\u00eb till\u00eb ASIC, duhet t\u00eb zgjas\u00eb m\u00eb shum\u00eb se 100 sekonda p\u00ebr t\u00eb pasur nj\u00eb rezerv\u00eb sigurie 10-fish, dhe, k\u00ebshtu, e nj\u00ebjta VDF e llogaritur n\u00eb pajisje normale duhet t\u00eb kushtoj\u00eb 100 x 100 sekonda = ~ 3 or\u00eb.<\/p>\n<p>Fondi Ethereum planifikon t\u00eb zgjidh\u00eb k\u00ebt\u00eb problem p\u00ebrmes krijimit t\u00eb ASIC publik\u00eb falas. Sapo kjo t\u00eb ndodhi, t\u00eb gjitha protokollet e tjera gjithashtu mund t\u00eb p\u00ebrfitojn\u00eb nga kjo teknologji, por deri n\u00eb at\u00eb koh\u00eb, qasja RANDAO + VDF nuk do t\u00eb jet\u00eb po aq e q\u00ebndrueshme p\u00ebr protokollet q\u00eb nuk mund t\u00eb investojn\u00eb n\u00eb zhvillimin e ASIC-it t\u00eb tyre t\u00eb vet.<\/p>\n<p>Shum\u00eb artikuj, video dhe informacione t\u00eb tjera mbi VDF jan\u00eb mbledhur n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/vdfresearch.org\/\"><u>k\u00ebt\u00eb faqe<\/u><\/a><\/noindex>.<\/p>\n<h3>P\u00ebrdorim kodet fshir\u00ebse<\/h3>\n<p>N\u00eb k\u00ebt\u00eb seksion ne do t\u00eb shqyrtojm\u00eb protokollin e gjenerimit t\u00eb numrave t\u00eb rastit q\u00eb p\u00ebrdor <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A1%D1%82%D0%B8%D1%80%D0%B0%D1%8E%D1%89%D0%B8%D0%B9_%D0%BA%D0%BE%D0%B4\">kodet fshir\u00ebse<\/a><\/noindex>. Ai mund t\u00eb p\u00ebrballoj\u00eb deri n\u00eb \u2153 t\u00eb sulmuesve, duke mbetur i q\u00ebndruesh\u00ebm, dhe lejon ekzistenc\u00ebn e deri n\u00eb \u2154 sulmuesve, p\u00ebrpara se ata t\u00eb mund t\u00eb parashikojn\u00eb ose ndikojn\u00eb n\u00eb rezultatin.<\/p>\n<p>Ideja kryesore e protokollit \u00ebsht\u00eb si m\u00eb posht\u00eb. P\u00ebr thjesht\u00ebsi, le t\u00eb supozojm\u00eb se ka sakt\u00ebsisht 100 pjes\u00ebmarr\u00ebs. Le t\u00eb supozojm\u00eb gjithashtu se t\u00eb gjith\u00eb pjes\u00ebmarr\u00ebsit lokalisht kan\u00eb nj\u00eb \u00e7el\u00ebs privat, dhe \u00e7el\u00ebsat publik\u00eb t\u00eb t\u00eb gjith\u00eb pjes\u00ebmarr\u00ebsve jan\u00eb t\u00eb njohur nga t\u00eb gjith\u00eb pjes\u00ebmarr\u00ebsit:<\/p>\n<ol>\n<li>\n<p>\u00c7do pjes\u00ebmarr\u00ebs lokalisht krijon nj\u00eb varg t\u00eb gjat\u00eb, e ndan at\u00eb n\u00eb 67 pjes\u00eb, krijon kode fshir\u00ebse p\u00ebr t\u00eb marr\u00eb 100 aksione, t\u00eb tilla q\u00eb \u00e7do 67 jan\u00eb t\u00eb mjaftueshme p\u00ebr t\u00eb rikonstruktuar vargun, i cakton secil\u00ebs nga 100 aksionet nj\u00eb nga pjes\u00ebmarr\u00ebsit dhe i kodon ato me \u00e7el\u00ebsin publik t\u00eb t\u00eb nj\u00ebjtit pjes\u00ebmarr\u00ebs. Pastaj t\u00eb gjitha aksionet e koduara publikohen.<\/p>\n<\/li>\n<li>\n<p>Pjes\u00ebmarr\u00ebsit p\u00ebrdorin nj\u00eb konsensus, p\u00ebr t\u00eb arritur nj\u00eb marr\u00ebveshje mbi setet e koduara nga 67 pjes\u00ebmarr\u00ebs konkret.<\/p>\n<\/li>\n<li>\n<p>Sapo konsensusi t\u00eb arrihet, \u00e7do pjes\u00ebmarr\u00ebs merr aksionet e koduara n\u00eb secilin nga 67 setet, t\u00eb koduara me \u00e7el\u00ebsin e tyre publik, i dekriptojn\u00eb t\u00eb gjitha k\u00ebto aksione dhe publikojn\u00eb t\u00eb gjitha k\u00ebto aksione t\u00eb dekriptuara.<\/p>\n<\/li>\n<li>\n<p>Sapo 67 pjes\u00ebmarr\u00ebs p\u00ebrfundojn\u00eb hapat (3), t\u00eb gjitha setet e miratuara mund t\u00eb dekodohen plot\u00ebsisht dhe t\u00eb rikonstruktohen p\u00ebr shkak t\u00eb pronave t\u00eb kodit fshir\u00ebs, dhe numri p\u00ebrfundimtar mund t\u00eb merret si XOR i vargjeve fillestare, me t\u00eb cilat pjes\u00ebmarr\u00ebsit filluan n\u00eb (1).<\/p>\n<\/li>\n<\/ol>\n<p><img decoding=\"async\" alt=\"A \u00ebsht\u00eb e mundur t\u00eb gjenerohen numra t\u00eb rastit n\u00ebse nuk kemi besim te nj\u00ebri-tjetri? Pjesa 1\" src=\"\/wp-content\/uploads\/2020\/09\/b74ef4bb4a8148766f0b1ab2a8222625.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\u00cbsht\u00eb e mundur t\u00eb tregohet se ky protokoll \u00ebsht\u00eb i paansh\u00ebm dhe i paparashikuesh\u00ebm. Numri i rast\u00ebsish\u00ebm rezultues \u00ebsht\u00eb i p\u00ebrcaktuar pasi t\u00eb arrihet konsensusi, por askush nuk e di at\u00eb derisa \u2154 e pjes\u00ebmarr\u00ebsve t\u00eb dekodojn\u00eb pjes\u00ebt e koduara me \u00e7el\u00ebsat e tyre publik\u00eb. Pra, numri i rast\u00ebsish\u00ebm \u00ebsht\u00eb p\u00ebrcaktuar p\u00ebrpara publikimit t\u00eb informacionit t\u00eb mjaftuesh\u00ebm p\u00ebr rikuperimin e tij.<\/p>\n<p>\u00c7far\u00eb ndodh n\u00ebse n\u00eb hapin (1) nj\u00eb nga pjes\u00ebmarr\u00ebsit u d\u00ebrgon pjes\u00ebmarr\u00ebsve t\u00eb tjer\u00eb pjes\u00eb t\u00eb koduara q\u00eb nuk jan\u00eb nj\u00eb kod fshir\u00ebs i sakt\u00eb i nj\u00eb vargu t\u00eb caktuar? Pa ndryshime t\u00eb tjera, pjes\u00ebmarr\u00ebsit e ndrysh\u00ebm nuk do t\u00eb jen\u00eb n\u00eb gjendje t\u00eb rikuperojn\u00eb vargun fare, ose do t\u00eb rikuperojn\u00eb vargje t\u00eb ndryshme, q\u00eb do t\u00eb rezultoj\u00eb n\u00eb numra t\u00eb ndrysh\u00ebm rast\u00ebsor\u00eb p\u00ebr pjes\u00ebmarr\u00ebs t\u00eb ndrysh\u00ebm. P\u00ebr t\u00eb parandaluar k\u00ebt\u00eb, mund t\u00eb b\u00ebhet si m\u00eb posht\u00eb: \u00e7do pjes\u00ebmarr\u00ebs, p\u00ebrve\u00e7 pjes\u00ebve t\u00eb koduara, llogarit gjithashtu <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%94%D0%B5%D1%80%D0%B5%D0%B2%D0%BE_%D1%85%D0%B5%D1%88%D0%B5%D0%B9\">pem\u00ebn Merkle<\/a><\/noindex> t\u00eb gjitha k\u00ebtyre pjes\u00ebve, dhe \u00e7do pjes\u00ebmarr\u00ebs d\u00ebrgon si pjes\u00ebn e koduar, ashtu edhe rr\u00ebnj\u00ebn e pem\u00ebs Merkle, dhe prov\u00ebn e p\u00ebrfshirjes s\u00eb pjes\u00ebs n\u00eb pem\u00ebn Merkle. N\u00eb konsensusin n\u00eb hapin (2), pjes\u00ebmarr\u00ebsit nuk bien dakord thjesht p\u00ebr shum\u00eb grupe, por p\u00ebr shum\u00eb rr\u00ebnj\u00eb specifike t\u00eb k\u00ebtyre pem\u00ebve (n\u00ebse ndonj\u00eb pjes\u00ebmarr\u00ebs largohet nga protokolli dhe d\u00ebrgon rr\u00ebnj\u00eb t\u00eb ndryshme t\u00eb pem\u00ebs Merkle p\u00ebr pjes\u00ebmarr\u00ebs t\u00eb ndrysh\u00ebm, dhe k\u00ebto dy rr\u00ebnj\u00eb tregohen gjat\u00eb konsensusit, vargu i tij nuk p\u00ebrfshihet n\u00eb grupin rezultues). Pas konsensusit, ne do t\u00eb kemi 67 vargje t\u00eb koduara dhe rr\u00ebnj\u00ebt p\u00ebrkat\u00ebse t\u00eb pem\u00ebs Merkle, t\u00eb tilla q\u00eb ka t\u00eb pakt\u00ebn 67 pjes\u00ebmarr\u00ebs (nuk \u00ebsht\u00eb e nevojshme q\u00eb t\u00eb jen\u00eb ata t\u00eb nj\u00ebjt\u00eb q\u00eb sugjeruan vargjet p\u00ebrkat\u00ebse), p\u00ebr t\u00eb cilat p\u00ebr \u00e7do nga 67 vargjet ka nj\u00eb mesazh me pjes\u00ebn e kodit fshir\u00ebs dhe prov\u00ebn e p\u00ebrfshirjes s\u00eb pjes\u00ebs s\u00eb tyre n\u00eb pem\u00ebn Merkle t\u00eb p\u00ebrshtatshme.<\/p>\n<p>Kur n\u00eb hapin (4) nj\u00eb pjes\u00ebmarr\u00ebs dekodifikon 67 pjes\u00eb p\u00ebr nj\u00eb varg t\u00eb caktuar, dhe p\u00ebrpiqet t\u00eb rikuperoj\u00eb vargun origjinal, \u00ebsht\u00eb e mundur nj\u00eb nga variantet e m\u00ebposhtme:<\/p>\n<ol>\n<li>\n<p>Vargu rikuperohet, dhe n\u00ebse m\u00eb pas kodifikohet p\u00ebrs\u00ebri me kodet fshir\u00ebse dhe llogaritet pem\u00ebn Merkle p\u00ebr pjes\u00ebt e llogaritura lokal, rr\u00ebnja p\u00ebrputhet me at\u00eb mbi t\u00eb cil\u00ebn \u00ebsht\u00eb arritur konsensusi.<\/p>\n<\/li>\n<li>\n<p>Vargu rikuperohet, por rr\u00ebnja e llogaritur lokal nuk p\u00ebrputhet me at\u00eb mbi t\u00eb cil\u00ebn \u00ebsht\u00eb arritur konsensusi.<\/p>\n<\/li>\n<li>\n<p>Vargu nuk rikuperohet.<\/p>\n<\/li>\n<\/ol>\n<p>\u00cbsht\u00eb e leht\u00eb t\u00eb tregohet se n\u00ebse p\u00ebr t\u00eb pakt\u00ebn nj\u00eb pjes\u00ebmarr\u00ebs ndodhi m\u00ebnyra (1), at\u00ebher\u00eb p\u00ebr t\u00eb gjith\u00eb pjes\u00ebmarr\u00ebsit do t\u00eb ndodh\u00eb m\u00ebnyra (1), dhe p\u00ebrkundrazi, n\u00ebse p\u00ebr t\u00eb pakt\u00ebn nj\u00eb pjes\u00ebmarr\u00ebs ndodhi m\u00ebnyra (2) ose (3), at\u00ebher\u00eb p\u00ebr t\u00eb gjith\u00eb pjes\u00ebmarr\u00ebsit do t\u00eb ndodh\u00eb m\u00ebnyra (2) ose (3). Pra, p\u00ebr \u00e7do rresht n\u00eb grup, ose t\u00eb gjith\u00eb pjes\u00ebmarr\u00ebsit e rikthejn\u00eb me sukses, ose t\u00eb gjith\u00eb pjes\u00ebmarr\u00ebsit nuk e rikthejn\u00eb dot. Numri i rast\u00ebsish\u00ebm q\u00eb rezulton \u00ebsht\u00eb XOR vet\u00ebm i atyre rreshtave q\u00eb pjes\u00ebmarr\u00ebsit arrit\u00ebn t'i rikthenin.<\/p>\n<h3>N\u00ebnshkrimet e pragut<\/h3>\n<p>Nj\u00eb qasje tjet\u00ebr p\u00ebr rast\u00ebsin\u00eb \u00ebsht\u00eb p\u00ebrdorimi i ashtuquajturave n\u00ebnshkrime BLS. Gjeneratori i numrave t\u00eb rast\u00ebsish\u00ebm, i bazuar n\u00eb n\u00ebnshkrimet e pragut, ka t\u00eb nj\u00ebjtat garanci si algoritmi i m\u00ebsip\u00ebrm i bazuar n\u00eb kodet e fshirjes, por ka nj\u00eb asimptotik\u00eb ndjesh\u00ebm m\u00eb t\u00eb ul\u00ebt t\u00eb numrit t\u00eb mesazheve t\u00eb d\u00ebrguara p\u00ebr \u00e7do num\u00ebr t\u00eb gjeneruar.<\/p>\n<p>N\u00ebnshkrimet BLS jan\u00eb nj\u00eb konstrukcion q\u00eb lejon disa pjes\u00ebmarr\u00ebs t\u00eb krijojn\u00eb nj\u00eb n\u00ebnshkrim t\u00eb p\u00ebrbashk\u00ebt p\u00ebr nj\u00eb mesazh. K\u00ebto n\u00ebnshkrime p\u00ebrdoren shpesh p\u00ebr t\u00eb kursyer hap\u00ebsir\u00eb dhe bandwidth duke mos k\u00ebrkuar shp\u00ebrndarjen e disa n\u00ebnshkrimeve.&nbsp;<\/p>\n<p>P\u00ebrdorimi i shpesht\u00eb p\u00ebr n\u00ebnshkrimet BLS n\u00eb protokollet e blockchain, p\u00ebrve\u00e7 gjenerimit t\u00eb numrave t\u00eb rast\u00ebsish\u00ebm, \u00ebsht\u00eb n\u00ebnshkrimi i bllok\u00ebve n\u00eb protokollet BFT. Le t\u00eb themi se 100 pjes\u00ebmarr\u00ebs krijojn\u00eb blloqe, dhe blloku konsiderohet i p\u00ebrfunduar n\u00ebse 67 nga ata e n\u00ebnshkruajn\u00eb at\u00eb. T\u00eb gjith\u00eb ata mund t\u00eb paraqesin pjes\u00ebt e n\u00ebnshkrimit t\u00eb tyre BLS dhe t\u00eb p\u00ebrdorin nj\u00eb algorit\u00ebm konsensusi p\u00ebr t\u00eb pajtuar 67 nga ata, dhe m\u00eb pas t'i bashkojn\u00eb ato n\u00eb nj\u00eb n\u00ebnshkrim t\u00eb vet\u00ebm BLS. \u00c7do 67 (ose m\u00eb shum\u00eb) pjes\u00eb mund t\u00eb p\u00ebrdoren p\u00ebr t\u00eb krijuar n\u00ebnshkrimin p\u00ebrfundimtar, i cili do t\u00eb varet nga cilat 67 n\u00ebnshkrime jan\u00eb bashkuar, dhe prandaj mund t\u00eb ndryshoj\u00eb, por megjithat\u00eb zgjedhja e ndryshme e 67 pjes\u00ebmarr\u00ebsve do t\u00eb formonte nj\u00eb n\u00ebnshkrim t\u00eb ndrysh\u00ebm, \u00e7do n\u00ebnshkrim i till\u00eb do t\u00eb ishte nj\u00eb n\u00ebnshkrim i sakt\u00eb p\u00ebr bllokun. Pjes\u00ebmarr\u00ebsit e tjer\u00eb pastaj kan\u00eb mjaftuesh\u00ebm t\u00eb marrin p\u00ebrmes rrjetit dhe t\u00eb verifikojn\u00eb vet\u00ebm nj\u00eb n\u00ebnshkrim p\u00ebr \u00e7do bllok, n\u00eb vend t\u00eb 67, q\u00eb ndjesh\u00ebm zvog\u00eblon ngarkes\u00ebn n\u00eb rrjet.<\/p>\n<p>Duket se n\u00ebse \u00e7el\u00ebsat e mbyllur q\u00eb p\u00ebrdorin pjes\u00ebmarr\u00ebsit gjenerohen n\u00eb nj\u00eb m\u00ebnyr\u00eb t\u00eb caktuar, at\u00ebher\u00eb pavar\u00ebsisht nga cila jan\u00eb 67 n\u00ebnshkrime (ose m\u00eb shum\u00eb, por asnj\u00ebher\u00eb m\u00eb pak), n\u00ebnshkrimi q\u00eb rezulton do t\u00eb jet\u00eb i nj\u00ebjt\u00eb. Kjo mund t\u00eb p\u00ebrdoret si burim rast\u00ebsie: pjes\u00ebmarr\u00ebsit s\u00eb pari bien dakord p\u00ebr nj\u00eb mesazh t\u00eb caktuar q\u00eb do t\u00eb n\u00ebnshkruajn\u00eb (kjo mund t\u00eb jet\u00eb rezultati i RANDAO-s ose thjesht hash i bllokut t\u00eb fundit, n\u00eb t\u00eb v\u00ebrtet\u00eb nuk ka r\u00ebnd\u00ebsi, mjafton t\u00eb ndryshoj\u00eb \u00e7do her\u00eb dhe t\u00eb jet\u00eb e r\u00ebn\u00eb dakord), dhe krijojn\u00eb nj\u00eb n\u00ebnshkrim BLS p\u00ebr t\u00eb. Rezultati i gjenerimit do t\u00eb jet\u00eb i paparashikuesh\u00ebm, derisa 67 pjes\u00ebmarr\u00ebs t\u00eb ofrojn\u00eb pjes\u00ebt e tyre, dhe pas k\u00ebsaj, daljet tashm\u00eb jan\u00eb t\u00eb paracaktuara dhe nuk mund t\u00eb varen nga veprimet e ndonj\u00eb pjes\u00ebmarr\u00ebsi.<\/p>\n<p>Ky qasje ndaj rast\u00ebsis\u00eb \u00ebsht\u00eb e q\u00ebndrueshme, n\u00ebse s\u00eb paku \u2154 e pjes\u00ebmarr\u00ebsve jan\u00eb online dhe ndjekin protokollin, dhe \u00ebsht\u00eb e paanshme dhe e paparashikueshme derisa s\u00eb paku \u2153 e pjes\u00ebmarr\u00ebsve t\u00eb ndjekin protokollin. \u00cbsht\u00eb e r\u00ebnd\u00ebsishme t\u00eb theksohet se nj\u00eb sulmues, i cili kontrollon m\u00eb shum\u00eb se \u2153, por m\u00eb pak se \u2154 e pjes\u00ebmarr\u00ebsve, mund t\u00eb ndaloj\u00eb protokollin, por nuk mund t\u00eb parashikoj\u00eb ose t\u00eb ndikoj\u00eb n\u00eb daljen e tij.<\/p>\n<p>N\u00ebnshkrimet me prag vet\u00eb jan\u00eb nj\u00eb tem\u00eb shum\u00eb interesante. N\u00eb pjes\u00ebn e dyt\u00eb t\u00eb artikullit ne do t\u00eb shqyrtojm\u00eb n\u00eb detaje se si ato funksionojn\u00eb, dhe si duhet t\u00eb gjenerohen \u00e7el\u00ebsat e pjes\u00ebmarr\u00ebsve p\u00ebr t'u p\u00ebrdorur n\u00ebnshkrimet me prag si nj\u00eb gjenerator numrash t\u00eb rast\u00ebsish\u00ebm.<\/p>\n<h3>N\u00eb p\u00ebrfundim<\/h3>\n<p>Ky artikull \u00ebsht\u00eb i pari n\u00eb nj\u00eb seri artikujsh teknik\u00eb n\u00eb blog <noindex><a rel=\"nofollow\" href=\"https:\/\/near.org\">NEAR<\/a><\/noindex>. NEAR \u00ebsht\u00eb nj\u00eb protokoll blockchain dhe platform\u00eb p\u00ebr zhvillimin e aplikacioneve t\u00eb decentralizuara me fokus n\u00eb leht\u00ebsin\u00eb e zhvillimit dhe leht\u00ebsin\u00eb e p\u00ebrdorimit p\u00ebr p\u00ebrdoruesit fundor\u00eb.<\/p>\n<p>Kodi i protokollit \u00ebsht\u00eb i hapur, realizimi yn\u00eb \u00ebsht\u00eb i shkruar n\u00eb Rust, mund t\u00eb gjendet <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/nearprotocol\/nearcore\">k\u00ebtu<\/a><\/noindex>.<\/p>\n<p>T\u00eb shikoni se si duket zhvillimi n\u00ebn NEAR, dhe t\u00eb eksperimentoni n\u00eb online IDE, mund t\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/examples.near.org\">k\u00ebtu<\/a><\/noindex>.<\/p>\n<p>T\u00eb ndiqni t\u00eb gjitha lajmet n\u00eb rusisht mund t\u00eb b\u00ebhet n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/near_protocol\">grupin n\u00eb telegram<\/a><\/noindex> dhe n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/vk.com\/nearprotocol\">grupin n\u00eb VKontakte<\/a><\/noindex>, nd\u00ebrsa n\u00eb anglisht n\u00eb zyrtarin <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/NEARProtocol\">twitter<\/a><\/noindex>.<\/p>\n<p>Shihemi s\u00eb shpejti!<\/p>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/near\/blog\/521090\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043f\u0440\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e \u043f\u0441\u0435\u0432\u0434\u043e-\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0434\u043e\u0432\u0435\u0440\u044f\u044e\u0442 \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0443. \u041a\u0430\u043a \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u043d\u0438\u0436\u0435, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u201c\u043f\u043e\u0447\u0442\u0438\u201d \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e, \u0430 \u0432\u043e\u0442 \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u2013 \u0441\u043b\u043e\u0436\u043d\u043e. \u0417\u0430\u0447\u0435\u043c \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0443\u0436\u043d\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430\u043c, \u043d\u0435 \u0434\u043e\u0432\u0435\u0440\u044f\u044e\u0449\u0438\u043c \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0443? \u041e\u0434\u043d\u0430 \u0438\u0437 \u043e\u0431\u043b\u0430\u0441\u0442\u0435\u0439 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f &#8212; \u044d\u0442\u043e \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":95469,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-95468","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=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440!\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043f\u0440\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e \u043f\u0441\u0435\u0432\u0434\u043e-\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0434\u043e\u0432\u0435\u0440\u044f\u044e\u0442 \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0443.\" \/>\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\/sq\/blog\/administrirovanie\/mozhno-li-generirovat-sluchajnye-chisla-esli-my-ne-doveryaem-drug-drugu-chast-1\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\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\udd47\u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430, \u0435\u0441\u043b\u0438 \u043c\u044b \u043d\u0435 \u0434\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0443? \u0427\u0430\u0441\u0442\u044c 1 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440!\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043f\u0440\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e \u043f\u0441\u0435\u0432\u0434\u043e-\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0434\u043e\u0432\u0435\u0440\u044f\u044e\u0442 \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0443.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/mozhno-li-generirovat-sluchajnye-chisla-esli-my-ne-doveryaem-drug-drugu-chast-1\" \/>\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=\"2020-09-29T17:42:29+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-09-29T17:42:29+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\udd47 A mund t\u00eb gjenerohen numra rast\u00ebsor\u00eb, n\u00ebse ne nuk i besojm\u00eb nj\u00ebri-tjetrit? Pjesa 1 | ProHoster","description":"P\u00ebrsh\u00ebndetje, Habr! N\u00eb k\u00ebt\u00eb artikull do t\u00eb flas p\u00ebr gjenerimin e numrave pseudo-rast\u00ebsor nga pjes\u00ebmarr\u00ebsit q\u00eb nuk i besojn\u00eb nj\u00ebri-tjetrit.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/mozhno-li-generirovat-sluchajnye-chisla-esli-my-ne-doveryaem-drug-drugu-chast-1","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","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\udd47\u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430, \u0435\u0441\u043b\u0438 \u043c\u044b \u043d\u0435 \u0434\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0443? \u0427\u0430\u0441\u0442\u044c 1 | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440!\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043f\u0440\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e \u043f\u0441\u0435\u0432\u0434\u043e-\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0434\u043e\u0432\u0435\u0440\u044f\u044e\u0442 \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0443.","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/mozhno-li-generirovat-sluchajnye-chisla-esli-my-ne-doveryaem-drug-drugu-chast-1","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":"2020-09-29T17:42:29+00:00","article:modified_time":"2020-09-29T17:42:29+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"95468","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 11:05:29","updated":"2022-09-28 01:55:15","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/95468","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=95468"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/95468\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/95469"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=95468"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=95468"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=95468"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}