Hazardaj Nombroj kaj Malcentraj Retoj: Praktikaj Aplikoj

Enkonduko

"Hazarda nombro-generado estas tro grava por esti lasita al hazardo."
Robert Cavue, 1970

Ĉi tiu artikolo estas dediĉita al la praktika apliko de solvoj uzantaj kolektivan hazardan nombrogeneracion en nefidinda medio. Mallonge, kiel kaj kial hazarda estas uzata en blokoĉenoj, kaj iom pri kiel distingi "bonan" hazardan de "malbona". Generi vere hazardan nombron estas ekstreme malfacila problemo, eĉ sur ununura komputilo, kaj estas delonge studita de kriptografoj. Nu, en malcentralizitaj retoj, la generacio de hazardaj nombroj estas eĉ pli kompleksa kaj grava.

Estas en retoj, kie partoprenantoj ne fidas unu la alian, ke la kapablo generi nediskuteblan hazardan nombron permesas al ni efike solvi multajn kritikajn problemojn kaj signife plibonigi ekzistantajn skemojn. Krome, hazardludo kaj loterio ne estas la unua celo ĉi tie, kiel ĝi povas ŝajni komence al la nesperta leganto.

Hazarda nombrogeneracio

Komputiloj ne povas generi hazardajn nombrojn mem; ili postulas eksteran helpon por fari tion. La komputilo povas akiri iun hazardan valoron de, ekzemple, musmovoj, la kvanto de memoro uzita, devagaj fluoj sur la procesorpingloj, kaj multaj aliaj fontoj nomitaj entropiofontoj. Ĉi tiuj valoroj mem ne estas tute hazardaj, ĉar ili estas en certa gamo aŭ havas antaŭvideblan ŝablonon de ŝanĝoj. Por igi tiajn nombrojn en vere hazarda nombro ene de difinita gamo, kriptotransformoj estas aplikataj al ili por produkti unuforme distribuitajn pseŭdo-hazardajn valorojn el la malegale distribuitaj valoroj de la entropia fonto. La rezultaj valoroj estas nomitaj pseŭdohazardaj ĉar ili ne estas vere hazardaj, sed estas determinisme derivitaj de entropio. Ajna bona ĉifra algoritmo, dum ĉifrado de datumoj, produktas ĉifritajn tekstojn kiuj devus esti statistike nedistingeblaj de hazarda sekvenco, do por produkti hazardon vi povas preni fonton de entropio, kiu provizas nur bonan ripeteblon kaj neantaŭvideblecon de valoroj eĉ en malgrandaj intervaloj, la resto de la laboro disiĝas kaj miksas bitojn en La rezulta valoro transprenos la ĉifrada algoritmo.

Por kompletigi mallongan edukan programon, mi aldonos, ke generi hazardajn nombrojn eĉ sur unu aparato estas unu el la kolonoj por certigi la sekurecon de niaj datumoj.La generitaj pseŭdohazaraj nombroj estas uzataj kiam oni establas sekurajn konektojn en diversaj retoj, por generi kriptografaj ŝlosiloj, por ŝarĝoekvilibro, integrecmonitorado, kaj por multaj pliaj aplikoj. La sekureco de multaj protokoloj dependas de la kapablo generi fidindan, ekstere neantaŭvideblan hazardon, konservi ĝin kaj ne malkaŝi ĝin ĝis la sekva paŝo de la protokolo, alie sekureco estos endanĝerigita. Atako al pseŭdohazarda valorgeneratoro estas ekstreme danĝera kaj tuj minacas ĉiun programaron, kiu uzas hazardan generacion.

Vi devus scii ĉion ĉi se vi prenis bazan kurson pri kriptografio, do ni daŭrigu pri malcentralizitaj retoj.

Hazarda en blokĉenoj

