1. TypeScript-basierte Syntax

• Vertrautheit: Compact verwendet eine Syntax, die TypeScript ähnlich ist, was Millionen von Web2-Entwicklern ermöglicht, ohne die Notwendigkeit, eine völlig neue Sprache zu lernen, in die Web3-Entwicklung zu wechseln.

• Statisch typisiertes System: Jeder Ausdruck in Compact wird zur Compile-Zeit typüberprüft. Dies hilft bei der frühzeitigen Fehlersuche und stellt die sichere Wartung von großangelegten Verträgen sicher.

2. Zero-Knowledge-Compiler

• ZK-Automatisierung: Der Compact-Compiler generiert nicht nur ausführbaren Code, sondern gibt auch Zero-Knowledge-Schaltungen aus. Diese Schaltungen werden verwendet, um die Gültigkeit von Ledger-Interaktionen zu beweisen, ohne Rohdaten offenzulegen.

• Trennung von Zuständen: Die Sprache unterstützt eine Dual-Ledger-Architektur, die es Entwicklern ermöglicht, klar zu definieren, welche Daten privat bleiben und welche öffentlich aufgezeichnet werden.

3. Kernkomponenten eines Compact-Vertrags

Ein in Compact geschriebener Smart Contract besteht typischerweise aus drei strukturellen Teilen:

• Schaltungen: Funktionen, die Berechnungen durchführen und Beweise für die On-Chain-Verifizierung generieren.

• Zeugen: JavaScript/TypeScript-Funktionen, die auf der Seite des Benutzers mit Zugriff auf private Daten ausgeführt werden. Ihre Ergebnisse werden nur dann in die Kette übernommen, wenn der Entwickler ausdrücklich die Offenlegung anfordert.

• Ledger-Zustand: Der öffentliche Datenanteil, der direkt auf der Midnight-Blockchain gespeichert ist.

4. Funktionen der funktionalen Programmierung

• Compact unterstützt Konzepte wie reine Funktionen und unveränderliche Datenstrukturen. Dieser Ansatz macht den Quellcode modular, leicht testbar und minimiert logische Fehler, die durch unbeabsichtigte Zustandsänderungen entstehen.

5. Entwicklungstoolchain

Das Compact-Ökosystem bietet eine umfassende Suite von Werkzeugen zur Unterstützung professioneller Entwicklungsabläufe:

• Compact Compiler: Übersetzt Quellcode in ZK-Schaltungen und JavaScript-Ausführungscode.

• Compact.js & Midnight.js: Bibliotheken, die die Integration von Compact-Smart Contracts in standardmäßige Webanwendungen erleichtern.

• Compact Devtools: Eine Befehlszeilenoberfläche zur Versionsverwaltung, Codeformatierung und Installation von Compiler-Toolsets.

@MidnightNetwork #MidnightNetwork #night $NIGHT #DUST #CompactLang #Cardano