1. Welche Modelle werden derzeit in der Kette verwendet?

Bekannte Ketten wie Ethereum, EOS und Solana verwenden alle das Kontomodell. Man kann sogar sagen, dass mehr als 90 % der Projekte das Kontomodell verwenden, während nur einige etablierte Projekte das UTXO-Modell verwenden, wie beispielsweise BTC und DOGE ., LTC, natürlich verwenden auch einige relativ neue Projekte dieses Modell, wie zum Beispiel FUEL, das das OP-Schema in Layer2 verwendet.

2. Was ist ein Kontomodell?

Um es einfach zu verstehen: Es handelt sich um das Bankkontosystem, z. B. Überweisungen zwischen Banken, Überweisungen von Alipay, WeChat usw., die alle zum Kontomodell gehören. Lassen Sie mich Ihnen ein Beispiel geben:

Wenn A 100 hat und B 100

Zu diesem Zeitpunkt überweist A 50 Yuan an B

Die Ausdrucksform im System ist

A -50, B +50

Also ihr Gleichgewicht

A 50, B 150

Dies ist eine Übertragung.

Nehmen wir erneut an, dass A noch 100 hat und 1 Yuan an 100 neue Personen überweisen möchte, die ein Konto eröffnet haben.

Zu diesem Zeitpunkt muss A gleichzeitig 1 Yuan an 100 Personen überweisen.

Transaktion 1

A -1, 1. Person +1

Also ihr Gleichgewicht

A 99, Person 1 1

2. Schlag

A -1, 2. Person +1

Also ihr Gleichgewicht

A 98, Person 2 1

Nr. 3

A -1, 3. Person +1

Also ihr Gleichgewicht

A 97, Person 3 1

und so weiter

......

100. Person

A -1, 100. Person +1

Also ihr Gleichgewicht

A 0, 100. Person 1

Theoretisch sind 100 Überweisungen erforderlich, und die nächste Überweisung muss zuerst die vorherige abschließen. Andernfalls kann nicht garantiert werden, dass der Kontostand konsistent ist und es zu Verwirrung kommt, ob es sich um mehrere Überweisungen handelt und ob der Saldo für eine Überweisung ausreicht , usw.

Theoretisch steigt mit zunehmender Anzahl der Transaktionen auch die für die Ausführung benötigte Zeit.

3. Was ist das UTXO-Modell?

Wie bereits erwähnt, verwenden viele etablierte Mainstream-Player UTXO, und Bitcoin, der Vorfahre dieses Kreises, verwendet übrigens auch das UTXO-Modell. DCEP, die von unserem Land ausgegebene legale digitale Währung, basiert also auch auf dem UTXO-Modell Dieses Modell muss seine Einzigartigkeit haben.

Der vollständige Name von UTXO lautet „Unspent Transaction Output“, was „nicht ausgegebene Transaktionsausgabe“ bedeutet. Einfach ausgedrückt ähnelt das Modell ein wenig dem Bargeldsystem im täglichen Leben.

A hat eine Brieftasche (eine echte Brieftasche) mit einem Nennwert von 1 Yuan, einem Nennwert von 10 Yuan und einem Nennwert von 100 Yuan.

A möchte B, C und D jeweils 1 Yuan geben.

A Es gibt drei Möglichkeiten

Typ 1: Geben Sie B einen Nennwert von 1 Yuan

Zweite Möglichkeit: Geben Sie C einen Nennwert von 10 Yuan und erhalten Sie 9 Yuan zurück.

Die dritte Methode: Geben Sie D einen Nennwert von 100 Yuan und erhalten Sie 99 Yuan zurück.

Alle drei Möglichkeiten können diese Transaktion abschließen.

Zurück zur Kette: Stellen Sie sich vor, dass hier jeder Nennwert des Geldes tatsächlich ein On-Chain-UTXO ist. Das UTXO wird während der Nutzung nicht übertragen, sondern ständig zerstört und neu aufgebaut, zum Beispiel:

A verwendet die zweite Methode, um Geld an C zu überweisen. Der UTXO mit einem Nennwert von 1 Yuan wird vernichtet. Das System wird einen UTXO mit einem Nennwert von 1 Yuan erneut drucken C gegeben und die 9 Yuan werden A zurückgegeben.

Die dritte Methode ist die gleiche. Wenn 100 Yuan vernichtet werden, wird ein UTXO mit einem Nennwert von 1 Yuan und einem Nennwert von 99 Yuan an D ausgegeben und die 99 Yuan an A zurückgegeben.

Dies ist der Unterschied zwischen UTXO- und Kontomodell-Übertragungsmethoden. Was noch erstaunlicher ist, ist, dass das UTXO-Modell parallel übertragen werden kann. Da der Saldo über dezentrales UTXO erfolgt, kann jeder Nennwert gleichzeitig an verschiedene Personen übertragen werden Die oben genannten drei Methoden können gleichzeitig in einer Transaktion abgeschlossen werden, da kein Problem mit der Kontokonsistenz besteht und jeder UTXO unabhängig berechnet wird.

