Кездейсоқ сандар және орталықтандырылмаған желілер: практикалық қолданбалар

Кіріспе

«Кездейсоқ сандарды құру кездейсоқтыққа қалдыру үшін тым маңызды».
Роберт Кавю, 1970 жыл

Бұл мақала сенімсіз ортада кездейсоқ сандарды ұжымдық генерациялау арқылы шешімдерді практикалық қолдануға арналған. Қысқасы, блокчейндерде кездейсоқ қалай және не үшін қолданылады және «жақсы» кездейсоқты «жаманнан» қалай ажыратуға болатыны туралы аздап. Шынайы кездейсоқ санды құру тіпті бір компьютерде де өте қиын мәселе болып табылады және оны криптографтар көптен бері зерттеп келеді. Орталықтандырылмаған желілерде кездейсоқ сандарды генерациялау одан да күрделі және маңызды.

Дәл қатысушылар бір-біріне сенбейтін желілерде даусыз кездейсоқ санды генерациялау мүмкіндігі көптеген маңызды мәселелерді тиімді шешуге және қолданыстағы схемаларды айтарлықтай жақсартуға мүмкіндік береді. Оның үстіне, құмар ойындар мен лотерея бұл жерде бірінші мақсат емес, өйткені бұл тәжірибесіз оқырманға алғашында көрінуі мүмкін.

Кездейсоқ сандарды генерациялау

Компьютерлер кездейсоқ сандарды өздігінен жасай алмайды, ол үшін сырттан көмек қажет. Компьютер кездейсоқ мәндерді, мысалы, тінтуірдің қозғалыстарынан, пайдаланылған жад көлемінен, процессор түйреуіштеріндегі адасу токтарынан және энтропия көздері деп аталатын көптеген басқа көздерден ала алады. Бұл мәндердің өздері мүлдем кездейсоқ емес, өйткені олар белгілі бір диапазонда немесе болжамды өзгерістер үлгісіне ие. Мұндай сандарды берілген диапазондағы шынымен кездейсоқ санға айналдыру үшін энтропия көзінің біркелкі таралмаған мәндерінен біркелкі бөлінген жалған кездейсоқ мәндерді алу үшін оларға криптотрансформациялар қолданылады. Алынған мәндер псевдорандом деп аталады, өйткені олар шын мәнінде кездейсоқ емес, бірақ детерминирленген энтропиядан алынған. Кез келген жақсы криптографиялық алгоритм деректерді шифрлау кезінде кездейсоқ реттіліктен статистикалық түрде ажыратылмайтын шифрлық мәтіндерді шығарады, сондықтан кездейсоқтықты жасау үшін сіз энтропия көзін ала аласыз, ол тіпті шағын диапазондарда да мәндердің жақсы қайталануын және болжауға болмайтындығын қамтамасыз етеді. жұмыстың қалған бөлігі биттерді тарату және араластыру. Алынған мәнді шифрлау алгоритмі қабылдайды.

Қысқаша білім беру бағдарламасын аяқтау үшін мен бір құрылғыда кездейсоқ сандарды генерациялау деректеріміздің қауіпсіздігін қамтамасыз етудің бір тірегі болып табылатынын қосамын. Жасалған жалған кездейсоқ сандар әртүрлі желілерде қауіпсіз қосылымдарды орнату, генерациялау үшін пайдаланылады. жүктемені теңестіруге, тұтастықты бақылауға және басқа да көптеген қолданбаларға арналған криптографиялық кілттер. Көптеген хаттамалардың қауіпсіздігі сенімді, сыртқы болжаусыз кездейсоқты генерациялау, оны сақтау және оны хаттаманың келесі қадамына дейін ашпау мүмкіндігіне байланысты, әйтпесе қауіпсіздік бұзылады. Жалған кездейсоқ мән генераторына жасалған шабуыл өте қауіпті және кездейсоқтық генерациясын пайдаланатын барлық бағдарламалық жасақтамаға бірден қауіп төндіреді.

Егер сіз криптография бойынша негізгі курстан өткен болсаңыз, мұның бәрін білуіңіз керек, сондықтан орталықтандырылмаған желілер туралы жалғастырайық.

Блокчейндерде кездейсоқ

