Kapitalizacja rynkowa —Wolumen 24h —BTC —Indeks strachu —
MistrzInwestujInwestycje & Zyski
Reklama
Reklama

[[alloc] init] publikuje propozycję Shielded Bitcoin dla prywatnych transakcji

czytaj3520UdziałWersja do druku
[[alloc] init] Publikuje propozycję Shielded Bitcoin w sprawie prywatnych transakcji bitcoinowych

Bitcoin Magazine

[[alloc] init] przedstawia propozycję Shielded Bitcoin umożliwiającą prywatne transakcje Bitcoin

Shielded Bitcoin to propozycja badaczy z [[alloc] init] — Clary Shikhelman, Mishy Komarova i Alekseia Moskvina — dotycząca nowego metaprotokołu zapewniającego prywatność w warstwie bazowej Bitcoin. Umożliwia on realizowanie transakcji Bitcoin z osłoną prywatności bez konieczności angażowania operatorów, wprowadzania soft forków ani innych zmian w konsensusie Bitcoin. Białą księgę znajdziesz tutaj, a ogłoszenie na blogu — tutaj. 

Protokół definiuje strukturę transakcji i protokół indeksowania na potrzeby transakcji zapewniających wysoki poziom prywatności, a jednocześnie wykorzystuje Bitcoin PIPEs do wprowadzania środków do systemu i wyprowadzania ich z niego. Więcej o mechanizmie PIPEs na końcu artykułu. 

Jego projekt jest pod wieloma względami lustrzanym odbiciem Bitcoina: istnieje odpowiednik UTXO (nota), transakcje wykorzystują noty jako dane wejściowe, podobnie jak zwykłe transakcje Bitcoin, świadek dowodzi, że wykorzystanie danych wejściowych zostało odpowiednio autoryzowane, a węzły (w przypadku metaprotokołu — indeksatory) analizują historię transakcji i ustalają bieżący stan: które monety zostały wydane, a które nie, itd. 

Jednak wszystkie szczegóły są zupełnie inne. 

Transakcja Shielded Bitcoin to po prostu blok danych z prefiksem (czymś w rodzaju „shbtc:”), dołączony do transakcji Bitcoin za pomocą OP_RETURN, pola witness lub innej metody przenoszenia danych. Dla Bitcoin nie ma ona żadnego znaczenia: sieć Bitcoin nie weryfikuje jej ani nie egzekwuje wobec niej żadnych reguł. Nieprawidłowe transakcje Shielded Bitcoin mogą więc jak najbardziej trafić do łańcucha, a zadaniem indeksatora Shielded Bitcoin, który pasywnie obserwuje blockchain (czyli węzła), jest ignorowanie transakcji, które nie przechodzą walidacji, i odmowa uwzględnienia ich przy aktualizowaniu stanu sald w sieci.

Indeksator nie usuwa notatek z zestawu niewydanych notatek tak, jak Bitcoin usuwa UTXO. Zamiast tego używa zbioru nullifierów. Dzięki niemu użytkownik może publicznie opublikować zaszyfrowany dowód i nullifier potwierdzające wydanie notatki, nie ujawniając, która notatka została wydana. Chodzi o to, że zamiast sprawdzać, czy notatka znajduje się w „zestawie niewydanych notatek”, sprawdza się, czy dany nullifier został już użyty. Indeksatory budują drzewo Merkle’a, które rośnie bez końca i do którego można jedynie dodawać elementy: obejmuje ono wszystkie utworzone wyjścia notatek, a następnie zbiór nullifierów.

Aby korzystać z tego protokołu, potrzebujesz tylko węzła Bitcoin i indeksatora Shielded Bitcoin. Nie jest potrzebny dostawca usług, koordynator ani żaden stan poza łańcuchem, aby odzyskać środki. Działa to tak samo jak Bitcoin w łańcuchu — potrzebujesz tylko swojego węzła, indeksatora i kluczy.

Każdy portfel użytkownika wyprowadza główny klucz tajny, z którego tworzone są wszystkie pozostałe zestawy kluczy.

Można to sobie wyobrazić podobnie jak w przypadku portfela HD w Bitcoinie. Dzięki tej zależności można wygenerować wiele zestawów adresów. Sk_spend to Twój klucz prywatny, sk_nf służy do unieważniania wyjść notatek, vk_in służy do odszyfrowywania i wyświetlania przychodzących notatek, vk_out służy do wyświetlania Twoich transakcji wychodzących, a sk_view jest używany do wygenerowania adresu odbiorczego.

Gdy użytkownik chce podać komuś adres, na który można wysłać mu środki, generuje wartość dywersyfikatora d podobną do wartości pochodnej, a następnie mnoży tę wartość przez swój sk_view klucz. Ten wynikowy klucz publiczny, pk_d i d stanowi adres użytkownika.

