Ich hatte letztens eine kleine Rechnung erstellt bezüglich der Scalability von Ardor (habs ja in der Altcoindiskussion schon kurz angedeutet). Die Resultate waren gelinde gesagt sehr vielversprechend. Meines Erachtens hat Ardor damit,
wenn es so funktioniert wie gedacht, die Skalierbarkeit für einen Coin, der bei anhaltendem technischen Fortschritt in wenigen Jahren von der gesamten Weltbevölkerung genutzt werden könnte - und das mit On-Chain-Transaktionen.
Die Frage ist: Wie groß ist der
Initial Block Download (IBD) der Ardor-Blockchain, wenn sie X Transaktionen pro Block bietet? (Der IBD gibt an, was jeder neue Node am Anfang herunterladen muss)
Folgende
Grundannahmen:
- NXT-Transaktionen sind laut CfB zwischen 128 und 160 Byte groß. Wir sind konservativ und nehmen 160, vielleicht sind sie bei Ardor ja etwas größer.
- Die Forging Chain hat 20 Transaktionen pro Block (meist Childchainblock-TX)
- 1440 Blocks aller Childchains werden von allen Knoten (Fullnodes) verifiziert und müssen daher voll heruntergeladen werden. Dieser Wert ist statisch.
- Der Rest kommt als geprunter Snapshot dazu. Soviel ich verstanden habe, sind dies die Balances der NXT-Adressen beim Stand "von vor 1440 Blocks".
- Die Block-Header sind vernachlässigbar (< 1 MB/Jahr)
Die
Rechnung ist also:
Forging Chain (ARDR):
20 tx/block -> 20 x 160 x 60 x 24 = 4,608 MB/Tag = ~ 138 MB/Monat = ~ 1,681 GB/Jahr
100 tx/block -> 100 x 160 x 60 x 25 = 23,040 MB/Tag = ~ 691 MB/Monat = 8,409 GB/Jahr
Childchain-Download:
Hätte jeder Block X Transaktionen, wäre der Childchain-Download Y groß.
X = 1 Transaktion : 1440 * 160 = 230,4 kB
X = 1000 Transaktionen : 1440 * 160 * 1000 = 230,4 MB. (Das entspricht bereits dem Dreifachen des heutigen Bitcoin-Transaktionskapazität, da Bitcoin ca. 3000 tx/Block bei einem Blockintervall von 10 Minuten, ARDR aber 1-Minuten-Blocks hat)
X = 1 Mio. Transaktionen : 1440 * 160 * 1000000 = 230,4 GB (Ist etwas mehr als das Doppelte der heutigen Bitcoin-Blockchain, die ca. 107 GB groß ist. Bietet dafür >16000 tps statt >6 tps bei Bitcoin)
Dazu kommen die geprunten Snapshot-Balances. Der Einfachheit halber nehmen wir pro Account den Wert einer Transaktion (also 160 B) an. Wir hätten also:
- 1 Mio. Nutzer: 1000000 x 160 = 160 MB
- 100 Mio. Nutzer: 100000000 x 160 = 16 GB
- 1 Mrd. Nutzer: 1000000000 x 160 = 160 GB.
Daraus wird ersichtlich, dass Ardor schon heute problemlos 100 Mio. Nutzer bei 100.000 Transaktionen pro Block bedienen können sollte, bei einem ähnlichen oder kürzeren IBD als Bitcoin heute. Dies würde - bei einer Forging Chain mit 100 tx/block - nach einem Jahr Aktivität einen Initial Blockchain Download von 16 GB (Snapshot) + 8,5 GB (Forging Chain) + 23,04 GB (1440 Blocks der Childchains bei 100000 tx/Blocks) = 47,54 GB.
Um nicht Äpfel und Birnen zu vergleichen nehmen wir an, dass Ardor schon 8 Jahre lange besteht (wie Bitcoin heute), also: 16 GB (Snapshot) + 68 GB (Forging chain) + 23,04 GB (1440 Blocks der Childchains bei 100000 tx/Blocks) = 107,04 GB - also ca. 1600 tps bei einem genauso großen IBD wie Bitcoin heute bei 3 tps!
Sieht jedenfalls sehr gut aus. Mit weniger als 1,5 TB, also etwa der Kapazität einer heutigen Festplatte, könnte sogar die ganze Weltbevölkerung bedient werden. Das sollte in ein paar Jahren kein Problem sein. Es bleibt natürlich das Problem der Blockpropagation, aber es gibt ja schon NXT-Labortests mit 800 tps und bei Bitshares und NEM sogar 3000 tps, wovon man sich dank des Open-Source-Prinzips ja Code borgen könnte