So viele Verträge gibt es im Genesis-Block von Dusk.
Stake, das die Bereitsteller verfolgt, setzt, belohnt und das Validator-Set-Management verwaltet. Transfer, das $DUSK bewegt und der Einstiegspunkt für Ausführung und Gaszahlung ist.
Das ist die gesamte vertrauenswürdige Basis.
Ich denke immer wieder darüber nach, wie ungewöhnlich das ist. Viele Ketten starten mit Dutzenden eingebetteter Systemmodule — Governance, Namensgebung, Fee-Märkte, Precompiles für alles, was in diesem Jahr gerade angesagt war. Jedes davon ist Code, den man nie vollständig entfernen kann, der einmal auditiert und dann für immer mitgeschleppt wird.
@Dusk ging den anderen Weg. Alles andere muss so bereitgestellt werden, wie es jeder Nutzer tut: als Transaktion. Die Vertragsbereitstellung war in früheren Builds nach dem Genesis sogar nicht möglich — sie wurde als eigener Transaktionstyp speziell für die Mainnet-Veröffentlichung hinzugefügt, damit niemand, einschließlich des Teams, einen besonderen Pfad braucht.
Der Vorteil ist offensichtlich. Eine kleine Genesis-Oberfläche ist eine kleine dauerhafte Angriffsfläche, und das bedeutet, dass das Protokollteam nicht still und heimlich eigene Anwendungen auf der Basisschicht bevorzugen kann.
Der Trade-off ist weniger offensichtlich und es lohnt sich, ihn laut auszusprechen. Wenn fast nichts eingebaut ist, ist fast alles der Vertrag von irgendjemandem — mit dem Upgrade-Schlüssel von irgendjemandem, dem Bug von irgendjemandem, dem Abbruchrisiko von irgendjemandem. Staking-Pools, Namensdienste, DEXs: alles im User-Land. Für eine Kette, die Institutionen anspricht, ist „es ist nur ein Vertrag, den jemand bereitgestellt hat“ ein Satz, der in der Due Diligence abgefragt wird.
Minimale Basis, maximale Verantwortung wird nach außen verlagert. Das ist eine Philosophie, kein Zufall.
Würden Sie lieber, dass eine Kette die wichtigen Bestandteile in das Protokoll einbaut, wo sie dauerhaft und auditiert sind, oder sie im User-Land lässt, wo sie austauschbar sind, aber niemandem gehören?

#dusk