Ең алдымен, мен ақылды келісімшарттарды қолдайтын блокчейндер туралы айтатын боламын; олар жоғары сапалы, даусыз кездейсоқтық беретін мүмкіндіктерді толығымен пайдалана алады. Әрі қарай, қысқаша айтқанда, мен бұл технологияны атаймын «Жалпы тексерілетін кездейсоқ маяктар” немесе PVRB. Блокчейндер ақпаратты кез келген қатысушы тексере алатын желілер болғандықтан, атаудың негізгі бөлігі «Жалпы тексерілетін», яғни. Кез келген адам блокчейнге орналастырылған нәтиже нөмірінің келесі қасиеттерге ие екендігін дәлелдеу үшін есептеулерді пайдалана алады:

  • Нәтиже дәлелденетін біркелкі үлестірімге ие болуы керек, яғни дәлелденетін күшті криптографияға негізделген.
  • Нәтиженің кез келген биттерін басқару мүмкін емес. Нәтижесінде нәтижені алдын ала болжау мүмкін емес.
  • Сіз хаттамаға қатыспау немесе желіні шабуыл хабарламаларымен шамадан тыс жүктеу арқылы генерациялау протоколын бұза алмайсыз.
  • Жоғарыда айтылғандардың барлығы хаттамаға адал емес қатысушылардың рұқсат етілген санының сөз байласуына төзімді болуы керек (мысалы, қатысушылардың 1/3 бөлігі).

Қатысушылардың кішігірім тобының тіпті бақыланатын жұп/тақ кездейсоқты шығару үшін сөз байласуының кез келген мүмкіндігі қауіпсіздік саңылауы болып табылады. Кездейсоқ шығаруды тоқтату үшін топтың кез келген қабілеті қауіпсіздік саңылауы болып табылады. Жалпы, мәселе көп, бұл тапсырма оңай емес...

PVRB үшін ең маңызды қолданба әртүрлі ойындар, лотереялар және блокчейндегі құмар ойындардың кез келген түрі болып табылады. Шынында да, бұл маңызды бағыт, бірақ блокчейндердегі кездейсоқтық одан да маңызды қосымшаларға ие. Оларды қарастырайық.

Консенсус алгоритмдері

PVRB желілік консенсусты ұйымдастыруда үлкен рөл атқарады. Блокчейндердегі транзакциялар электрондық қолтаңбамен қорғалған, сондықтан «транзакцияға шабуыл» әрқашан транзакцияны блокқа (немесе бірнеше блоктарға) қосу/шығару болып табылады. Ал консенсус алгоритмінің негізгі міндеті – осы транзакциялардың ретін және осы операцияларды қамтитын блоктардың ретін келісу. Сондай-ақ, нақты блокчейндер үшін қажетті қасиет түпкілікті болып табылады - желінің түпкілікті блокқа дейінгі тізбектің түпкілікті екендігімен келісу мүмкіндігі және жаңа шанышқылардың пайда болуына байланысты ешқашан алынып тасталмайды. Әдетте, блоктың жарамды және, ең бастысы, түпкілікті екендігімен келісу үшін блок өндірушілердің көпшілігінен (бұдан әрі - БП - блок өндірушілер) қол жинау қажет, бұл кем дегенде блок тізбегін жеткізуді талап етеді. барлық БП-ға және қолтаңбаларды барлық БП-ға тарату . BP саны өскен сайын желідегі қажетті хабарламалар саны экспоненциалды түрде өседі, сондықтан, мысалы, Hyperledger pBFT консенсусында қолданылатын, соңғылықты талап ететін консенсус алгоритмдері бірнеше ондаған BP-ден бастап қажетті жылдамдықта жұмыс істемейді, байланыстардың үлкен саны.