Nadawca generuje następnie losową wartość, r_seed, co jest niezbędne zarówno do szyfrowania wyjścia notatki, jak i do unieważniania (do tego zaraz przejdziemy). Wyjścia transakcji zawierają tylko trzy zaszyfrowane elementy: wartość wyjścia,d wartość przekazaną nadawcy przez odbiorcę oraz wartośćr_seed wartość. Nadawca używa tajnej efemerycznej pary kluczy oraz klucza publicznego odbiorcy, aby utworzyć wspólny sekret. Obie strony mogą wygenerować ten sam sekret, mnożąc swój klucz prywatny przez klucz publiczny drugiej strony. Dane wyjściowe notatki są szyfrowane przy użyciu tego wspólnego sekretu, a efemeryczny sk_eph jest dołączony w postaci niezaszyfrowanej, aby odbiorca mógł wygenerować wspólny sekret. 

Po stronie wejścia na ilustracji potrzebne są dwie rzeczy, aby transakcja była prawidłowa: publiczny nullifikator dla zużytych wyjść notatek oraz dowód z wiedzą zerową wykazujący, że 1) wyjście notatki znajduje się w drzewie Merkle’a notatek, 2) transakcja została autoryzowana przy użyciu odpowiedniego sk_spend klucza, 3) nullifikator został poprawnie wyprowadzony oraz 4) nie doszło do inflacji. 

Jeśli przyjrzysz się powyższej ilustracji, zauważysz, że nullifikator wykorzystuje klucz sk_nf oraz wartość ρ wyprowadzoną z r_seed, oraz pozycja notatki w drzewie Merkle’a wyjść notatek. Dowód z wiedzą zerową gwarantuje to wszystko, dlatego zamiast usuwać wydane notatki, możesz po prostu zliczać nullifikatory, aby wykrywać powtórzenia. Chociaż nigdy nie wiesz, któremu wyjściu notatki odpowiada dany nullifikator, dowody z wiedzą zerową w każdej transakcji gwarantują, że każdy nullifikator dodany do zbioru pochodzi z prawidłowego wyjścia notatki. Dopóki nie ma powtórzeń, zapewnia to taką samą ochronę przed podwójnym wydatkowaniem.

Oto więc, jak ten protokół pozwala zasadniczo osadzać zaszyfrowane transakcje metaprotokołu na blockchainie Bitcoina, a jednocześnie gwarantuje, że żadne środki nie są wydawane podwójnie ani tworzone z niczego.

To bardzo dobrze zaprojektowany system pod względem właściwości związanych z prywatnością, dorównujący takim rozwiązaniom jak pule shielded w Zcash. Przy wchodzeniu do metaprotokołu i wychodzeniu z niego trzeba uwzględnić kwestie prywatności, które zostaną szczegółowo omówione w przygotowywanej publikacji. Nie ma tu obaw związanych z mierzeniem prywatności ani okresowym mieszaniem monet, jak w przypadku coinjoinów.

A więc mechanizm powiązania. Celem jest zbudowanie go z wykorzystaniem PIPEs v2 — schematu szyfrowania świadka. PIPEs pozwalają zaszyfrować klucz prywatny za pomocą programu/mechanizmu, który nie ujawni klucza, dopóki nie przedstawisz dowodu ZK potwierdzającego spełnienie określonego warunku (np. stanu jakiegoś UTXO, potwierdzenia transakcji itp.). Dzięki temu mechanizm powiązania mógłby działać bez operatora, federacji ani przechowywania środków przez jakąkolwiek stronę trzecią. 

Nie wymaga to żadnych soft forków ani zmian w protokole Bitcoin i odbywa się w całości poza łańcuchem. 

Plan dotyczący Shielded Bitcoin i kolejny etap prac nad projektem zakładają opracowanie mechanizmu powiązania, który umożliwi użytkownikom wpłacanie środków do Shielded Bitcoin za pomocą kluczy kontrolowanych kryptograficznie przez PIPEs. Klucze te byłyby następnie „odblokowywane” przez wygenerowanie dowodu ZK potwierdzającego, że prawidłowe transakcje wyprowadzające środki z mechanizmu powiązania zostały zatwierdzone w łańcuchu. 

Trwają prace nad artykułem opisującym ten aspekt systemu; jego publikacja powinna nastąpić w najbliższej przyszłości.

Ten wpis [[alloc] init] Shielded Bitcoin przedstawia propozycję prywatnych transakcji Bitcoin. Po raz pierwszy ukazał się w Bitcoin Magazine, a jego autorem jest Shinobi.

Źródło: BitcoinMagazine

Więcej na temat «Wiadomości o kryptowalutach»

Wszystkie posty
Losowy cytat o pieniądzach
Cena to wartość plus rozsądne wynagrodzenie za wyrzuty sumienia przy jej ustalaniu.
— Ambrose Bierce

Interesujące w innych sekcjach

Cały blog

Komentarze 0

Brak komentarzy

Bądź pierwszym, który podzieli się swoją opinią lub doświadczeniem na ten temat.

Reklama