Bitzuma

17 lutego 2021
Category: Konto Bankowe

Przez Rich Apodaca | Zaktualizowano 25 maja 2018 r

Bitcoin może być chłodno nie wybaczający błędów, a nigdzie nie jest to lepiej pokazane niż w przypadku zmiany adresu. Chociaż zmiana adresów stanowi kluczowe narzędzie ochrony prywatności, może również prowadzić do nieporozumień, utraty lub kradzieży, gdy nie są zrozumiane.

Ten artykuł wyjaśnia, jak bezpiecznie korzystać z jednej z najmniej poznanych funkcji Bitcoin. Kończy się listą typowych pułapek i sposobów ich uniknięcia.

Ten artykuł został opublikowany po raz pierwszy w marcu 2014 r. Od tego czasu oprogramowanie portfela zostało ulepszone, eliminując niektóre z zagrożeń opisanych poniżej. W szczególności przypadki (1) i (4) powinny występować tylko w przypadku korzystania ze starszego, nieobsługiwanego oprogramowania.

Karta debetowa z piekła rodemWyobraź sobie, że płacisz za zakupy kartą debetową. Kontroler sumuje należną kwotę i jak zwykle przeciągasz kartę. Jednak zauważysz, że terminal płatniczy prosi o wszystkie pieniądze na Twoim koncie.

Kontroler uśmiecha się, wyjaśniając, że jest to część nowego programu lojalnościowego Twojego banku. Masz trzy możliwości: (1) wysłać zmianę z powrotem na swoje obecne konto; (2) przesłać zmianę na nowo utworzone konto bankowe; lub (3) nic nie mów i wyślij zmianę do firmy obsługującej terminal płatniczy.

Przeciwny? Zagmatwane? Niepokojące? Wielu użytkowników Bitcoin jest zaskoczonych, widząc niesamowite podobieństwa między tą diabelską kartą debetową a sposobem, w jaki transakcje wydają się działać.

Myślenie o Bitcoinie w kontekście wcześniejszych doświadczeń z bankowością internetową i kartami debetowymi może prowadzić do problemów. Na szczęście starsza metoda płatności zapewnia lepszy wgląd w działanie Bitcoin.

Bitcoin to elektroniczna gotówkaPodobieństwa między Bitcoinem a gotówką są głębokie. W swojej białej księdze Satoshi Nakamoto opisał nawet Bitcoin jako „elektroniczny system gotówkowy. Zrozumienie ścisłego związku między Bitcoinem a fizyczną gotówką jest kluczem do zrozumienia zmian adresów.

Wyobraź sobie, że musisz śledzić różne zbiory papierowych banknotów, być może w ramach zbiórki. Możesz użyć kopert, aby fizycznie oddzielić rachunki od siebie – „koperty na gotówkę.

Adres Bitcoin można traktować jako cyfrowy odpowiednik koperty z gotówką.

Koperta gotówkowa. Adres Bitcoin jako cyfrowa „koperta gotówkowa

Podobnie jak koperta na gotówkę, adres może pomieścić zero lub więcej jednostek gotówki elektronicznej. Zamiast papierowych rachunków Bitcoin używa elektronicznego odpowiednika: „niewykorzystanych wyników. Aby znaleźć równowagę dowolnego adresu, sumujemy wartości każdego powiązanego niewydanego wyniku. W podobny sposób kwotę przechowywaną w kopercie z gotówką można znaleźć sumując wartości wszystkich rachunków.

Transakcja Bitcoin przenosi własność jednego lub więcej niewydanych wyjść. Kontynuując przykład na papierze, transakcja teleportuje jeden lub więcej rachunków z jednej lub więcej kopert do jednej lub więcej kopert. Jednak podobnie jak wiele analogii Bitcoin, ta nie oddaje całej sytuacji. Bardziej trafnym stwierdzeniem byłoby stwierdzenie, że rachunki można ponownie zmaterializować w dowolnym zestawie nominałów, pod warunkiem że suma ich wartości jest mniejsza lub równa wartości zdematerializowanych rachunków. Bardziej szczegółowe wyjaśnienie może być pomocne podczas czytania tego artykułu.