Егер желіде даусыз және адал PVRB болса, онда тіпті ең қарапайым жуықтауда да оның негізінде блок өндірушілердің бірін таңдап, оны хаттаманың бір раундында «көшбасшы» етіп тағайындауға болады. Егер бізде болса N блок өндірушілері, олардың ішінде M: M > 1/2 N адал, транзакцияларды цензураға түсірмеңіз және «қос шығын» шабуылын жүзеге асыру үшін тізбекті бұзбаңыз, содан кейін біркелкі таратылған даусыз PVRB пайдалану ықтималдығы бар адал көшбасшыны таңдауға мүмкіндік береді. M / N (M / N > 1/2). Егер әрбір басшыға блокты шығара алатын және тізбекті тексере алатын жеке уақыт аралығы тағайындалса және бұл аралықтар уақыт бойынша тең болса, онда адал БП блок тізбегі зиянды БП қалыптастыратын тізбектен ұзағырақ болады және консенсус. Алгоритм тізбектің ұзындығына сүйенеді, жай ғана «жаманды» тастайды. Әрбір BP-ге тең уақыт бөліктерін бөлудің бұл принципі алғаш рет Graphene-де (EOS предшественнигі) қолданылған және блоктардың көпшілігін бір қолтаңбамен жабуға мүмкіндік береді, бұл желі жүктемесін айтарлықтай азайтады және бұл консенсустың өте жылдам жұмыс істеуіне мүмкіндік береді және тұрақты. Дегенмен, EOS желісі енді 2/3 BP қолтаңбаларымен расталған арнайы блоктарды (Соңғы қайтымсыз блок) пайдалануы керек. Бұл блоктар түпкілікті қамтамасыз ету үшін қызмет етеді (соңғы қайтымсыз блокқа дейін басталатын тізбекті айырдың мүмкін еместігі).

Сондай-ақ, нақты іске асыруда хаттамалық схема күрделірек - ұсынылған блоктар үшін дауыс беру блоктар жетіспейтін және желіде проблемалар болған жағдайда желіні қолдау үшін бірнеше кезеңде жүзеге асырылады, бірақ тіпті мұны ескере отырып, PVRB пайдаланатын консенсус алгоритмдері талап етеді. BP арасындағы хабарламалар айтарлықтай аз, бұл оларды дәстүрлі PVFT немесе оның әртүрлі модификацияларына қарағанда жылдамырақ жасауға мүмкіндік береді.

Мұндай алгоритмдердің ең көрнекті өкілі: Ouroboros Кардано командасынан, ол BP келісіміне қарсы математикалық түрде дәлелденген.

Ouroboros-та PVRB «BP кестесі» деп аталатын кестені анықтау үшін қолданылады - кесте, оған сәйкес әрбір BP блокты жариялау үшін жеке уақыт аралығы тағайындалады. PVRB пайдаланудың үлкен артықшылығы - БП-ның толық «теңдігі» (олардың баланстарының мөлшеріне сәйкес). PVRB тұтастығы зиянды BPs уақыт слоттарын жоспарлауды басқара алмайтындығына кепілдік береді, сондықтан тізбектің шанышқыларын алдын ала дайындау және талдау арқылы тізбекті басқара алмайды, ал шанышқыны таңдау үшін жай ұзындығына сену жеткілікті. АҚ «пайдалылығын» және оның блоктарының «салмасын» есептеудің күрделі әдістерін қолданбай, тізбек.

Жалпы, орталықтандырылмаған желіде кездейсоқ қатысушыны таңдау қажет болатын барлық жағдайларда, мысалы, блок хэшіне негізделген детерминирленген опция емес, PVRB әрқашан дерлік ең жақсы таңдау болып табылады. PVRB болмаса, қатысушының таңдауына әсер ету мүмкіндігі шабуылдарға әкеліп соғады, онда шабуылдаушы шешімде үлкен үлесті қамтамасыз ету үшін келесі сыбайлас жемқорлыққа қатысушыны немесе бірден бірнеше фьючерстерді таңдау үшін таңдай алады. PVRB пайдалану шабуылдардың осы түрлеріне беделін түсіреді.

Масштабтау және жүктемені теңестіру

PVRB жүктемені азайту және төлемдерді масштабтау сияқты тапсырмаларда да үлкен пайда әкелуі мүмкін. Бастау үшін, танысу мағынасы бар мақалалар Rivesta «Электрондық лотерея билеттері микротөлем ретінде». Жалпы идея төлеушіден алушыға 100 1c төлем жасаудың орнына сіз 1$ = 100c ұтысы бар адал лотерея ойнай аласыз, мұнда төлеуші ​​банкке әрқайсысы үшін өзінің 1 «лотерея билеттерінің» біреуін береді. 100c төлем. Осы билеттердің біреуі $1 құмыраны ұтады және алушы блокчейнге жаза алатын билет. Ең бастысы, қалған 99 билет алушы мен төлеуші ​​арасында ешқандай сырттан қатысусыз, жеке арна арқылы және қалаған жылдамдықпен беріледі. Emercoin желісіндегі осы схемаға негізделген хаттаманың жақсы сипаттамасын оқуға болады осында.