Wenn wir die oben genannten Kontomodelle vergleichen, muss jede Transaktion auf den Abschluss der vorherigen Transaktion angewiesen sein. Die Leistungslücke kann man sich vorstellen. Auf diese Weise können wir verstehen, warum die digitale Währung der Zentralbank das UTXO-Modell verwendet. Wie könnte Shenzhen sonst 10 Millionen digitale Renminbi an 50.000 Geldbörsen senden?

Kehren wir zum obigen Beispiel zurück

A hat 100 und möchte 1 Yuan an 100 neue Leute überweisen, die Konten eröffnen.

Ein UTXO mit einem Nennwert von 100 kann in 100 UTXOs mit einem Nennwert von 1 Yuan aufgeteilt und dann in einer Transaktion direkt an 100 Personen verteilt werden.

Kurz gesagt, stellen Sie sich den Nennwert von UTXO als flexibleres Bargeld vor, das in der Kette ständig zerstört und wieder aufgebaut wird.

Wenn Sie wissen möchten, wie viel Geld sich in dieser Wallet-Adresse befindet, müssen Sie zählen, wie viele UTXO-Guthaben vorhanden sind, und diese zusammenfassen.

4. Vor- und Nachteile von Kontomodell und UTXO

Vorteile des Kontomodells:

Der Vertrag wird im Konto in Form eines Codes gespeichert und das Konto hat seinen eigenen Status. Dieses Modell ist besser programmierbar, für Entwickler einfacher zu verstehen und bietet eine größere Bandbreite an Szenarien.

Massentransaktionen sind günstiger. Stellen Sie sich vor, dass der Mining-Pool den Minern in UTXO eine Bearbeitungsgebühr zahlt, da für jede Eingabe und Ausgabe ein separates Zeugen- oder Sperrskript erforderlich ist. Die Transaktion selbst ist sehr umfangreich und die Signaturüberprüfung und die Transaktionsspeicherung verbrauchen wertvolle Ressourcen in der Kette . Das Account-Modell kann durch Verträge die Kosten erheblich senken.

Nachteile des Kontomodells:

Es besteht keine Abhängigkeit zwischen Kontomodelltransaktionen und das Wiedergabeproblem muss gelöst werden. Wie löst Ethereum dieses Problem? Wir wissen, dass Ethereum eine eindeutige Nonce-Wertmethode verwendet. Für jeden Benutzer gibt es ein Nonce-Feld, wodurch Wiederholungsangriffe vermieden werden.

Für die Implementierung von Lightning Network/Thunder Network, Plasma usw. ist ein komplexerer Proof-Proof-Mechanismus für den Benutzernachweis und ein komplexeres Protokoll für die Statusmigration von Unterketten zur Hauptkette erforderlich.

UTXO-Vorteile:

Die Berechnung erfolgt außerhalb der Kette und die Transaktion selbst ist sowohl das Ergebnis als auch der Beweis. Der Knoten muss nur eine Überprüfung durchführen und keine zusätzlichen Berechnungen für die Transaktion durchführen, und es gibt keinen zusätzlichen Statusspeicher. Die Berechnung des Ausgabe-UTXO der Transaktion selbst wird im Wallet abgeschlossen, sodass die Rechenlast der Transaktion vollständig vom Wallet getragen wird, was die Belastung der Kette bis zu einem gewissen Grad reduziert.

Mit Ausnahme von Coinbase-Transaktionen ist die Eingabe der Transaktion immer hinter einem UTXO verknüpft. Transaktionen können nicht wiederholt werden, die Reihenfolge und Abhängigkeiten von Transaktionen können leicht überprüft werden und auch, ob Transaktionen verbraucht wurden, kann leicht nachgewiesen werden.

Das UTXO-Modell ist zustandslos und einfacher gleichzeitig zu verarbeiten.

Besserer Datenschutz für Transaktionen vom Typ P2SH. Die Eingaben in der Transaktion stehen in keinem Zusammenhang zueinander und Technologien wie CoinJoin können genutzt werden, um ein gewisses Maß an Privatsphäre zu erhöhen.

UTXO-Nachteile:

Es ist nicht in der Lage, eine komplexere Logik zu implementieren und weist eine schlechte Programmierbarkeit auf. Bei komplexer Logik oder Verträgen, die eine Zustandserhaltung erfordern, ist die Implementierung schwierig und die Zustandsraumnutzung ist relativ gering.

Wenn es mehr Eingaben gibt, werden auch die Zeugenskripte zunehmen. Die Signatur selbst verbraucht mehr CPU und Speicherplatz.

5. Was sind die kurzen Unterschiede zwischen dem Kontomodell und UTXO?

Kontostand

Kontomodell: Sie können einfach und übersichtlich sehen, wie viel Geld sich auf dem Konto befindet.

UTXO-Modell: Zählen Sie, wie viele UTXOs sich unter der Adresse befinden, und das Ergebnis der Zusammenfassung ist der Saldo.

Wenn die Anzahl der Transaktionen exponentiell zunimmt

Kontomodell: Es wird immer schwieriger.

UTXO-Modell: Unterstützt natürlich eine hohe Parallelität.

Aus Sicht eines Smart Contracts/Entwicklers

Das Kontomodell entspricht den logischen Gewohnheiten der Entwickler und ist relativ einfach zu schreibende Logik.

Die UTXO-Skriptprogrammierung ist komplizierter