Antaŭ ĉio, mi parolos pri blokĉenoj kun subteno por inteligentaj kontraktoj; ili estas tiuj, kiuj povas plene utiligi la ŝancojn provizitajn de altkvalita, nekontestebla hazardo. Plue, por koncizeco, mi nomos ĉi tiun teknologion "Publike Kontroleblaj Hazardaj Signoj” aŭ PVRB. Ĉar blokĉenoj estas retoj en kiuj informoj povas esti kontrolitaj de iu ajn partoprenanto, la ŝlosila parto de la nomo estas "Publike Kontrolebla", t.e. Iu ajn povas uzi kalkulojn por akiri pruvon, ke la rezulta nombro afiŝita sur la blokĉeno havas la jenajn ecojn:

  • La rezulto devas havi pruveble unuforman distribuon, t.e. esti bazita sur pruveble forta kriptografio.
  • Ne eblas kontroli iun ajn el la pecoj de la rezulto. Sekve, la rezulto ne povas esti antaŭvidita.
  • Vi ne povas saboti la generacian protokolon ne partoprenante en la protokolo aŭ troŝarĝante la reton per atakmesaĝoj
  • Ĉio ĉi-supra devas esti rezistema al koluzio de permesata nombro da malhonestaj protokolpartoprenantoj (ekzemple, 1/3 el la partoprenantoj).

Ĉiu ebleco de koluzia negrava grupo de partoprenantoj produkti eĉ kontrolitan paran/neparan hazardon estas sekureca truo. Ajna kapablo de la grupo ĉesigi la emision de hazarda estas sekureca truo. Ĝenerale, estas multaj problemoj, kaj ĉi tiu tasko ne estas facila...

Ŝajnas, ke la plej grava apliko por PVRB estas diversaj ludoj, loterioj kaj ĝenerale ajna tipo de hazardludo sur la blokĉeno. Efektive, ĉi tio estas grava direkto, sed hazardo en blokĉenoj havas eĉ pli gravajn aplikojn. Ni rigardu ilin.

Interkonsentaj Algoritmoj

PVRB ludas grandegan rolon en organizado de retkonsento. Transakcioj en blokĉenoj estas protektitaj per elektronika subskribo, do "atako al transakcio" ĉiam estas inkludo/ekskludo de transakcio en bloko (aŭ pluraj blokoj). Kaj la ĉefa tasko de la konsenta algoritmo estas konsenti pri la ordo de ĉi tiuj transakcioj kaj la ordo de la blokoj, kiuj inkluzivas ĉi tiujn transakciojn. Ankaŭ necesa posedaĵo por realaj blokĉenoj estas fineco - la kapablo de la reto konsenti, ke la ĉeno ĝis la finpretigita bloko estas fina, kaj neniam estos ekskludita pro la apero de nova forko. Kutime, por konsenti, ke bloko validas kaj, plej grave, fina, necesas kolekti subskribojn de la plimulto de blokproduktantoj (ĉi-poste nomataj BP - blok-produktantoj), kio postulas almenaŭ liveri la blokĉenon. al ĉiuj BPoj, kaj distribuante subskribojn inter ĉiuj BPoj. Ĉar la nombro da BPoj kreskas, la nombro da necesaj mesaĝoj en la reto kreskas eksponente, tial, konsentaj algoritmoj kiuj postulas finecon, uzitaj ekzemple en la Hyperledger-pBFT-konsento, ne funkcias je la bezonata rapideco, komencante de kelkaj dekduoj de BP-oj, postulante. grandega nombro da konektoj.

