Dowód nie powiódł się za pierwszym razem.
Nie widziałem od razu powodu. Terminal po prostu zwrócił małą wiadomość odrzucającą z warstwy weryfikacji Midnight. Żadnego dramatycznego błędu. Tylko cisza po złożeniu dowodu.
Pochyliłem się bliżej ekranu, palce spoczywały na klawiaturze, słuchając cichego szumu wentylatora z laptopa. Coś wewnątrz obwodów kryptograficznych się nie zgadzało. Ograniczenia nie były zamknięte. Co oznaczało, że dowód zerowej wiedzy, który wygenerowałem, nie mógł przejść weryfikacji dowodu.
To dziwne napięcie wewnątrz protokołu Midnight.
Czujesz porażkę, zanim sieć w ogóle jej dotknie.
Wykonanie kontraktu już się wydarzyło lokalnie. Dane wejściowe przesuwały się przez zasady obwodu podczas generowania świadka, obliczenia kończyły się cicho wewnątrz dowodzącego. Dopiero po tym wygenerowanie dowodu wyprodukowało artefakt, który próbowałem złożyć.
Ale walidatorzy Midnight nie widzą żadnego z tego.
Widzą tylko dowód.
Wygenerowałem go ponownie. Wolniej tym razem. Obserwując dzienniki obwodu, aż wartości świadka się ustabilizowały. Kiedy drugie złożenie dowodu dotarło do Midnight, walidatorzy załadowali klucze weryfikacji kontraktu i ponownie uruchomili weryfikację dowodu walidatora.
Tym razem matematyka się zamknęła.
Blok zaakceptował wynik przez wykonanie zweryfikowane przez dowód, rejestrując stan przejścia wspierany dowodem bez ujawniania danych wejściowych, które go wyprodukowały.
To jest zmiana, którą wprowadza Midnight.
Łańcuch nigdy nie obserwuje, jak działa twój kontrakt.
Decyduje tylko, czy dowód zasługuje na istnienie.