Licetne temere numeros generare, si se non habemus? Pars I

Heus Habr!

In hoc articulo dicam de generatione pseudo-passimorum numerorum a participibus qui sibi invicem non confidunt. Ut infra videbimus, generans bonum exsequens "paene" est omnino simplex, sed valde bonum difficile.

Cur necesse esset temere numeros generare in participibus qui se invicem non confidunt? Una applicatio regio applicationes decentralized est. Exempli gratia, applicatio quae bet a participe accipit et aut quantitatem 49% probabilitatis duplicat aut cum probabilitate 51% aufert, tantum laborabit si temere numerum recipere potest. Si invasoris eventus incerti numeri generantis commovere potest, et etiam leviter auget occasionem recipiendi exsolvendi in applicatione, facile devastabit.

Cum designatum numerum temere generationis protocollo designamus, tres proprietates habere volumus;

  1. Ut sit amet libero. Aliis verbis, nullus particeps aliquo modo debet movere effectum numeri generantis temere.

  2. vagus esse debet. Aliis verbis, nullus particeps praedicere poterit quod numerus generabitur (vel aliquem ex suis proprietatibus) antequam generetur.

  3. Protocollum viable esse debet, id est, repugnans eo quod quaedam recipis participes a retis disiungunt vel consulto protocollo prohibere conantur.

In hoc articulo duos aditus videbimus: RANDAO + VDF ac lituras accedunt. In altera parte, accessum liminum subscriptionibus subnixum singillatim examinabimus.

Sed primum inspiciamus algorithmum simplicem et communem usum viable, inaestimabilem, sed biformem.

RANDAO

RANDAO est simplicissima et ideo satis communiter aditus ad fortuiti generandi usum. Omnes retiaculi participes primum locum pseudorandom numerum eligunt, deinde quilibet particeps numerum delectorum Nullam mittit. Deinde participes vices suas numeros electos aperientes et operationem XOR in numeris revelatis exercent, et effectus huius operationis fit effectus protocolli.

Gradus edendi hashes ante numeros indicandos necessarius est ut oppugnator numerum suum eligere non possit postquam numeros aliorum participantium viderit. Hoc permitteret ut paene singulariter permitteret outputatio numeri incerti generantis.

Per decursum protocolli, participes ad communem decisionem (consensionem sic dictam) bis accedere debent: quando incipimus numeros delectos revelare, ideoque prohibere hashes accipere, et cum desinere numeros delectos recipere et inde temere computare. numerum. Tales decisiones inter participantes qui se invicem non confidunt facile non est opus per se, et ad id in futuris articulis reddemus, in hoc articulo ponemus talem consensum algorithmum nobis praesto esse.

Quod proprietatibus supra descripsimus RANDAO habet? Inaestimabile est, eandem vim habet ac protocollum consensus subiecta, sed in promptu est. Speciatim oppugnator retiaculum observare potest, et postquam alii participes eorum numeros demonstrant, computare eorum XOR, et utrum numerum suum ad exitum movendum patefaciat necne. Dum hoc impedit oppugnatorem ab uno-handedly determinatio output de numero incerti generantis, adhuc dat ei aliquid auctoritatis. Et si oppugnatores plures participantium regunt, tum numerus frenorum quem regunt, aequabitur numero participantium in sua potestate.

Licetne temere numeros generare, si se non habemus? Pars I

Influentia oppugnantium multum minui potest postulantes ut participes numeros ordine patefaciant. Tunc percussor influere poterit, si modo aperitur novissimus exitus. Dum influentia minus significanter est, algorithmus adhuc luceat.

RANDAO+VDF

Uno modo ut RANDAO equa sit haec: postquam omnes numeri deteguntur et XOR computantur, effectus eius in inputatione functionis pascitur, quod diutissime computare permittit, sed rectitudinem reprimendam permittit. calculum celerrime.

(vdf_output, vdf_proof) = VDF_compute(input) // это очень медленно
correct = VDF_verify(input, vdf_output, vdf_proof) // это очень быстро

Hoc munus dicitur Verifiabilis Mora Function, seu VDF. Si calculi finis effectus plus quam numerus proditionis stadium capiat, oppugnator non poterit praedicere effectum numerum ostendendi vel occultandi, et ideo occasionem amittet ad effectum deducendi.