Se estas nekontestebla kaj honesta PVRB en la reto, tiam, eĉ en la plej simpla aproksimado, oni povas elekti unu el la blokproduktantoj bazitaj sur ĝi kaj nomumi lin kiel la "gvidanto" dum unu rondo de la protokolo. Se ni havas N blokproduktantoj, el kiuj M: M > 1/2 N estas honestaj, ne cenzuras transakciojn kaj ne forkiras la ĉenon por efektivigi "duoblan elspezadon" atakon, tiam uzi unuforme distribuitan senkontestan PVRB permesos elekti honestan gvidanton kun verŝajneco. M / N (M / N > 1/2). Se ĉiu gvidanto ricevas sian propran tempintervalon dum kiu li povas produkti blokon kaj validigi la ĉenon, kaj tiuj intervaloj estas egalaj en tempo, tiam la blokĉeno de honestaj BP-oj estos pli longa ol la ĉeno formita de malica BP-oj, kaj la konsento. algoritmo dependas de la longo de la ĉeno. simple forĵetos la "malbonan". Ĉi tiu principo de asignado de egalaj tranĉaĵoj de tempo al ĉiu BP unue estis aplikita en Graphene (la antaŭulo de EOS), kaj permesas al la plej multaj blokoj esti fermitaj per ununura subskribo, kiu multe reduktas la retan ŝarĝon kaj permesas al ĉi tiu konsento funkcii ekstreme rapide kaj konstante. Tamen, la EOS-reto nun devas uzi specialajn blokojn (Lasta Nereversigebla Bloko), kiuj estas konfirmitaj per la subskriboj de 2/3 BP. Tiuj blokoj servas por certigi finecon (la malebleco de ĉenforko komenciĝanta antaŭ la lasta Lasta Nemaligebla Bloko).

Ankaŭ, en realaj efektivigoj, la protokola skemo estas pli komplika - voĉdonado por proponitaj blokoj okazas en pluraj stadioj por konservi la reton en kazo de mankantaj blokoj kaj problemoj kun la reto, sed eĉ konsiderante tion, konsentaj algoritmoj uzantaj PVRB postulas. signife malpli da mesaĝoj inter BP-oj, kio ebligas fari ilin pli rapide ol tradicia PVFT, aŭ ĝiaj diversaj modifoj.

La plej elstara reprezentanto de tiaj algoritmoj: Ouroboros de la Cardano-teamo, kiu laŭdire estas matematike pruvebla kontraŭ BP-koludo.

En Ouroboros, PVRB estas uzata por difini la tiel nomatan "BP ​​horaro" - horaro laŭ kiu ĉiu BP ricevas sian propran tempoperiodon por eldoni blokon. La granda avantaĝo uzi PVRB estas la kompleta "egaleco" de BP-oj (laŭ la grandeco de iliaj bilancoj). La integreco de la PVRB certigas, ke malicaj BP-oj ne povas kontroli la planadon de temponiĉoj, kaj tial ne povas manipuli la ĉenon preparante kaj analizante forkojn de la ĉeno anticipe, kaj por elekti forkon sufiĉas simple fidi la longon de la ĉeno. ĉeno, sen uzi malfacilajn manierojn kalkuli la "utilon" de BP kaj "pezon" de ĝiaj blokoj.

Ĝenerale, en ĉiuj kazoj, kie hazarda partoprenanto devas esti elektita en malcentralizita reto, PVRB preskaŭ ĉiam estas la plej bona elekto, prefere ol determinisma opcio bazita sur, ekzemple, blokhash. Sen PVRB, la kapablo influi la elekton de partoprenanto kondukas al atakoj en kiuj la atakanto povas elekti de multoblaj estontecoj por elekti la venontan koruptan partoprenanton aŭ plurajn samtempe por certigi pli grandan parton en la decido. La uzo de PVRB misfamigas ĉi tiujn specojn de atakoj.

Skalado kaj ŝarĝobalancado

PVRB ankaŭ povas esti de granda utilo en taskoj kiel ekzemple ŝarĝoredukto kaj pagoskalado. Komence, estas senco konatiĝi kun vi artikoloj Rivesta "Elektronikaj Loteriaj Biletoj kiel Mikropagoj". La ĝenerala ideo estas, ke anstataŭ fari 100 1c-pagojn de la paganto al la ricevanto, vi povas ludi honestan loterion kun premio de 1$ = 100c, kie la paganto donas al la banko unu el 1 el siaj "loterioj" por ĉiu. 100c pago. Unu el ĉi tiuj biletoj gajnas kruĉon de $1, kaj estas ĉi tiu bileto, kiun la ricevanto povas registri en la blokĉeno. La plej grava afero estas, ke la ceteraj 99 biletoj estas transdonitaj inter la ricevanto kaj la paganto sen ia ekstera partopreno, per privata kanalo kaj kun ajna dezirata rapideco. Bona priskribo de la protokolo bazita sur ĉi tiu skemo sur la Emercoin-reto legeblas tie.