Jak działają transakcje BitcoinWyobraź sobie, że Alicja, która kontroluje adres zawierający jedno niewydane wyjście o wartości 10 bitcoinów (BTC), chce zapłacić Bobowi 10 bitcoinów. Alicja robi to w ten sposób, że transakcja wysyła jej pojedyncze niewydane dane wyjściowe na pusty adres Boba. W ten sposób saldo adresów Alicji spada do zera, a saldo adresów Boba wzrasta do 10 bitcoinów.

Jedna transakcja wyjściowa Alicja płaci Bobowi 10 BTC, wykorzystując jej jedyne niewydane wyjście. Saldo adresów Alicji spada o 10 BTC. Bob’s rośnie o 10 BTC. Alice nie może ponownie wydać 10 BTC.

Po transakcji Bob może przekazać niewydane dane wyjściowe, które otrzymał od Alicji, komuś innemu. Jednak Alice nie będzie mogła odebrać niewydanego produktu, który przekazała, ani nie będzie mogła go ponownie wydać.

Kilka dni później Alicja chce zapłacić Bobowi 5 BTC z adresu zawierającego pojedyncze wyjście o wartości 10 BTC. Alice ma problem: musi zapłacić Bobowi, ale nie chce dać mu wszystkich 10 BTC. Alice nie mogłaby zgrać 10 dolarów na pół, żeby zapłacić Bobowi 5 dolarów. Podobnie, Bitcoin wymaga od Alice wydania całej wartości swoich 10 BTC.

Aby rozwiązać ten dylemat, Alice wykorzystuje transakcję, która dzieli jej płatność, funkcję w pełni obsługiwaną przez Bitcoin. Jedna część transakcji wysyła 5 BTC na adres Boba, a druga zwraca 5 BTC z powrotem na jej własny. W podobny sposób Alicja mogła rozbić 10-dolarowy banknot w banku na dwa 5-dolarowe banknoty, jeden dając Bobowi i zatrzymując jeden dla siebie.

Zmiana adresu transakcji. Alice płaci Bobowi 5 BTC. Nie mając niewydanego wyniku w prawidłowej kwocie, Alicja dzieli transakcję na płatność 5 BTC na rzecz Boba i płatność za zmianę w wysokości 5 BTC na siebie. Zarówno Alice, jak i Bob mogą teraz używać swoich odpowiednich niewykorzystanych 5 BTC wyjść.

Z biegiem czasu adres Alicji gromadzi niewydane informacje od ludzi, którzy jej zapłacili. Jej adres zawiera teraz niewydane wyjścia wyceniane na 20 BTC, 10 BTC i 5 BTC.

Po raz kolejny Alice zapłaciła Bobowi – tym razem 8 BTC. Alice tworzy transakcję, która rozdziela jej niewydane 10 BTC, wysyłając 8 BTC na adres Boba i zwracając 2 BTC na swój własny w ramach zmiany. Saldo adresowe Alicji spada do 27 BTC, a saldo adresu Boba wzrasta do 8 BTC.

Zmień adres z wieloma wyjściami. Alice płaci Bobowi 8 BTC. Jej adres nie zawiera niewydanych 8 BTC, więc używa jednego o wartości 10 BTC, otrzymując pozostałe 2 BTC jako zmianę.

W poprzednich przykładach Alicja skierowała zmianę na ten sam adres, z którego spędziła. Chociaż ta decyzja uprościła księgowość, niestety zmniejszyła prywatność Boba, a także jej własną.

Zmień adresy i prywatnośćZ założenia każda transakcja Bitcoin jest stale widoczna w globalnym dzienniku publicznym zwanym „łańcuchem bloków. Prywatność zależy od ścisłego oddzielenia adresów i tożsamości osobistych, modelu określanego jako pseudonim .

Każdy obserwator, który potrafi powiązać adresy Bitcoin z tożsamością osobistą, może zacząć wyciągać wnioski na temat transferów pieniężnych między ludźmi. Użytkownicy utrudniają to zadanie, wysyłając zmiany na nowo utworzone adresy.

Aby zobaczyć, dlaczego, wyobraź sobie transakcję, która wysyła środki z adresu A na adres B. Jeśli zmiana jest zwracana na adres A, łańcuch bloków ujawnia, że ​​osoba kontrolująca adres A zapłaciła osobie kontrolującej adres B.To samo rozumowanie zachodzi, jeśli dwie lub więcej adresy są zaangażowane. Każda transakcja, w której Adres A jest nadawcą, jednoznacznie ujawnia adres odbiorcy.

