Letzten Monat hat mir ein Bruder, der Frontend-Entwicklung macht, eine Nachricht geschickt, und sein Tonfall war so verzweifelt, dass er fast weinte. Er sagte, er habe das ganze Wochenende durchgemacht, mit der Dokumentation von t-43 gekämpft, nur um eine einfache Anwendung im Testnetz laufen zu lassen. Nach zwei ganzen Tagen voller Mühen lief zwar der Docker-Container und der Server, aber als es darum ging, den Vertrag zu schreiben, wurde er sofort zum Dummkopf und kniete sich vor mir nieder!
Es ist nicht so, dass ich keinen Code schreiben kann, meine Freunde! Es ist offensichtlich, dass die Geschäftslogik super einfach aussieht, aber der vom Compiler generierte ZK-Schaltkreis so komplex ist, dass man am Leben zweifeln könnte. Am Ende bringt es nur vier Worte hervor: Ich gebe auf! Ich habe darüber eine halbe Ewigkeit nachgedacht und je mehr ich darüber nachdenke, desto mehr möchte ich dem offiziellen Midnight-Team einen Vorschlag machen: Papa, bitte, lass den normalen Menschen einen Ausweg! Das technische Team von Midnight prahlt in den Dokumenten: Die Minokawa-Sprache basiert auf TypeScript, und mit Millionen von TS-Entwicklern weltweit kann man nahtlos umsteigen und entwickeln! Das ist technisch nicht falsch, die Syntax hat tatsächlich diesen TS-Geschmack, Variablen, Funktionen, Bedingungen, es sieht aus wie normaler Frontend-Code, aber was bringt das? In der traditionellen Frontend-Entwicklung, nachdem der Code geschrieben ist, sieht man mit einem Klick auf die Aktualisieren-Schaltfläche sofort die Ergebnisse, Fehler sind klar und deutlich, und die Debugging-Tools sind so einfach zu bedienen, dass man nur eine Lösung in der Community suchen muss und eine Menge findet. Aber wenn man in Midnight ist, schreibt man den Vertragscode, und der Compiler generiert im Hintergrund eine Menge ZK-Schaltkreise, die man nicht einmal versteht. Wenn die Generierung fehlschlägt, sind die Fehler nur kryptographische Fachbegriffe, die mit deiner Geschäftslogik nichts zu tun haben. Du weißt nicht einmal, wo der Fehler liegt, geschweige denn, wie du ihn beheben kannst, du kannst nur vor dem Computer knien und dir den Kopf kratzen!
Das ist so, als würde man einen erfahrenen Fahrer eines Familienautos, der zehn Jahre lang gefahren ist, plötzlich in das Cockpit eines Kampfjets setzen. Die Knöpfe sehen zwar ein bisschen wie ein Lenkrad aus, aber kann man ihn dazu bringen, es zum Fliegen zu bringen? Machen Sie Witze? Wenn er sich nicht in die Hosen macht, ist das schon ein Erfolg! @MidnightNetwork Papa, können wir nicht so schwierig sein? Später habe ich das Entwicklerforum durchstöbert und fast Tränen gelacht, aber gleichzeitig fühlte es sich an, als würde ich knien, denn anscheinend ist diese Situation überhaupt kein Einzelfall! Ein Team, das DeFi macht, hat gepostet und geklagt: Ein Vertrag, der auf Ethereum an einem Tag geschrieben werden kann, hat im $NIGHT Testnetz drei Wochen gebraucht, um erfolgreich bereitgestellt zu werden! Es liegt nicht daran, dass die Logik schwierig ist, es sind die Zeitkosten zum Debuggen von ZK-Schaltungen, die einen auslaugen! Ein unabhängiger Entwickler hat sich beschwert, nachdem er den ersten Vertrag lokal zum Laufen gebracht hatte, wollte er eine etwas komplexere Funktion hinzufügen, und die Zeit zur Generierung des Nachweises stieg direkt von ein paar Sekunden auf zwei Minuten. Wo liegt der Leistungsengpass? Ich bitte Papa inständig um einen Hinweis, das Kind kann es wirklich nicht durchschauen!
Hinter diesen Beschwerden versteckt sich eine schmerzhafte Wahrheit: Der Datenschutz von Midnight wird vollständig durch die Entwicklungsherausforderungen erkauft! Wie beeindruckend ZK-Beweise auch sein mögen, die Fallstricke der Entwicklung sind ebenso tief. In den Whitepapers wird nicht darüber gesprochen, und in den Werbematerialien steht nichts, aber sobald man anfängt, Code zu schreiben, wird man mit Sicherheit blutend auf dem Boden liegen, man kann nur knien und den Fehler eingestehen! Ich habe es den Leuten detailliert erklärt: Bei der Entwicklung auf Ethereum musst du dir nur um die Geschäftslogik Gedanken machen, der Benutzer sendet Transaktionen, Knoten führen aus, Ergebnisse werden auf die Kette geschrieben, der lineare Prozess ist super verständlich. Aber bei der Entwicklung auf Midnight musst du gleichzeitig zwei Dinge tun: die Geschäftslogik schreiben und darauf achten, ohne die Daten preiszugeben, nachzuweisen, dass die Logik ausgeführt wurde. Der Grad der Komplexität des Letzteren drückt das Erstere direkt auf den Boden, normale Entwickler können das einfach nicht bewältigen!
Nehmen wir einen einfachen Auktionsvertrag, der auf Ethereum in ein paar Dutzend Zeilen Code gelöst werden kann. Auf Midnight? Da musst du knien und nachdenken: Wie schütze ich die Gebotsinformationen? Wie wähle ich die Ergebnisse selektiv aus? Wie verhindere ich, dass ungültige Gebote den Betrag offenbaren und gleichzeitig zurückgewiesen werden? Jedes Detail des Datenschutzes muss mit ZK-Schaltungen geschrieben werden. Ein Fehler in der Schaltung und der Vertrag ist direkt hinfällig, es gibt keinen Ort, um zu weinen! Noch schlimmer ist, dass diese Hürde die Personalkosten in die Höhe treibt! Entwickler, die Solidity schreiben können, verdienen etwa 20.000 im Monat; Entwickler, die Minokawa schreiben und die Grundlagen der ZK-Schaltungen verstehen, verdienen vielleicht das Dreifache, aber man findet sie nicht! Bei der Entwicklung von Anwendungen auf Midnight sind die Personalkosten von Natur aus viel höher als auf Ethereum. Wer trägt letztendlich diese Kosten? Nicht die Projektpartei und die Benutzer! Väter, können wir nicht einfach weniger Geld und Mühe aufwenden?
Ich sage nicht, dass die Richtung von Midnight falsch ist, im Gegenteil, ich finde, die Logik ist vollkommen richtig. Datenschutz ist ohne ZK nicht möglich, ZK benötigt komplexe Schaltungen, und komplexe Schaltungen erfordern hochqualifizierte Entwickler. Das ist der technische Preis, den ich verstehe! Aber von 'technisch beeindruckend' zu 'für normale Menschen nutzbar' gibt es eine Kluft, die ich wirklich nicht überwinden kann. Ich bitte Papa inständig, eine Brücke zu bauen! Wie geht man diesen Weg? Ich schlage Papa vor: Lass uns schnell die Werkzeugkette und die Verpackungsschicht in Angriff nehmen!
Als das Internet aufkam, musste man für eine Homepage HTML, FTP und Server verstehen, die Hürden für persönliche Webmaster waren absurd hoch. Später kam WordPress, und normale Menschen konnten mit einem Klick eine Website erstellen. Es ist nicht so, dass das Internet einfacher wurde, sondern dass komplexe Dinge vollständig in die Tiefe verpackt wurden, sodass die Benutzer sich nicht darum kümmern mussten. Midnight fehlt genau das! Minokawa ist freundlicher als das Schreiben von ZK-Schaltungen von Grund auf, aber für die meisten Entwickler muss man immer noch die Grundlagen verstehen, also bitte ich Papa inständig, eine weitere Abstraktionsebene hinzuzufügen und gängige Datenschutzfunktionen in fertige Module zu verpacken, damit die Entwickler sich nur um die Geschäftslogik kümmern müssen und sich nicht darum kümmern, wie ZK-Schaltungen generiert werden. Das Kind neigt sich demütig! Ich habe im Forum auch eine amüsante Antwort gesehen, ein Typ hat zwei Wochen gebraucht, um den ersten Vertrag zum Laufen zu bringen, die Funktion war so einfach, dass sie nicht zu gebrauchen war, aber er war dennoch aufgeregt und sagte: 'Dieses Ding ist so schwer zu benutzen, dass ich sterben möchte, aber ich weiß, dass es das Richtige tut', demütig und beharrlich, ganz wie ich, der ich Papa inständig um einen Ausweg bitte!
Dieses Bild ist genau das gleiche wie bei den frühen Ethereum-Entwicklern! 2016, als sie Solidity-Verträge schrieben, waren die Werkzeuge unvollständig, die Dokumentation chaotisch, und es gab viele Sicherheitslücken, alles stützte sich auf Glauben, und erst später kam es zu einem Ausbruch von DeFi und NFTs. Midnight ist jetzt wie das ETH von damals, die Werkzeuge sind schwer zu benutzen, die Dokumentation ist schwach, die Entwickler tasten sich alle voran, aber das Kind kann wirklich nicht mehr durchhalten! Außerdem hat ein Frontend-Bruder, den ich zuvor aufgegeben hatte, vor ein paar Tagen wieder nach mir gefragt, sich eine Woche lang beruhigt und beschlossen, es noch einmal zu versuchen. Diesmal hat er sich nicht getraut, es zu übertreiben, sondern hat brav das offizielle Grundlagenhandbuch von Anfang bis Ende durchgearbeitet. Am Abend, als er das erste Beispiel zum Laufen brachte, hat er mir einen Screenshot geschickt mit dem Text 'Proof erfolgreich generiert', dazu schrieb er: 'Dieses Ding quält einen, aber in dem Moment, als es funktioniert, ist es so erfrischend, dass ich dem offiziellen Team einen Dank aussprechen möchte!'
BTC definiert Vertrauen durch Rechenleistung, Ethereum definiert Zusammenarbeit durch Smart Contracts, Midnight möchte Privatsphäre durch ZK definieren, diese ursprüngliche Absicht verstehe ich! Aber neue Technologien von Geek-Spielzeug zu Alltagswerkzeugen zu machen, wo gibt es da keine Gründe, die einen auf die Knie zwingen? Papa Midnight, ich bitte inständig darum, die Entwicklungsbarriere zu senken! Ich bitte inständig um verbesserte Fehlermeldungen! Ich bitte inständig um die Verpackung komplexer Schaltungen.
