🔒🖼️ Nowy post: Transakcje w Zaszyfrowanych Ramkach 🔒🖼️ tl;dr: Transakcje w zaszyfrowanych ramkach opierają się na LUCID i EIP-8141, aby ukryć parametry wykonania (cel, calldata, kwoty) do momentu zablokowania porządku bloku. Ten projekt odblokowuje szyfrowane wykonanie w tym samym slocie, przeplatane transakcje w postaci jawnej/szyfrowanej i jest kompatybilny z przyszłymi schematami PQ. 👇🧵
Dzisiaj projekty z zaszyfrowanym mempool (np. LUCID) opóźniają wykonanie do następnego slotu i używają dedykowanego pasa na górze bloku dla zaszyfrowanych transakcji. Ten post proponuje wykonanie zaszyfrowane w tym samym slocie poprzez oddzielenie porządkowania od wykonania. Budowniczy zobowiązuje się do pełnego uporządkowanego zestawu transakcji przed ujawnieniem jakiegokolwiek klucza, a następnie wykonuje to zobowiązane porządkowanie w tym samym slocie.
W standardowym ePBS, oferta budowniczego zobowiązuje się do wstępnie obliczonego block_hash. To nie działa tutaj, ponieważ ostateczny wynik zależy od tego, które zaszyfrowane transakcje zostaną ujawnione i co one odszyfrują. Zamiast tego, oferta zobowiązuje się do tx_ordering_root, blokując pełną listę transakcji przed ujawnieniem. Wyniki zależne od wykonania (state_root, BAL, potwierdzenia) są związane dopiero po.
To jest kluczowa różnica w porównaniu do LUCID. W LUCID klucze są uwalniane podczas slotu N, a wykonanie odbywa się na początku bloku w slotcie N+1. Następny budowniczy już zna odszyfrowane transakcje, gdy umieszcza resztę bloku. Tutaj zobowiązanie następuje przed ujawnieniem, wykonanie pozostaje w tym samym slocie, a zaszyfrowane transakcje są przeplatane z tekstem jawnym w jednym porządku.
Każda zaszyfrowana ramka tx ma publiczną ramkę VERIFY oraz ukrytą zaszyfrowaną fazę wykonania. Koperta zobowiązuje do exec_params_binding = H(exec_params). Cel, calldata, kwoty i opcjonalnie opłata priorytetowa pozostają ukryte do momentu ujawnienia. Jeśli klucz nie dotrze przed terminem ujawnienia budowniczego, zaszyfrowana faza jest pomijana. VERIFY nadal działa, nonce jest zużywane, a nadawca płaci za publiczną część. Ukryty gaz wykonawczy jest zwracany. Kolejność pozostaje stała niezależnie od okoliczności.
Budowniczy wciąż ma swobodę w ujawnianiu informacji blisko terminu końcowego. Aby to ograniczyć, projekt wykorzystuje widok łączący attesterów podobny do FOCIL: attesterzy nie będą głosować na ładunek, który oznacza ujawnienie jako brakujące, jeśli zaobserwowali klucz przed własnym terminem zamrożenia.
Na temat problemu (innej) opcji bezpłatnej: Nadawca z samodekodowaniem może obserwować ustaloną kolejność i zdecydować się na ujawnienie tylko wtedy, gdy pozycja jest korzystna, skutecznie trzymając bezpłatną opcję na wykonanie. Istnieją łagodzenia, takie jak dodatkowe opłaty za zaszyfrowane transakcje lub kary za pominięcie, ale uważam, że potrzebne są dalsze badania, aby podjąć ostateczne decyzje.
29