VDFs explicans bonum difficillimum est. Fuerunt plures breakthroughs nuper, exempli causa haec и hoc, quae VDF in praxi utilius fecit, et Ethereum 2.0 consiliis utendi RANDAO cum VDF ut incerti numeri principium in longo termino. Praeterquam quod hic accessus inaestimabilis et incorruptibilis est, additam utilitatem viable habet si duo saltem participes in retiaculis praesto sunt (siquidem consensus protocolli usus est viabilis cum tam paucitate participantium tractans).

Maxima provocatio accessus VDF ita instituitur ut etiam participem cum hardware specialibus valde pretiosis VDF ante finem inventionis phase computare non possit. Specimen algorithmus vel marginem notabilem habere debet, dic 10x. Figura infra ostendit impetum ab actore qui specialem ASIC habet qui eum citius currere patitur quam tempus ad confirmationem RANDAO revelandam. Talis particeps adhuc computare potest finalem exitum utens vel non utens suo numero, ac deinde ex calculis elige utrum ostendat necne.

Licetne temere numeros generare, si se non habemus? Pars I

Ad VDF familia supra memorata, dedicatae ASIC observantia 100+ pluries esse potest quam ferramentis conventionalibus. Si igitur periodus revelationis 10 secundis durat, tunc VDF in tali ASIC computato plus quam 100 seconds ad 10x salutem marginem habere debet, ideoque idem VDF in mercimonia commoditatis computatum sumere debet 100x 100 secundis = ~3 horis.

Fundamentum Ethereum cogitat hanc quaestionem solvere, sua sponte creando praesto, gratis ASICs. Cum hoc incidit, omnia alia protocolla uti etiam possunt huius technologiae, sed usque tunc RANDAO+VDF accessus non erit viabilis pro protocollis quae in propriis ASICs explicandis collocare non possunt.

Multi articuli, videos et alia informationes de VDF collecta sunt hoc situ.

Utimur litura codes

In hac sectione, numerum temere generationis protocollo qui usus spectabimus delens codes. Potest tolerare usque ad oppugnatores manens viable, et permittit usque ad oppugnatores existere antequam praedicere vel influere eventum possunt.

Praecipua notio protocolli talis est. Simplicitas enim sumamus 100 participes esse prorsus. Ponamus etiam omnes participes localiter aliquam habere clavem privatam, et claves publicas omnium participantium omnibus participantibus notum esse;

  1. Quilibet particeps localiter subit cum chorda longa, eam in partes 67 frangit, codices lituras efficit ut 100 portiones obtineat, ita ut quaevis 67 ad chordam recipienda sufficiat, singulas 100 partes uni participantium attribuat et eas encryptas. eiusdem publici clavem particeps est. Omnes partes descriptae tunc publici iuris factae sunt.

  2. Participes quodam consensu utuntur ut ad consensum obtinendum a certis 67 participantibus constituantur coded.

  3. Postquam consensus advenit, quisque particeps encoded communicat in singulis 67 cryptas cum clavibus publicis, decryptas omnes participat, et omnes partes decryptas publicat.

  4. Cum 67 participia gradum expleverunt (3), omnes compositi compositi perfecte decoqui et restitui possunt propter proprietates lituras codicis, et ultimus numerus obtineri potest ut XOR ordinum initialium, quos participes in principio inceperunt (1). .

Licetne temere numeros generare, si se non habemus? Pars I

Hoc protocollum ostendi potest esse pensatum et inaestimabile. Numerus temere consequens postquam consensus perventum est determinatur, sed nulli notum est donec ⅔ participantium decode partes encryptas cum clavi publico suo. Ita numerus temere determinatus est antequam informationes sufficientes ad editorum reficiendas in lucem edantur.

Quid accidit, si gradatim (1) unus e participibus missum aliis participibus encoded communicat qui non sunt rectae rasurae codicis ad aliquod chordae? Sine additis mutationibus, participantes diversi vel chordam omnino recuperare non poterunt, vel chordas diversas recuperabunt, quae in diversis participantibus diverso numero incertis recipientibus evenient. Quod ut ne fiat, hoc facere potes: unumquemque participem, praeter commodatum portionum, etiam reputet Merkla arbor omnes partes eius, et quemque participem et encoded et radicem mercis participem mittit, et probationem inclusio in ligno mercati communicat. In consensu in gradu (2), participantes tunc non solum conveniunt in statuto statuto, sed in statuto certarum arborum talium radices (si aliquis particeps a protocollo deviavit et diversas radices merlos arboris ad diversos participantes miserunt; et duae tales radices in consensu ostenduntur, cuius ordo in consequenti statuto non ponitur). Propter consensum, 67 lineas encoded habebimus et radices respondentes mercis arboris, ita ut saltem 67 participes sint (non necessario iidem qui lineas respondentes proposuerint), qui pro singulis 67 lineis habent. nuntius cum parte rasurae codici, et argumentum eventum eorum participes in arbore correspondente defluxit.

