Duniter et Directed Acyclic Graph (DAG)

Un nouveau whitepaper intitulé “Snowflake to Avalanche: A Novel Metastable Consensus Protocol Family for
Cryptocurrencies” a été publié il y a quelques heures :

https://ipfs.io/ipfs/QmUy4jh5mGNZvLkjies1RWM4YuvJh5o2FYopNPVYwrRVGV

Un tel protocole pourrait-il avoir un intérêt pour une crypto-monnaie avec WoT de type Duniter ?

2 Likes

C’est assez interessant, même si je suis loin de tout comprendre.

Un point que je ne comprends pas quand on enlève la preuve de travail est la mesure du temps, et de comment ils maintiennent un nombre de bloc/s (ou autre chose qui remplace un bloc) relativement constant. Si l’on a pas cette propriété là, il devient difficile de maintenir une horloge et d’effectuer des actions en fonction de durées qui sont indispensables dans Duniter).

Edit : suite à quelques autres lectures, j’ai l’impression que seule la POW permet de timestamping absolu (et non relatif entre les différentes transactions).

1 Like

@nanocryk en fait les Cryptocurrencies qui ne font que des transactions (pas de DU ni de wot) n’ont pas besoin d’avoir un temps commun.

Ça me rappelle holochain qui est un peu dans le même genre, pas de temps commun, donc pas de DU possible, ni de wot.

1 Like

Ca reste donc intéressant pour les cryptos en générale, mais beaucoup moins pour Duniter (et dépendant des besoins pour fygg)

1 Like

Merci pour vos réponses.

En quoi le PoW est-il un pré-requis pour la mesure du temps exactement ?
Est-ce lié à la fréquence des blocs ?

J’étais en train d’écrire un pavé, mais je me suis rendu compte que c’était faux. La PoW n’est pas nécéssaire. En effet pour calculer la date précise on utilise la date fournie dans chaque bloc. La PoW permet en général de garantir qu’a peut près le meme temps s’écoule entre chaque bloc, ce qui rend le calcul d’une “date concensuelle” simple (interpolation linéaire pour être proche de la date réelle, moyenne avec un retard sur la date réelle). Mais rien n’empeche d’avoir des temps non constant entre chaque bloc, et de faire le calcul sur assez de bloc pour qu’en moyenne ça soit équivalent.

1 Like

Ben non tu fait comment si en fait tout les blocs sont générés par quelques menteurs qui donnent un timestamp bidon pour bloquer la création du DU ? Ou a l’inverse un timestamp très accéléré pour faire tourner la monnaie trop vite (qui deviendrais alors comme une monnaie de test).

Donc outre le problème synchronisation pour lesquels on n’a toujours pas trouvée d’alternative a la PoW compatible avec les 4 libertés économiques (ce qui veut dire pas de preuve d’enjeu). La PoW est aussi indispensable pour mesurer un temps commun, le temps blockchain qui est alors un temps de calcul.

J’imagine qu’il suffirait que les noeuds rejettent les transactions dont le timestamp serait hors des critères définis dans les règles de consensus, non ? Ces transactions ne pourraient pas être ajoutées au DAG.

Pas de PoW, mais un autre algo de consensus. Si tous tes mineurs de PoW sont des menteurs, ils peuvent aussi donner des timestamps bidons et bloquer la création de DU.

Si TOUS, or justement la pow permet d’empêcher les minorités d’écrire la majorité des blocs grâce a la diff perso. Et c’est bien parce qu’il y a un calcul qui deviens presque impossible a résoudre qui minorité de menteurs ne peuvent pas devenir majoritaires dans la fenêtre de blocs utilisée pour évaluer le temps commun :wink:

Sans PoW donc, il faut trouver un autre mécanisme d’exclusion empêchant toute minorité d’être sur représentée dans la fenêtre de blocs utilisée pour évaluer le temps commun, c’est ce que je me suis essayer a faire avec mon algo PoS mais je pense que ce n’est pas satisfaisant. Bref, pour avoir chercher je ne vois pas de solution satisfaisante a ce problème de temps commun outre la PoW :confused:

Non, si on a un algorithme de consensus non PoW qui d’une certaine manière arrive à répartir la création de bloc aux différents membres qui le souhaite de façon égale.

Bah oui sans PoW, c’est justement ce que propose ce papier. Je n’ai jamais dis qu’il fallait le mettre sur Duniter, seulement que la PoW n’est pas responsable du calcul du temps.

1 Like

Ben si parce que dans les autres algos qui permettent un temps commun (donc pas DAG) on se retrouve avec le problème d’avoir trop de blocs immédiatement, comment tu résout les fork si un groupe peut rès facilement proposer 100, 1_000, 10_000 block qui s’enchaînent parfaitement ? hum ?

Il faut compter en plus de temps de vérification d’un bloc, qui par exemple dans Ethereum prend un certain temps. Encore chez Ethereum, ils utilisent les blocs forkés pour détecter la chaîne la plus longue (systèle d’oncles). Bien évidement sur une blockchain qui est vérifié trop rapidement ça ne passe pas, mais ça pourrait être une solution à long terme pour utiliser nos ressources uniquement a vérifier les infos et non simplement à jouer avec une loterie cryptographique.

Il y a en effet des problématiques séparables. L’heure dans Duniter est donnée par les membres, ce n’est pas spécialement la PoW qui est impliquée, bien qu’on profite de sa forme pour permettre une rotation dans le fait de donner cette date.

Mais donc même sans PoW il est possible d’avoir cette rotation, du moment qu’il y a une blockchain. Et même sans blockchain il est certainement possible de trouver de trouver des algos apportant cette propriété de rotation.

2 Likes

Peut être plus simple à comprendre, car avec plein de jolis graphiques et animations, le fonctionnement du DAG de IOTA. https://blog.iota.org/the-tangle-an-illustrated-introduction-4d5eae6fe8d4

Mais vous connaissez probablement déjà, IOTA fait couler pas mal d’encre dans les communautés des cryptomonnaies.

Le WP cité dans l’OP semble résoudre certains problèmes de IOTA comme les risques de doublespend par exemple. Par contre, les risques d’attaque sybil semblent toujours être présents. Et je me demandais si un WoT pouvait résoudre ou nettement améliorer ce dernier point.