Бұл схемада бірнеше проблемалар бар, мысалы, алушы ұтып алған билетті алғаннан кейін төлеушіге қызмет көрсетуді дереу тоқтатуы мүмкін, бірақ көптеген арнайы қолданбалар үшін, мысалы, минуттық есепшот немесе қызметтерге электрондық жазылымдар үшін оларды елемеуге болады. Негізгі талап, әрине, лотереяның әділдігі және оны жүзеге асыру үшін PVRB өте қажет.

Кездейсоқ қатысушыны таңдау, сондай-ақ әртүрлі BP-ге тек транзакциялар көлемін өңдеуге мүмкіндік беретін блок-тізбегін көлденең масштабтау болып табылатын sharding протоколдары үшін өте маңызды. Бұл өте қиын тапсырма, әсіресе сынықтарды біріктіру кезінде қауіпсіздік тұрғысынан. Консенсус алгоритмдеріндегідей белгілі бір сынық үшін жауаптыларды тағайындау мақсатында кездейсоқ BP-ны әділ таңдау да PVRB міндеті болып табылады. Орталықтандырылған жүйелерде сынықтарды теңдестіруші тағайындайды, ол жай ғана сұраудан хэшті есептеп, оны қажетті орындаушыға жібереді. Блокчейндерде бұл тапсырмаға әсер ету мүмкіндігі консенсусқа шабуылға әкелуі мүмкін. Мысалы, транзакциялардың мазмұнын шабуылдаушы басқара алады, ол қандай транзакциялардың өзі басқаратын фрагментке баратынын және ондағы блоктар тізбегін басқара алады. Сіз Ethereum-те бөлу тапсырмалары үшін кездейсоқ сандарды пайдалану мәселесін талқылауды оқи аласыз осында
Шардинг блокчейн саласындағы ең өршіл және күрделі мәселелердің бірі болып табылады; оның шешімі керемет өнімділік пен көлемді орталықтандырылмаған желілерді құруға мүмкіндік береді. PVRB оны шешудің маңызды блоктарының бірі ғана.

Ойындар, экономикалық хаттамалар, арбитраж

Ойын индустриясындағы кездейсоқ сандардың рөлін асыра бағалау қиын. Онлайн-казиноларда айқын пайдалану және ойыншы әрекетінің әсерін есептеу кезінде жасырын пайдалану - бұл орталықтандырылмаған желілер үшін өте қиын мәселелер, мұнда кездейсоқтықтың орталық көзіне сенуге мүмкіндік жоқ. Бірақ кездейсоқ таңдау көптеген экономикалық мәселелерді шеше алады және қарапайым және тиімдірек хаттамаларды құруға көмектеседі. Біздің хаттамада кейбір қымбат емес қызметтерді төлеуге қатысты даулар бар делік және бұл даулар өте сирек кездеседі. Бұл жағдайда, егер даусыз PVRB болса, тұтынушылар мен сатушылар дауларды кездейсоқ, бірақ берілген ықтималдықпен шешуге келісе алады. Мысалы, 60% ықтималдықпен клиент жеңеді, ал 40% ықтималдықпен сатушы жеңеді. Бірінші көзқарас бойынша ақылға қонымсыз болып табылатын бұл тәсіл, үшінші тараптың қатысуынсыз және қажетсіз уақытты жоғалтпай, екі тарапқа да сәйкес келетін ұтыстың/ұтылдың нақты болжамды үлесімен дауларды автоматты түрде шешуге мүмкіндік береді. Сонымен қатар, ықтималдық қатынасы динамикалық болуы мүмкін және кейбір жаһандық айнымалыларға тәуелді болады. Мысалы, егер компания жақсы жұмыс істеп тұрса, даулардың саны аз және жоғары табыстылық болса, компания дауды шешу ықтималдығын тұтынушыға бағытталғандыққа автоматты түрде ауыстыра алады, мысалы, 70/30 немесе 80/20 және керісінше, егер даулар көп ақшаны талап етсе және алаяқтық немесе жеткіліксіз болса, ықтималдықты басқа бағытқа ауыстыруға болады.