Ĉi tiu skemo havas kelkajn problemojn, kiel ekzemple la ricevanto povas ĉesi servi la paganton tuj post ricevo de gajna bileto, sed por multaj specialaj aplikoj, kiel ekzemple pominuta fakturado aŭ elektronikaj abonoj al servoj, ĉi tiuj povas esti neglektitaj. La ĉefa postulo, kompreneble, estas la integreco de la loterio, kaj por ĝia efektivigo PVRB estas nepre necesa.

La elekto de hazarda partoprenanto ankaŭ estas ekstreme grava por sharding-protokoloj, kies celo estas horizontale grimpi la blokĉenon, permesante al malsamaj BP-oj prilabori nur sian amplekson de transakcioj. Ĉi tio estas ege malfacila tasko, precipe pri sekureco dum kunfandado de fragmentoj. Justa elekto de hazarda BP por la celo atribui tiujn respondecajn por specifa peceto, kiel en konsentaj algoritmoj, ankaŭ estas la tasko de la PVRB. En centralizitaj sistemoj, pecetoj estas asignitaj fare de ekvilibristo; ĝi simple kalkulas la haŝiŝon de la peto kaj sendas ĝin al la postulata ekzekutisto. En blokĉenoj, la kapablo influi ĉi tiun taskon povas konduki al atako kontraŭ konsento. Ekzemple, la enhavo de transakcioj povas esti kontrolita de atakanto, li povas kontroli kiuj transakcioj iras al la breĉeto kiun li kontrolas kaj manipuli la ĉenon de blokoj en ĝi. Vi povas legi diskuton pri la problemo uzi hazardajn nombrojn por sharding taskoj en Ethereum tie
Sharding estas unu el la plej ambiciaj kaj gravaj problemoj en la kampo de blokĉeno; ĝia solvo permesos konstrui malcentralizitajn retojn de mirinda rendimento kaj volumeno. PVRB estas nur unu el la gravaj blokoj por solvi ĝin.

Ludoj, ekonomiaj protokoloj, arbitracio

La rolo de hazardaj nombroj en la videoludadindustrio estas malfacile supertaksi. Eksplicita uzo en interretaj kazinoj, kaj implica uzo dum kalkulado de la efikoj de agado de ludanto estas ĉiuj ekstreme malfacilaj problemoj por malcentralizitaj retoj, kie ne ekzistas maniero fidi je centra fonto de hazardo. Sed hazarda elekto ankaŭ povas solvi multajn ekonomiajn problemojn kaj helpi konstrui pli simplajn kaj pli efikajn protokolojn. Supozu en nia protokolo ekzistas disputoj pri pago por iuj malmultekostaj servoj, kaj ĉi tiuj disputoj okazas sufiĉe malofte. En ĉi tiu kazo, se ekzistas nediskutebla PVRB, klientoj kaj vendistoj povas konsenti solvi disputojn hazarde, sed kun donita probablo. Ekzemple, kun 60% probableco la kliento gajnas, kaj kun 40% probableco la vendisto gajnas. Ĉi tiu aliro, kiu estas absurda el la unua vidpunkto, permesas vin aŭtomate solvi disputojn kun precize antaŭvidebla parto de venkoj/perdoj, kiu konvenas al ambaŭ partioj sen ia partopreno de tria partio kaj nenecesa malŝparo de tempo. Krome, la probabloproporcio povas esti dinamika kaj dependi de kelkaj tutmondaj variabloj. Ekzemple, se firmao fartas bone, havas malaltan nombron da disputoj kaj altan profiton, la firmao povas aŭtomate ŝanĝi la probablecon de solvado de disputo al klientcentreco, ekzemple 70/30 aŭ 80/20, kaj inverse, se disputoj prenas multan monon kaj estas fraŭdaj aŭ neadekvataj, vi povas ŝanĝi la probablecon en la alia direkto.