Zmień adres to nadawca. Zmiana jest zwracana na adres nadawczy. Planowany odbiorca jest oczywisty poprzez odliczenie.

Gdyby tożsamość osoby kontrolującej adres do odbioru lub adres płatności stała się znana, tożsamość innych stron również mogłaby stać się znana.

Teraz wyobraź sobie, że adres A inicjuje płatność do B, ale tym razem kieruje zmianę na nowo wygenerowany adres zmiany C.Nie wiedząc, który adres otrzymuje zmianę, możemy jedynie wywnioskować, że transakcja dzieli saldo adresu A na adresy B i C. Tożsamość osoby kontrolującej Adres B lub C może, ale nie musi być taka sama, jak tożsamość osoby kontrolującej Adres A. Biorąc pod uwagę kolejną transakcję z Adresu C, obraz staje się jeszcze bardziej mętny. Które z przelewów reprezentują płatności, a które potwierdzenie zmiany?

Zmień adres nie jest nadawcą. Zmiana jest zwracana do nowo utworzonego adresu zmiany. Docelowy odbiorca jest niejednoznaczny.

Obserwator próbujący połączyć tożsamość osobistą z adresami musi zebrać więcej drugorzędnych informacji i wydać więcej zasobów, gdy wszystkie strony wysyłają zmiany do nowo utworzonych adresów.

Koordynacja wielu adresów to skomplikowane zadanie. Oprogramowanie portfela uwalnia użytkownika od konieczności wykonywania tego ręcznie.

