Tortue
14 November 2016 16:09
13
Personnellement, jâapprĂ©cie le fait que lâon ne soit pas obligĂ© dâavoir une machine de guerre pour miner des block.
jâapprĂ©cie Ă©galement que ce soit le plus Ă©quitable possible entre les membres.
Maintenant je comprends quâavoir des noeuds exclus du calcul de la POW peut poser des problĂšmes en cas de fork, ou lâune des branches est dans lâimpossibilitĂ© de miner dâautre block car la plupart des nĆuds sont exclus.
Mais ce problĂšme sera-t-il toujours prĂ©sent quand plus de nĆuds seront dans le rĂ©seau?
Autre sujet (mais lié):
Pour moi il faut garder en tĂȘte lâimpossibilitĂ© de calculer plus de 5 blocs consĂ©cutifs par un mĂȘme membre.
Mais que ce passe-t-il si plusieurs membres (qui nâont que la POW min car jamais miner de block ) se mettent dâaccord pour calculer (par un super calculateur) des blocs consĂ©cutifs afin de supprimer un prĂ©cĂ©dent transfert de la chaine?
cgeek
14 November 2016 16:22
14
se mettent dâaccord pour calculer (par un super calculateur) des blocs consĂ©cutifs afin de supprimer un prĂ©cĂ©dent transfert de la chaine?
Pour cela, ils doivent donner leur clĂ© privĂ©e au super calculateur. Ce qui fait quâils prennent le risque de perdre le contrĂŽle total sur leur identitĂ©, leur compte en monnaie, et la production du DU.
Nul doute que cela se produira ne serait-ce que par extorsion du trousseau (via piratage par ex.), ce qui donne beaucoup de pouvoir Ă ce calculateur, câest vrai. Mais ce potentiel de calcul est Ă mettre en balance avec la puissance totale du rĂ©seau, et donc plus y a de nĆuds, plus ce pouvoir est diluĂ©.
Maintenant, câest aussi pour ce problĂšme de âpartageâ de clĂ© Ă un super calculateur que jâavais mis en place le mĂ©canisme de rotation initial, jusquâĂ DUP 0.4. Si lâon constate quâil valait mieux le reprendre, on pourra toujours le faire. Mais plus ça traĂźne, plus ce sera difficile !
Inso
14 November 2016 16:26
15
Si lâon constate quâil valait mieux le reprendre, on pourra toujours le faire. Mais plus ça traĂźne, plus ce sera difficile !
Je pense quâexclure jusquâĂ 1/3 du rĂ©seau est raisonnable. En gĂ©nĂ©ral, dans les systĂšmes en haute-dispo, on considĂšre que le quorum votant peut fonctionner tant quâil reste 2/3 des nodes up. Donc ça me parait ĂȘtre correct. En dessous, on prend le risque que le quorum se bloque ou se split.
Tortue
14 November 2016 17:03
16
Mais ce potentiel de calcul est Ă mettre en balance avec la puissance totale du rĂ©seau, et donc plus y a de nĆuds, plus ce pouvoir est diluĂ©.
avec une complexitĂ© personnalisĂ©e, ce nâest (presque) plus la âpuissance totale du rĂ©seauâ, mais bien le ânombre total de noeudsâ qui permet de diluĂ© ce pouvoir.
câest aussi pour ce problĂšme de âpartageâ de clĂ© Ă un super calculateur que jâavais mis en place le mĂ©canisme de rotation initial, jusquâĂ DUP 0.4.
Quâentends-tu par âle mĂ©canisme de rotation initialâ?
le faite quâun membre est vite exclu dĂšs quâil a minĂ© un bloc ?
Si câest le cas, câest ce que jâĂ©tais en train de dĂ©crire prĂ©cĂ©demment:
Rien nâempĂȘche Ă un super calculateur de miner dans son coin un premier bloc avec la clef privĂ©e dâun premier membre piratĂ©, puis un 2eme bloc avec la clef dâun autre membre piratĂ©, et ainsi de suite. Afin de garder une complexitĂ© de calcul la plus faible possible. Puis de publier la nouvelle chaine dâun coup.
cgeek
14 November 2016 17:07
17
Quâentends-tu par âle mĂ©canisme de rotation initialâ?
le faite quâun membre est vite exclu dĂšs quâil a minĂ© un bloc ?
Oui, mais exclu immédiatement, en fait.
Si câest le cas, câest ce que jâĂ©tais en train de dĂ©crire prĂ©cĂ©demment:
Oui mais cette exclusion continue tant quâ1/3 de tous les membres calculant nâont pas Ă©crit eux-mĂȘme un bloc. Donc sauf Ă avoir 1/3 des clĂ©s des membres calculant, la nuisance du super calculateur nâest que partielle.
Tortue
14 November 2016 17:10
18
Oui mais cette exclusion continue tant quâ1/3 de tous les membres calculant nâont pas Ă©crit eux-mĂȘme un bloc.
Ha bien vu
il me manquait cette info
Alors je vote haut la main pour la version 0.4 !
Inso
14 November 2016 17:17
19
Alors je vote haut la main pour la version 0.4 !
Dans la version 0.4, quelquâun qui a calculĂ© est exclu jusquâĂ ce quâ1/3 des membres ait calculĂ© un bloc ? Ca me parait Ă©normeâŠ
Moul
14 November 2016 18:26
20
Une des raisons pour laquelle on est partie vers DUP 0.5 Ă©tĂ© le fait que dans le cas du rĂ©seau actuel de Test-net, avec une vingtaine de nĆud membres, en cas de deux fork symĂ©triques, les deux fork Ă©taient bloquĂ©s Ă©tant donnĂ© quâil arrivait quâun nĆud se retrouve tous seul a faire avancer la branche.
Ce 2/3 dâexclus nâĂ©tait pas adaptĂ© aux forks avec cette taille de rĂ©seau monĂ©taire.
Lors dâun fork, 2/3 de la branche principale se transforme en 2/3 sur chaque branche.
identitĂ©s exclus / nombre dâidentitĂ©s qui calculent.
Sur une branche, le nombre dâidentitĂ©s exclus ne change pas mais le nombre dâidentitĂ©s qui calculent est celui du nombre total des deux branches.
cgeek:
Alors, comme ça, on se dit âchouette, ça roxxe, câest plus Ă©quitableâ. Oui, mais ce nâest pas sans consĂ©quence : on en revient plus ou moins Ă la situation DUP 0.4, oĂč une partie des calculateurs est purement et simplement exclue du calcul au bout de quelques blocs Ă©mis au-dessus de la mĂ©diane. Ce nâĂ©tait pas le but recherchĂ© avec la 0.5.
Finalement, je commence Ă ĂȘtre convaincu que ça nâest pas possible quâil y ait une Ă©quitĂ© entre des identitĂ©s ayant un gros CPU et dâautres ayant un faible CPU. En mĂȘme temps ça serait dommage pour ceux qui mettent a disposition une forte puissance de calcul de se retrouver Ă calculer le mĂȘme nombre de nĆuds que les autres.
Je pense pas quâon revient Ă 0.4, car la fenĂȘtre sâadapte mieux en cas de fork ? Pas sĂ»r au final. Je vois pas comment gĂ©rer ce cas.
Dans le cas de 0.5, la fenĂȘtre est plus grande et exclus plus difficilement en cas de fork. Avec cette proposition de 0.6, ça risque, en effet, de ressembler Ă 0.4.
Au final avec 0.5, la difficulté du réseau a beaucoup augmentée.
(DĂ©solĂ©, ce que jâai Ă©crit est trĂšs brouillon. Mais les idĂ©s sont lĂ ! )
Inso
14 November 2016 18:28
21
Est-il possible de nâexclure quâ1/3 des noeuds tout en amĂ©liorant la distribution des blocs ? (cf mon commentaire plus haut, dans les rĂ©seaux distribuĂ©s, il faut tenter dâavoir toujours 2/3 du rĂ©seau qui peut travaillerâŠ)
cgeek
14 November 2016 18:32
22
edit : ma rĂ©ponse Ă©tait pour @inso , mais avec le dĂ©placement de sujet, ça indique que câest pour Moul.
1/3 des membres qui calculent , câest-Ă -dire ceux qui ont Ă©mis un bloc dans la fenĂȘtre courante.
Ăa paraĂźt beaucoup, mais ça veut aussi dire que les 2/3 restant calculent en permanence. A quelques variations prĂȘt bien sĂ»r, il y en a qui arrĂȘtent et dâautres qui se mettent Ă participer.
Mais pour résumer, on a 2 visions :
une qui consiste Ă dire que nâimporte quel participant devrait avoir la capacitĂ© de poursuivre la blockchain tout seul sâil le souhaite (1)
une qui consiste Ă dire que ce bien est commun et quâon ne peut pas en prendre le contrĂŽle soi-mĂȘme, mais que des semblables sont nĂ©cessaire Ă la poursuite de lâaventure (2)
A noter que 1) est en réalité toujours possible, on peut forker la blockchain quand on veut par exemple pour changer la difficulté et faire passer une blockchain du mode 2) vers 1).
JâĂ©tais parti pour 2) jusquâĂ la 0.4, jâai voulu tenter 1) depuis la 0.5.
edit 2 : mais en effet, le problĂšme majeur que lâon avait câĂ©tait les forks, mais ces forks ont aussi leurs raisons : notamment parce que je propageais la nouvelle version du protocole de façon instantanĂ©e et non coordonnĂ©e, contrairement Ă la 0.5 qui a Ă©tĂ© planifiĂ©e , oĂč il nây a eu aucun fork majeur.
Si lâon sait Ă©viter les forks majeurs, alors il nây a pas vraiment de problĂšme Ă avoir un algo Ă la 0.4.
2 Likes
Tortue
14 November 2016 22:14
23
en fait je ne comprends pas
Pour moi cela ne corrige pas le problĂšme, imaginons un vol de 6 identitĂ©s membres (clef privĂ©e/publique) qui nâont jamais minĂ©e (=> pow min et non exclu) il est alors possible de miner 6 blocs consĂ©cutifs grĂące Ă chacune de ces 6 identitĂ©s.
Avec le system de POW personnalisé (ou exclue) cela réduit drastiquement la complexité moyenne de la blockchain et permet de créer une nouvelle version de la blockchain bien plus facilement.
plus jây rĂ©flĂ©chis, plus jâai peur de la POW personnalisĂ©.
cgeek
15 November 2016 08:12
24
Oui, mais ça ne dure que 6 blocs. Sur 200 nĆuds calculant, câest 3% du temps quâils peuvent monopoliser. Et encore, cela suppose que le super calculateur soit largement plus puissant que les 194 nĆuds restants, cela a un coĂ»t non nĂ©gligeable pour une gĂȘne assez infime, tout en sachant que la fonction de hashage reste alĂ©atoire.
Par ailleurs, rien ne nous empĂȘche, nous non plus, de calculer des blocs vides ou des blocs qui ne contiennent que des donnĂ©es qui nous intĂ©ressent personnellement. Nous avons alors un comportement similaire au super calculateur, sans avoir sa capacitĂ© de calcul. Si tout le monde agit en ce sens, la monnaie fonctionnera tout aussi mal, voire trĂšs mal.
Au final donc, ce nâest pas tant le super calculateur le problĂšme (sauf en 0.5, lĂ oui câen est un) que la volontĂ© des membres de sĂ©curiser sa monnaie en dĂ©multipliant le nombre de nĆuds pour la faire fonctionner.
Câest une fausse peur, car quand tu regardes Bitcoin ou les altcoins Ă base de PoW, lĂ câest clairement la voie royale pour avoir un contrĂŽle centralisĂ©. Dâailleurs câest dĂ©jĂ le cas, il y a des âpoolsâ. Et lâinquiĂ©tude grandit chaque jour, car lâintĂ©rĂȘt pour le minage baisse (moins de coins Ă miner) ce qui va Ă terme signifie la mort de la monnaie (voir le cas de Auroracoin qui est mort justement par manque de puissance de calcul faisant balance Ă un attaquant).
Dâailleurs Bitcoin peut dores et dĂ©jĂ ĂȘtre tuĂ© : il suffit de voir quâil y une puissance globale au rĂ©seau et que celui qui le veut peut investir un gros paquet de blĂ© dans un super-calculateur et sâamuser Ă crĂ©er des blocs vides. Et avec les banques qui peuvent crĂ©er de la monnaie Ă volontĂ©, câest tout Ă fait faisable. Bitcoin est laissĂ© vivant , il faut bien en avoir conscience.
Alors que dans un systĂšme qui rĂ©duit les possibilitĂ©s dâĂ©critures Ă des membres identifiĂ©s, avec un algorithme sâassurant dâune certaine rotation, là ça pose beaucoup plus de difficultĂ©s.
A mon humble avis.
1 Like
Tortue
15 November 2016 09:05
25
Je ne parle pas dâun dĂ©ni de service, qui lui reste effectivement tout Ă fait limitĂ© (et peu dâintĂ©rĂȘt a mon sens, sauf peut ĂȘtre pour les banques en place) mais je parle plus dans le cas dâune place de marchĂ© qui Ă©change la monnaie libre contre dâautres monnaies. OĂč le but de lâattaquant est de supprimer de la blockchain le transfert de monnaie envoyĂ© Ă la place de marchĂ© quâil a effectuĂ© prĂ©cĂ©demment. (possibilitĂ© de dĂ©pensĂ© plusieurs fois la monnaie de lâattaquant)
un ti exemple ici:
http://www.gldcoin.com/documents/GoldCoin_0.7_51percent_defense_october_11_2013.pdf
cgeek
15 November 2016 09:38
26
Ah oui, mais non, pour plusieurs raisons :
dĂ©jĂ le principe des crypto-monnaies des 6 blocs dâassurance du transfert : on considĂšre un bloc comme entĂ©rinĂ© Ă partir de 6 autres blocs au-dessus. Si dans Duniter câest plus, hĂ© bien il suffira de dire que câest plutĂŽt 8, 15 ou 30. Câest moins bon que dans Bitcoin, mais ce nâest pas le plus important.
dans Duniter, pour que le rĂ©seau suive un fork, il faut 6 blocs au-dessus de la branche actuelle, donc lĂ il faudrait au minimum 12 blocs consĂ©cutifs Ă lâattaquant pour annuler la transaction (en rĂ©alitĂ©, il y a aussi une contrainte de 30 minutes dâavance, mais lâattaquant peut donner une accĂ©lĂ©ration momentanĂ©e pour y palier). [1]
[1] A noter quâaujourdâhui ce â6 blocs + 30 minutes dâavanceâ est une valeur en dur, totalement arbitraire et qui nâa rien Ă voir avec le protocole. On pourrait tout Ă fait la changer pour dire âsuis la branche qui a plus de [1/3 x nombre de calculateurs] de blocs supplĂ©mentairesâ. Le suivi dâun fork est alors conditionnĂ© Ă ce que cette branche soit rĂ©ellement suivie par plus dâun tiers des calculateurs.
Tortue
15 November 2016 10:16
27
Pour supprimer une transaction de la blockchain aujourdâhui il faut 6 bloc (+30 min) pour quâelle soit acceptĂ©e par le rĂ©seau.
Les blocs supplĂ©mentaires ne sont que la contrainte que le vendeur impose. Donc oui ça peut ĂȘtre 6 blocs de plus ou 8, 15 ou 30 mais câest un choix du vendeur, je doute que la boulangerie du coin me demande dâattendre 30bloc avant de partir avec ma baguette ^^.
cgeek:
A noter quâaujourdâhui ce â6 blocs + 30 minutes dâavanceâ est une valeur en dur, totalement arbitraire et qui nâa rien Ă voir avec le protocole. On pourrait tout Ă fait la changer pour dire âsuis la branche qui a plus de [1/3 x nombre de calculateurs] de blocs supplĂ©mentairesâ. Le suivi dâun fork est alors conditionnĂ© Ă ce que cette branche soit rĂ©ellement suivie par plus dâun tiers des calculateurs.
oui, câest peu ĂȘtre dans ce sens quâil faut rĂ©flĂ©chir,
mais si on cherche à avoir [1/3 x nombre de calculateurs] de blocs supplémentaires
les fork risques de durĂ©e vraiment longtemps du coupâŠ
Je ne suis pas lĂ pour critiquer, mais juste que lâon rĂ©flĂ©chies ensemble au risque potentiel et les moyens dây remĂ©dier (si risque il y a). Car câest la premiĂšre fois quâune POW personnalisĂ©e est mise en place, il faut faire attention.
cgeek
15 November 2016 10:45
28
Pas plus quâil ne veut bien attendre 6 blocs Bitcoin non plus
Les places de change, tout comme le boulanger, peuvent utiliser dâautres mĂ©canismes pour rĂ©aliser des opĂ©rations rapides. La blockchain nâest que lâendroit oĂč lâon consigne finalement les opĂ©rations rĂ©sultantes, un peu comme les banques ne rĂ©alisent pas systĂ©matiquement des transferts de monnaie interbancaires, mais plutĂŽt le rĂ©sultat de fin de journĂ©e.
Ăa dĂ©pend du niveau de fork et de sa nature (en 0.4 jâentends).
Imaginons 100 calculateurs : si 2 dâentre eux forkent, pour les 98 autres câest comme si rien ne sâĂ©tait passĂ©. Si 20 forkent, cela devient plus long. Mais on peut imaginer dâautres cas extrĂȘmes :
33% forkent, mais ces 33% sont aussi le 1/3 exclu de la preuve de travail, ils sont alors bloqués, et finiront par rejoindre les 2/3 non exclus.
50% forkent, dont le 1/3 exclu. Il reste alors 17% des nĆuds capable de calculer la suite, face au 50% de nĆuds nâayant pas forkĂ©.
66% forkent, dont le 1/3 exclu. Il reste alors 33% de nĆuds sur la branche âprincipaleâ face au fork. Câest du 33% face Ă du 33%, câest le pire des cas.
Alors câest vrai, il est possible dâattaquer la blockchain, ce dâautant plus que le nombre dâattaquants est proche ou supĂ©rieur Ă 1/3 des calculateurs.
Donc parmi les solutions possible Ă ce problĂšme en 0.4 : augmenter le nombre de nĆuds pacifiques, de façon Ă Ă©loigner le plus possible lâattaquant dâune prise de contrĂŽle par 1/3 bloquant.
Tortue:
Je ne suis pas lĂ pour critiquer, mais juste que lâon rĂ©flĂ©chies ensemble au risque potentiel et les moyens dây remĂ©dier (si risque il y a). Car câest la premiĂšre fois quâune POW personnalisĂ©e est mise en place, il faut faire attention.
Je nâen doute pas au contraire jâapprĂ©cie de ne pas ĂȘtre le seul Ă me pencher sur ce problĂšme, jâai aussi besoin dâaide pour orienter le projet vers ce qui nous conviendra le mieux.
Tortue
15 November 2016 11:10
29
Juste pour confirmer si jâai bien compris ce que tu proposes,
imaginons quâil y a 5000 noeuds qui calcule les blocs (comme actuellement pour le bitcoin, mĂȘme si ce nâest pas demain que lâon aura autant de noeuds)
imaginons quâil nây a que 1 seul noeud qui fork
celui-ci devra attendre 1667 blocs (5000/3) avant de rejoindre la branche principale?
cgeek
15 November 2016 11:18
30
Si lâon ne met pas dâautre condition, oui.
1667 blocs * 5 minutes par bloc = 8335 / (60 * 24) = 5,78 jours
Un nĆud qui forke tout seul, ou mĂȘme un gros groupe aurait besoin de 5-6 jours pour rĂ©sorber le fork. Pour une monnaie importante (5000 nĆuds), cela ne me choque pas, lâinertie est grande.
AprĂšs, il est toujours possible dâintĂ©grer dâautres conditions :
dĂ©jĂ en ajoutant des capteurs âje suis bloquĂ©â et âles autres avancentâ
en choisissant tel fork plutĂŽt que tel autre, par exemple en sĂ©lectionnant celui qui a le moins dâĂ©metteurs (pour contrer une attaque de nouveaux calculateurs)
âŠ
Mais ce qui est bien, câest quâon nâa pas besoin de changer le protocole pour ça.
Tortue
15 November 2016 13:20
31
Oui cela fait 5-6 jours dans le cas oĂč il nây a quâun nĆud qui fork, mais si câest un gros split, la complexitĂ© moyenne de la blockchain va faire ralentir chacune des branchesâŠ
AprÚs je ne sais pas sur combien de blocs précédant tu te bases pour faire la moyenne de la complexité.
Mais à premiÚre vu je trouve ça super long pour trouver un consensus.
Et du coup les commerçants ne devraient-ils pas attendre cette mĂȘme rĂšgle avant de valider une transaction? Afin dâĂȘtre sĂ»r que la branche oĂč a Ă©tĂ© Ă©crite la transaction soit validĂ©e par consensus?
cgeek
15 November 2016 14:33
32
Pour lâinstant en tout cas, on reste sur la formule â6 blocs + 30 minutes dâavanceâ. Câest un problĂšme quâon pourra rĂ©soudre plus tard, hors protocole, on a le temps dây repenser.
Jâai dĂ©jĂ rĂ©pondu :
Par exemple, tu peux avoir un compte dans une banque en monnaie libre qui peut servir pour les paiements instantanĂ©s, ou encore en utilisant une version papier de la monnaie. Il y a plein de façons de faire, et la blockchain nâa non seulement pas Ă rĂ©pondre Ă toutes ces problĂ©matiques, mais en plus nâest pas la meilleure pour toutes les situations.
Cela viendra au fur et Ă mesure. En attendant, tu peux demander Ă ton boulanger de te faire une ardoise !