Көптеген қызықты орталықтандырылмаған хаттамалар, мысалы, маркерленген тізілімдер, болжау нарықтары, байланыстыру қисықтары және басқалары - жақсы мінез-құлық марапатталатын және жаман мінез-құлық жазаланатын экономикалық ойындар. Олар көбінесе қорғаныстары бір-бірімен қайшы келетін қауіпсіздік мәселелерін қамтиды. Миллиардтаған белгілермен («үлкен үлес») «киттердің» шабуылынан қорғалған нәрсе шағын теңгерімдері бар мыңдаған шоттардың («sybil ставкасы») шабуылдарына және бір шабуылға қарсы қабылданған шараларға осал. Үлкен үлеспен жұмыс істеуді тиімсіз ету үшін жасалған сызықтық алымдар әдетте басқа шабуылмен беделін түсіреді. Экономикалық ойын туралы айтып отырғандықтан, сәйкес статистикалық салмақтарды алдын-ала есептеуге болады, және жай ғана комиссияларды сәйкес бөлумен рандомизацияланғандармен ауыстыруға болады. Мұндай ықтималдық комиссиялар, егер блокчейнде кездейсоқлықтың сенімді көзі болса және киттердің де, сибилдердің де өмірін қиындататын күрделі есептеулерді қажет етпесе, өте қарапайым орындалады.
Сонымен қатар, бұл кездейсоқтықта бір битті бақылау алдауға, ықтималдықтарды екі есе азайтуға және арттыруға мүмкіндік беретінін есте сақтауды жалғастыру керек, сондықтан адал PVRB мұндай хаттамалардың ең маңызды құрамдас бөлігі болып табылады.

Дұрыс кездейсоқты қайдан табуға болады?

Теориялық тұрғыдан орталықтандырылмаған желілердегі әділ кездейсоқ таңдау кез келген дерлік протоколды сөз байласудан сенімді түрде қауіпсіз етеді. Негіздеме өте қарапайым – егер желі бір 0 немесе 1 бит бойынша келіссе және қатысушылардың жартысынан азы адал емес болса, онда жеткілікті итерацияларды ескере отырып, желіге белгіленген ықтималдықпен сол бит бойынша консенсусқа жетуге кепілдік беріледі. Тек адал кездейсоқ 51 қатысушының 100-ін таңдайтындықтан, уақыттың 51%. Бірақ бұл теорияда, өйткені... нақты желілерде мақалалардағыдай қауіпсіздік деңгейін қамтамасыз ету үшін хосттар арасындағы көптеген хабарламалар, күрделі көпжолды криптография қажет және хаттаманың кез келген асқынуы шабуылдың жаңа векторларын бірден қосады.
Сондықтан біз блокчейндерде дәлелденген төзімді PVRB-ді әлі көрмейміз, ол нақты қолданбалармен, бірнеше аудиттермен, жүктемелермен және, әрине, нақты шабуылдармен сынау үшін жеткілікті уақыт пайдаланылған еді, онсыз бұлай деп атауға болмайды. өнім шынымен қауіпсіз.

Дегенмен, бірнеше перспективалы тәсілдер бар, олар көптеген егжей-тегжейлерде ерекшеленеді және олардың біреуі міндетті түрде мәселені шешеді. Заманауи есептеу ресурстарымен криптографиялық теорияны практикалық қолданбаларға өте ақылды түрде аударуға болады. Болашақта біз PVRB енгізулері туралы айтуға қуанышты боламыз: қазір олардың бірнешеуі бар, әрқайсысының маңызды қасиеттері мен іске асыру мүмкіндіктерінің жиынтығы бар және әрқайсысының артында жақсы идея жатыр. Рандомизацияға қатысатын командалар көп емес және олардың әрқайсысының тәжірибесі қалғандары үшін өте маңызды. Біздің ақпаратымыз басқа командаларға алдыңғылардың тәжірибесін ескере отырып, жылдамырақ қозғалуға мүмкіндік береді деп үміттенеміз.

Ақпарат көзі: www.habr.com

пікір қалдыру