Portfele i zmiana adresówChociaż zmiana adresów odgrywa kluczową rolę w poprawie prywatności, programiści portfeli mogą wdrożyć tę funkcję na wiele sposobów. Obecnie w użyciu są cztery strategie, z których każda ma swoje konsekwencje dla prywatności i bezpieczeństwa.

  • Portfele z jednym adresem używają jednego adresu do otrzymywania płatności i zmian. Dodatkowe adresy mogą zostać dodane po ręcznym dodaniu adresu odbiorcy lub zaimportowaniu klucza prywatnego. Przykładem jest obecnie nieobsługiwany MultiBit Classic.
  • Losowe portfele z puli adresów korzystają z puli losowo generowanych adresów o stałym rozmiarze. Zmiana jest wysyłana na następny dostępny pusty adres, powodując utworzenie nowego pustego adresu w jego miejsce. Najbardziej znanym przykładem był Bitcoin-Qt, dopóki jego funkcjonalność obsługi kluczy nie została zaktualizowana. Deterministyczna pula adresów Portfele zawierają praktycznie nieskończoną pulę deterministycznie generowanych adresów. Podzbiór tej puli zawiera adresy zarezerwowane do przyjmowania zmian. Przykłady obejmują Electrum i Armory. Portfele hybrydowe wykorzystują wiele strategii, w zależności od kontekstu. Przykładami są MultiBit, Mycelium i Electrum.Rozważmy teraz kilka sposobów, w jakie niezrozumienie zmiany adresów w połączeniu z częściowo ręcznym zarządzaniem adresami może prowadzić do utraty lub kradzieży funduszy.

    Zapobieganie i odzyskiwanie po katastrofach związanych ze zmianą adresuNieprawidłowe użycie adresu zmiany Bitcoin jest przyczyną wielu przypadków utraty lub kradzieży środków. Oto kilka scenariuszy katastrof i sposobów ich uniknięcia.

    1. Awaria kopii zapasowej

    Alice używa starej wersji Bitcoin-Qt. Rozumiejąc, jak ważne są kopie zapasowe, dawno temu utworzyła zaszyfrowaną kopię zapasową portfela i przechowała ją w bezpiecznym miejscu. Po dokonaniu dziesiątek transakcji za pomocą Bitcoin-Qt, dysk twardy Alice uległ awarii.

    Alice kupiła nowy dysk twardy, a następnie ponownie zainstalowała na nim Bitcoin-Qt. Następnie przywróciła kopię zapasową portfela. Ku swojemu przerażeniu Alice odkryła, że ​​odzyskany portfel jest pusty.

    Wyjaśnienie: Alicja wygenerowała wystarczającą liczbę adresów zmian, aby przepełnić pierwotną pulę 100. Podczas setnej transakcji wydatkowania Bitcoin-Qt przeniósł zmianę Alicji (która była całym jej saldem) na adres, którego nie ma w kopii zapasowej. Przywracanie kopii zapasowej przywróciło tylko puste adresy.

    Odzyskiwanie: nawet jeśli z dysku twardego nie można uruchomić systemu operacyjnego, pojedyncze pliki można nadal odzyskać. Korzystając z narzędzi do odzyskiwania danych, Alicja może być w stanie odzyskać portfel Bitcoin-Qt z uszkodzonego dysku twardego, a wraz z nim utracone fundusze.

    Zapobieganie:

    • Policz liczbę ręcznie utworzonych adresów i transakcji wydatków od ostatniej kopii zapasowej. Jeśli ta liczba jest większa niż około 80, wykonaj kopię zapasową ponownie. Cotygodniowe kopie zapasowe mogą wystarczyć większości użytkowników.
    • Ustaw bardzo wysoką wartość (np. 10 000) dla opcji -keypool, albo jako parametr wiersza poleceń, albo w pliku bitcoin.conf.Przejdź na deterministyczny portfel.2. Brak monitorowania zmiany adresu

      Bob używa Electrum do wysyłania rzadkich płatności w bitcoinach. Martwiąc się możliwą kradzieżą, chciał mieć oko na saldo bitcoinów z jednego ze swoich wielu urządzeń.

      Bob zdecydował się na blockchain.info, aby monitorować aktywność adresów. Portfel Electrum Boba zawierał kilka adresów, ale tylko jeden z nich zawierał bitcoiny (0,3 BTC). Zakładając, że był to jedyny adres, którego używał, Bob wkleił go do okna wyszukiwania blockchain.info i dodał zakładkę do wynikowej strony.

      Kilka tygodni później Bob dokonał płatności w wysokości 0,2 BTC na rzecz Overstock ze swojego portfela Electrum. Po otrzymaniu towaru Bob postanowił sprawdzić swoje saldo na blockchain.info.

      Niepokojące było to, że Bob odkrył, że część jego płatności za Overstock została przekazana na nieznany adres. Myśląc, że jego komputer z systemem Electrum został naruszony, Bob ponownie sformatował dysk twardy.

      Wyjaśnienie: Chociaż Bobowi może się wydawać, że podsłuchiwacz zmienił transakcję przed wysłaniem jej do Overstock, zamiast tego widzi wynik normalnej operacji portfela. Electrum wysłał zmianę z transakcji Boba na jeden ze swoich deterministycznie generowanych adresów zmiany. To wyczyściło saldo z adresu nadawcy, jedynego, który Bob monitorował.

      Odzyskiwanie: Electrum zachęca do przechowywania 12-słowowego ziarna generowania adresu w bezpiecznym miejscu. Jeśli Bob nadal będzie miał dostęp do nasion, może ponownie wygenerować swój stary portfel i odzyskać zmianę z transakcji Overstock.

      Zapobieganie:

      • Jeśli używasz deterministycznego portfela, utwórz portfel tylko do oglądania, aby monitorować adresy.
      • Jeśli korzystasz z Bitcoin-Qt, ręcznie aktualizuj listę adresów zegarków po każdej płatności lub przełącz się na deterministyczny portfel.3. Wydatki z portfela papierowego

        Carlos jest wybawcą. Jakiś czas temu kupił 20 bitcoinów po 10 dolarów za sztukę, a następnie przeniósł je do portfela papierowego, który utworzył na bitaddress.org. Od tamtej pory nic nie zrobił z Bitcoinem.

        Pewnego dnia Carlos zauważył umowę dotyczącą nowych laptopów w Overstock i postanowił zapłacić jednym ze swoich zapisanych bitcoinów. Ale Carlos miał problem: musiał umieścić swój portfel papierowy w portfelu programowym, aby zapłacić Overstock.

        Carlos pobrał MultiBit i zaimportował klucz prywatny swojego portfela papierowego. Po zapłaceniu Overstock wyszedł z programu.

        Carlos martwił się pozostawieniem jakichkolwiek śladów swojego klucza prywatnego na swoim komputerze, więc bezpiecznie usunął MultiBit i jego katalog danych. Następnie odłożył portfel papierowy w bezpieczne miejsce.

        Po kilku tygodniach Carlos sprawdził stan swojego papierowego portfela. Ku jego szokowi saldo wskazywało zero. Dziewiętnaście bitcoinów zostało wysłanych na nieznany adres w tym samym dniu co płatność Overstock.

        Wyjaśnienie: Carlos podejrzewa nieczystą grę, ale tak naprawdę widzi wynik normalnego zachowania portfela. 19 brakujących bitcoinów zostało wysłanych na adres zmiany, pozostawiając jego papierowy portfel pusty.

        Odzyskiwanie: podczas bezpiecznego usuwania katalogu danych MultiBit Carlos stracił szansę na odzyskanie brakujących środków.

        Zapobieganie:

        • Przed usunięciem dowolnego gorącego portfela za pomocą klucza prywatnego zaimportowanego portfela papierowego wyślij pozostałe saldo z powrotem do portfela papierowego.
        • Użyj portfela programowego, który przywróci zmianę do portfela papierowego. Jednym z przykładów jest grzybnia. Innym jest Blockchain.info z opcją „niestandardowych wydatków. Oba podejścia przywróciłyby zmianę w portfelu papierowym, chociaż takie postępowanie pogarsza prywatność.4. Udostępnianie portfela

          Dave obsługuje Bitcoin-Qt na dwóch komputerach, laptopie i komputerze stacjonarnym w swoim garażu. Chcąc używać obu komputerów do dokonywania płatności, Dave skopiował czysty plik kopii zapasowej wallet.dat z laptopa na pulpit.

          Po dokonaniu wielu płatności bez problemu z obu komputerów, Dave pewnego dnia zauważył coś dziwnego. Jego portfel na laptopa wskazywał zerowe saldo, ale portfel na komputerze stacjonarnym pokazywał prawidłowe saldo.

          Wyjaśnienie: Sieć komputerowa Dave’a nie została naruszona, ani nie odkrył on błędu w Bitcoin-Qt. Zamiast tego jego kopia Bitcoin-Qt działająca na komputerze stacjonarnym wykorzystywała ostatni dostępny adres puli przechowywany wspólnie z laptopem. Podczas ostatniej transakcji zmiana Dave’a została wysłana na adres wygenerowany na pulpicie, ale nieznany w portfelu.

          Działanie: Utwórz kopie zapasowe portfeli na laptopie i komputerze stacjonarnym. Wyeksportuj wszystkie klucze prywatne z obu komputerów i umieść je w nowym portfelu. Jeśli udostępnianie portfeli jest krytyczne, nie kontynuuj korzystania z Bitcoin-Qt.

          Zapobieganie:

          • Nie używaj starych wersji Bitcoin-Qt do udostępniania portfeli wielu komputerom. Użyj Electrum lub nowszej wersji Bitcoin Core, które zostały zaprojektowane specjalnie z myślą o tym przypadku użycia.5. Kradzież z importowanego portfela papierowego

            Frank otrzymał w prezencie papierowy portfel zawierający 2 BTC na imprezie firmowej. Chcąc zobaczyć, jak działa Bitcoin, zainstalował MultiBit i zaimportował klucz prywatny portfela papierowego. Nie widząc potrzeby trzymania papierowego portfela, Frank wrzucił go do kosza na śmieci w swoim biurze.

            Z biegiem czasu Frank wyczerpał swoje fundusze Bitcoin. Aby ponownie zasilić swój portfel, Frank kupił dodatkowe 2 BTC od Coinbase, a następnie przeniósł je do swojego portfela MultiBit.

            Wkrótce potem Frank kupił zestaw arkuszy od Overstock za 0,1 BTC. Chociaż płatność została potwierdzona bez problemu, Frank zauważył coś dziwnego. Bez jego zgody dokonano drugiej wypłaty na nieznany adres, opróżniając jego portfel z pozostałych 1,9 BTC.

            Objaśnienie: Chociaż Frank padł ofiarą kradzieży, drogą ataku nie był jego komputer ani sieć. To był papierowy portfel, który wrzucił do kosza na śmieci.

            Nieznany Frankowi papierowy portfel został zabrany z kosza na śmieci przez Eve, nieuczciwą współpracowniczkę. Ewa dodała klucz prywatny do niestandardowego programu, który automatycznie wykrywa depozyty na liście obserwowanych adresów, a następnie natychmiast je wycofuje.

            MultiBit, działając zgodnie z założeniami, wykorzystał importowany adres portfela papierowego, aby otrzymać 1,9 BTC w zamian za płatność Franka za nadmiar zapasów. Program Eve zauważył transfer i natychmiast wycofał środki.

            Ewa dokonała napadu bez dostępu do komputera Franka ani nawet wiedzy o tożsamości Franka. Plan zadziałał, ponieważ Ewa znała jeden z kluczy prywatnych używanych do otrzymywania reszty w portfelu MultiBit Franka.

            Odzyskiwanie: Frank nie może odzyskać funduszy ani nie jest prawdopodobne, aby ustalił tożsamość złodzieja.

            Zapobieganie:

            • Zamiatanie portfela papierowego generuje transakcję przenoszącą wszystkie niewydane wyniki na adres portfela, co wyczerpuje portfel papierowy. Klucz prywatny portfela papierowego nigdy więcej nie jest używany przez oprogramowanie portfela. Jeśli nie masz ważnego powodu, aby postąpić inaczej, zamiast importować je, zamiataj portfele papierowe. Jest to szczególnie ważne w przypadku portfeli papierowych, których sam nie wygenerowałeś w bezpieczny sposób.Częściowa utrata środkówChociaż przykłady z poprzedniej sekcji spowodowały całkowitą utratę środków, te same mechanizmy pozwalają również na częściową utratę . Założono te warunki, które mogą, ale nie muszą obowiązywać w momencie pojawienia się problemu ze zmianą adresu:

              1. Całe saldo portfela znajduje się pod jednym adresem.
              2. Ten pojedynczy adres zawiera jedno niewydane wyjście.Na przykład pojedynczy adres, który otrzymuje wiele płatności, będzie zawierał wiele niewydanych produktów. Podobnie salda w portfelu mogą zostać rozdzielone na wiele adresów zmian, gdy użytkownik wydaje środki.

                Wyobraź sobie, że portfel Alicji zawiera dwa adresy, Adres 1 i Adres 2, o łącznej wartości 15 BTC. Aby dokonać płatności za 6 BTC, portfel wybiera 7 niewydanych BTC z adresu 1, otrzymując 1 zmianę BTC na adres 2. Zgodnie z oczekiwaniami, jej saldo portfela spada do 9 BTC.

                Utracone niewykorzystane dane wyjściowe adresu. Alice traci 1 BTC po przywróceniu kopii zapasowej, w której brakowało adresu zmiany.

                Potem następuje katastrofa – dysk twardy Alicji ulega awarii. Po zainstalowaniu nowego dysku twardego i przywróceniu kopii zapasowej portfela Alicja zauważa coś dziwnego. Przed awarią dysku twardego saldo jej portfela wynosiło 9 BTC. Ale saldo odczytuje tylko 8 BTC po odzyskaniu kopii zapasowej. Dlaczego wydaje się, że brakuje 1 BTC?

                Alice korzystała z portfela z losowej puli adresów, w którym adres 2 nie był zawarty w jej oryginalnej kopii zapasowej. Przywrócenie kopii zapasowej sprawiało wrażenie, że Adres 2 „zniknął, a wraz z nim 1 BTC wydany na wyjście, które zawierał.

                W pewnym sensie Alice miała szczęście, ponieważ mogła stracić cały stan swojego portfela. Z drugiej strony, bez zrozumienia zmian adresów, Alice prawdopodobnie byłaby bardzo zdezorientowana co do tego, co stało się z brakującym 1 BTC. Ten sam błąd może się powtórzyć.

                WnioskiPrzy prawidłowym użyciu kierowanie zmian na nowo wygenerowany adres promuje prywatność. Ale z tą możliwością wiąże się możliwość utraty i kradzieży. Aby uniknąć potencjalnie kosztownych błędów, zapoznaj się ze zmianami adresów i sposobem ich implementacji w oprogramowaniu portfela.

                DziękiJestem wdzięczny członkom Bitcoin Subreddit, którzy pomogli wyjaśnić dwie kluczowe kwestie techniczne w oryginalnej wersji tego artykułu.

We use cookies to provide you with the best possible experience. By continuing, we will assume that you agree to our cookie policy