Granda nombro da interesaj malcentralizitaj protokoloj, kiel ekzemple ĵetonaj curataj registroj, antaŭdiraj merkatoj, ligaj kurboj kaj multaj aliaj, estas ekonomiaj ludoj en kiuj bona konduto estas rekompencita kaj malbona konduto estas punita. Ili ofte enhavas sekurecproblemojn por kiuj protektoj konfliktas inter si. Kio estas protektita kontraŭ atako de "balenoj" kun miliardoj da ĵetonoj ("granda intereso") estas vundebla al atakoj de miloj da kontoj kun malgrandaj saldoj ("sybil-intereso"), kaj mezuroj prenitaj kontraŭ ununura atako, kiel ne- liniaj kotizoj kreitaj por fari laboradon kun granda intereso neprofita estas kutime misfamigitaj per alia atako. Ĉar ni parolas pri ekonomia ludo, la respondaj statistikaj pezoj povas esti kalkulitaj anticipe, kaj simple anstataŭigi la komisionojn per hazardaj kun la taŭga distribuo. Tiaj probablaj komisionoj estas efektivigitaj ekstreme simple se la blokĉeno havas fidindan fonton de hazardo kaj ne postulas iujn ajn kompleksajn kalkulojn, malfaciligante la vivon por ambaŭ balenoj kaj sibiloj.
Samtempe, necesas daŭre memori, ke kontrolo de unu bito en ĉi tiu hazardo permesas vin trompi, reduktante kaj pliigante la probablojn je duono, do honesta PVRB estas la plej grava ero de tiaj protokoloj.

Kie trovi la ĝustan hazardan?

En teorio, justa hazarda elekto en malcentralizitaj retoj faras preskaŭ ajnan protokolon pruveble sekura kontraŭ koluzioj. La raciaĵo estas sufiĉe simpla - se la reto konsentas pri ununura 0 aŭ 1 bito, kaj malpli ol duono de la partoprenantoj estas malhonestaj, tiam, donita sufiĉe da ripetoj, la reto estas garantiita atingi konsenton pri tiu bito kun fiksa probablo. Simple ĉar honesta hazardo elektos 51 el 100 partoprenantoj 51% de la tempo. Sed ĉi tio estas en teorio, ĉar... en realaj retoj, por certigi tian nivelon de sekureco kiel en la artikoloj, multaj mesaĝoj inter gastigantoj, kompleksa plurpasa kriptografio estas postulata, kaj ajna komplikaĵo de la protokolo tuj aldonas novajn atakvektorojn.
Tial ni ankoraŭ ne vidas pruvitan rezisteman PVRB en blokĉenoj, kiu estus estinta uzita dum sufiĉe da tempo por esti provita per realaj aplikoj, multoblaj auditoroj, ŝarĝoj, kaj kompreneble, realaj atakoj, sen kiuj estas malfacile nomi. produkto vere sekura.

Tamen, ekzistas pluraj promesplenaj aliroj, ili diferencas en multaj detaloj, kaj unu el ili certe solvos la problemon. Kun modernaj komputikresursoj, kriptografia teorio povas esti sufiĉe lerte tradukita en praktikajn aplikojn. En la estonteco, ni volonte parolos pri PVRB-efektivigoj: nun estas pluraj da ili, ĉiu havas sian propran aron de gravaj trajtoj kaj efektivigaj funkcioj, kaj malantaŭ ĉiu estas bona ideo. Ne estas multaj teamoj implikitaj en hazardigo, kaj la sperto de ĉiu el ili estas ege grava por ĉiuj aliaj. Ni esperas, ke niaj informoj permesos al aliaj teamoj moviĝi pli rapide, konsiderante la sperton de siaj antaŭuloj.

fonto: www.habr.com

Aldoni komenton