Wäre dies als Smart-Contract-Anwendung sinnvoll? Versuchen, Funktionen und Einschränkungen zu verstehen

Ich fange an, mich über Ethereum und intelligente Verträge zu informieren, und einige Fragen tauchen in meinem Kopf auf.

Ich kann verstehen, dass mit Smart Contracts zum Beispiel eine Wette für/gegen den Fall abgeschlossen werden kann, dass es an einem bestimmten Tag in Cambridge schneit, und ich kann mir gut vorstellen, wie so ein Smart Contract funktionieren würde.

Stellen wir uns jedoch einen komplexeren Fall vor.

  1. Das Unternehmen hat ein Bug-Bounty-Programm.
  2. Der Benutzer findet einen Fehler und meldet ihn dem Unternehmen und möchte sicherstellen, dass das Unternehmen ihn bezahlt, sobald der Fehler behoben wurde.
  3. Das Unternehmen bezahlt den Benutzer mit einem digitalen Token auf der Ethereum-Blockchain.

Bedeutet dies, dass wir für jeden Fehler, den jeder Benutzer meldet, einen neuen Smart Contract codieren und erstellen müssen, der von beiden Parteien unterzeichnet wird? Wenn dies der Fall wäre, wäre es zu aufwendig, für jeden Fehlerbericht einen neuen Vertrag auf der Blockchain zu veröffentlichen?

Oder bedeutet das, dass wir einen allgemeineren Smart Contract erstellen müssen, an den Transaktionen gesendet werden können, wobei jede Transaktion einen angehängten Fehlerbericht hat?

(Ich versuche das nicht wirklich zu tun, nur um es zu verstehen. Stellen wir uns also vor, wir könnten eine generische Funktion isBugFixed(bug) codieren, die für jeden Fehler, den wir an sie übergeben, wahr oder falsch zurückgibt.)

Außerdem sieht es so aus, als müsste der Benutzer bezahlen, um einen neuen Fehlerbericht einzureichen, entweder um einen neuen Vertrag zu erstellen oder um eine neue Transaktion zu senden. Sehe ich das richtig, wenn ich sage, dass dies ohne eine zentrale Person, die als Mittelsmann fungiert und Berichte über die Blockchain veröffentlicht, nicht vermieden werden kann, wodurch die Dezentralisierung verringert wird (was ist, wenn zwei Benutzer gleichzeitig denselben Fehler melden? Es gäbe nichts Vergleichbares als "der Konsens über die längste Kette", aber der Mittelsmann würde die Entscheidung treffen).

Glauben Sie, dass es in einem solchen Fall die beste Entscheidung wäre, sich auf eine zentrale Instanz zu verlassen, die Berichte und Fehler überprüft, und die Blockchain nur für Token-Transfers zu verwenden, oder könnte das Ganze als dezentrale App gebaut werden?

Danke

Antworten (1)

Außerdem sieht es so aus, als müsste der Benutzer bezahlen, um einen neuen Fehlerbericht einzureichen, entweder um einen neuen Vertrag zu erstellen oder um eine neue Transaktion zu senden.

Sicher.

Sehe ich das richtig, wenn ich sage, dass dies ohne eine zentrale Person, die als Mittelsmann fungiert und Berichte über die Blockchain veröffentlicht, nicht vermieden werden kann, wodurch die Dezentralisierung verringert wird (was ist, wenn zwei Benutzer gleichzeitig denselben Fehler melden? Es gäbe nichts Vergleichbares als "der Konsens über die längste Kette", aber der Mittelsmann würde die Entscheidung treffen).

Erstens sollte es eine sehr große Anzahl von Berichten geben, falls wir davon sprechen, dass es oft vorkommen wird. Andererseits kann es passieren, und wir können es ziemlich einfach lösen.

  1. keine Tatsache, dass 2 Berichte in denselben Block gelangen, sodass ihr Zeitstempel unterschiedlich ist
  2. Sie können einen anderen Smart Contract haben, der Berichte empfängt und sie mit einem Algorithmus sortiert, bevor er tatsächlich irgendwo einen Fehlerbericht veröffentlicht (z. B. auf einer Webseite des Dapp).
  3. Wie auch immer, Fehler werden von einem menschlichen Programmierer behoben, der tatsächlich entscheidet, ob es sich um einen Fehler handelt oder nicht

Fazit: Ihr Szenario lässt sich dezentralisieren, aber noch nicht vollständig. Aber vielleicht wird die KI es eines Tages ändern. Somit

Bedeutet dies, dass wir für jeden Fehler, den jeder Benutzer meldet, einen neuen Smart Contract codieren und erstellen müssen, der von beiden Parteien unterzeichnet wird?

ja tut es.