Popularne tematy
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
1/ SIMD-0334, autorstwa Stanisława Ladyżenskiego, naprawia sprawdzenie syscalla alt_bn128_pairing w Solanie. Dodaje odpowiednie sprawdzenie długości danych wejściowych dla parowania krzywych eliptycznych, zapobiegając niewłaściwemu użyciu z nieprawidłowo wymiarowanymi danymi wejściowymi. Rozłóżmy to na czynniki, co to oznacza 🧵

2/ alt_bn128_pairing to wywołanie systemowe do parowania na krzywej eliptycznej BN128 używanej w dowodach zerowej wiedzy. Przyjmuje listę punktów krzywej jako dane wejściowe. Każda para punktów ma 192 bajty, więc prawidłowe dane wejściowe muszą mieć długość będącą wielokrotnością 192 bajtów.
3/ Problem: sprawdzenie długości używało błędnie funkcji checked_rem w Rust. checked_rem zwraca None tylko w przypadku dzielenia przez zero, więc sprawdzenie nigdy nie zawiodło przy 192. W rezultacie wywołanie syscall parowania działałoby nawet jeśli wejście nie było wielokrotnością 192.
4/ Rozwiązanie: sprawdź, czy długość wejścia jest wielokrotnością 192 i zgłoś błąd, jeśli nie. To natychmiast wychwytuje wszelkie pozostałe bajty zamiast je cicho ignorować. Zmiany w kodzie znajdują się w solana-sdk i są dostarczane z Agave v3.1.0.
1K
Najlepsze
Ranking
Ulubione