Cum in gradu (4) participem deciphers 67 chorda certa verberat et chordam originalem ab eis instaurare conatur, una optionum fieri potest;

  1. Reparatur chorda, et si rursus litura encodedatur, et Merkle arbor pro portionibus localiter computatur, radix cum eo in quo consensus perventum est coincidit.

  2. Reparatur ordo, sed radix localis calculata non congruit unum ad quem consensus perventum est.

  3. Versu non restituitur.

Facile est ostendere quod si optio (1) facta sit pro uno saltem supra participe, tunc optio (1) evenit omnibus participantibus, et vice versa, si optio (2) vel (3) evenerit pro uno saltem participe, tunc nam omnium participantium optio (2) or (3) erit. Ita pro singulis ordinibus instituto, aut omnes participes bene recuperabunt, aut omnes participes recuperabunt. Consequens numerus temere est tum XOR tantum ordinum qui participes recuperare poterant.

Limen subscriptionibus

Alius accessus ad fortuiti limen adhibendus est quae vocantur signaturae BLS. Numerus temere generans in limen subscriptionibus nititur, easdem prorsus cautiones habet ac in algorithmo rasura codici descriptos habet, sed signanter numerum asymptoticum inferiorum nuntiorum super retiaculis singulis gene- ratis missis habet.

BLS subscriptiones consilium sunt quae plures participes admittit ut unum commune nuntium efficiat. Subscriptiones hae saepe ad spatium servandum et in latitudine adhibita non multis subscriptionibus emittendis postulantes. 

Communis applicatio pro subscriptionibus BLS in protocolla clausurae, praeter numeros incertis generandis, obstruitur signatio in protocollis BFT. Dicamus 100 participes caudices creare, et truncus finalis habetur si 67 earum subscribit. Omnes possunt suas partes subscriptionis BLS submittere et uti algorithmo aliquo consensu ad 67 illorum consentire ac deinde eas in unam BLS subscriptionem miscere. Quaelibet 67 (vel plures) partes adhiberi possunt ad ultimam subscriptionem creandam, quae pendent a qua 67 subscriptiones coniunctae sunt et ideo variari possunt, licet electiones diversae a 67 participibus diversam subscriptionem creabunt, quaevis talis subscriptio valida erit. obstructionum signature ad. Ceteri participes tunc solum necesse habent unam tantum subscriptionem recipere et cognoscere per scandalum, pro 67, super retiaculum, quod significanter onus in retiaculis minuitur.

Evenit ut, si claves privatae participantium usum aliquo modo generantur, quaecumque 67 signatura (vel plures, sed non minus) aggregata sunt, eadem erit subscriptio consequens. Hoc adhiberi potest ut fons fortuiti: participantes primo conveniunt in aliquo nuntio quod signabunt (hoc potest esse output of RANDAO vel sicut Nullam ultimi scandali, non vere refert dum mutatur omni tempore. et stat) et efficiunt BLS subscriptionem pro eo. Effectus generationis inaestimabilis erit donec 67 participes suas partes praebeant, et post quod iam praefinitum est et in actibus cuiuslibet participantis dependere non potest.

Hic accessus ad fortuiti viable est, dum saltem participantium online utrumque protocollum sequatur, et praeoccupatus est et inaestimabilis, dum saltem participium protocollum sequatur. Gravis est notare quod oppugnator qui plus quam ⅓ dominatur, sed minus quam participium protocollum prohibere potest, sed non potest praedicere vel influere eius output.

Limen subscriptionum ipsae res sunt valde interesting. In secunda parte articuli, singillatim exponemus quomodo operantur, et quam exacte necesse est claves participantium generare ut subscriptiones limina ut temere numerus generantis adhiberi possint.

Ad summam:

Hic articulus est primus in serie technicarum blog articulorum PROPE. PROPE est impedimentum protocollum et suggestum ad applicationes decentras enucleandas cum emphasi facilitatis evolutionis et commoditatis usuum pro fine utentium.

Codicis protocollum apertum est, nostra exsecutio in Rubigo scripta est, reperiri potest hic.

Videre potes quid evolutionis causa prope similis et experimentum in IDE in online hic.

Potes sequi omnia quae in Russian at coetus telegraphum quod coetus in VKontakteet Anglice in officiali Twitter.

Vide te mox!

Source: www.habr.com

Add a comment