name: Akcelerator rozwoju Bitcoin goal: Zdobądź wszystkie fundamenty, aby rozpocząć rozwój na Bitcoin objectives:
- Zrozumienie podstawowych koncepcji i technologii leżących u podstaw Bitcoin.
- Zdobądź praktyczne umiejętności w zakresie bezpieczeństwa Bitcoin, rozwoju oprogramowania i zarządzania siecią.
- Opanowanie Lightning Network i powiązanych z nim protokołów.
Witamy na kursach programowania Cubo+ dla Bitcoin!
W ciągu następnych 20 godzin zagłębisz się w protokoły BTC i LN. Ten kurs jest przeznaczony dla programistów, którzy chcą rozpocząć pracę w ekosystemie BTC i szukają solidnego zrozumienia różnych stosów technologicznych BTC i LN.
Filmy zostały nagrane na żywo podczas bootcampu CUBO+ 2023 w Salwadorze i udało im się zgromadzić światowej sławy nauczycieli. Kurs ten był oferowany bezpłatnie dzięki hojności Fulgure Venture i wspólnym wysiłkom nauczycieli, biura Bitcoin, DecouvreBitcoin i wielu innych podmiotów.
Miłego oglądania!
Wprowadzenie i kursy przygotowawcze
Wprowadzenie do kursów CUBO
Filippo i Mario wygłaszają wykład wprowadzający na temat CUBO+ 2023, przygotowując grunt pod wszechstronną podróż edukacyjną, która czeka. Omawiają strukturę kursów, efekty uczenia się i sposób, w jaki wzmocnią one pozycję studentów w przestrzeni rozwojowej Bitcoin.
Cele
Kurs ma na celu wyposażenie uczestników w dogłębne zrozumienie podstawowych zasad Bitcoin, praktyczne umiejętności programistyczne oraz zdolność do efektywnego poruszania się i współtworzenia ekosystemu Bitcoin. Dzięki połączeniu wiedzy teoretycznej i praktycznych ćwiczeń, studenci opanują podstawy bezpieczeństwa Bitcoin, zawiłości jego stosu oprogramowania i mechanizmy jego zarządzania.
Warunek wstępny
Od uczestników oczekuje się silnego poczucia ciekawości, chęci uczenia się na profesjonalnym poziomie i pewnej podstawowej wiedzy w zakresie rozwoju. Chociaż szczegółowe doświadczenie w Bitcoin nie jest wymagane, podstawowe zrozumienie zasad kodowania i otwartość na angażowanie się w złożone koncepcje techniczne są niezbędne do jak najlepszego wykorzystania akceleratora.
Narzędzia
Podczas całego kursu uczestnicy będą korzystać z kluczowych narzędzi, które pomogą im zrozumieć i poprawić ich doświadczenie edukacyjne. Wykorzystanie systemu Linux, wiersza poleceń Interface, GitHub i Docker będzie integralną częścią praktycznego podejścia do rozwoju Bitcoin. Narzędzia te ułatwią pracę ze stosem oprogramowania Bitcoin, zarządzanie środowiskami programistycznymi i współpracę nad projektami w warunkach rzeczywistych.
Dlaczego Bitcoin
Dlaczego Salwador potrzebuje Bitcoin
Witamy na pierwszym wykładzie w ramach programu edukacyjnego Cubo Plus. Dziś zagłębiamy się w świat Bitcoin, prowadzony przez Ricky'ego, założyciela Bitcoin Italia Podcast. Ricky jest zapalonym działaczem na rzecz praw człowieka, który wykorzystuje Bitcoin jako narzędzie do ochrony i promowania praw człowieka. Dzięki ponad sześcioletniemu doświadczeniu Ricky odbył wiele podróży, dokumentując adopcję Bitcoin na rynkach wschodzących, takich jak Salwador i Gwatemala. Jego praca wykracza poza podcasty; jest również aktywny na YouTube (Bitcoin Explorers) i Twitterze (BTC Explorer, Ricky6). Zaangażowanie Ricky'ego w Commitment do Bitcoin wynika z jego przekonania, że oferuje on wolność finansową i prywatność, stanowiąc wyzwanie dla tradycyjnych, scentralizowanych systemów bankowych.
globalna populacja nieubankowionych_
Bitcoin: Wolność finansowa i jej wpływ na Salwador
Ten wykład, "Dlaczego Salwador potrzebuje Bitcoin", zawiera przegląd protokołu Bitcoin, jego korzeni w ruchu Cypherpunk i jego roli jako narzędzia umożliwiającego nieocenzurowane pieniądze, integrację finansową i wiele więcej.
Definicje:
- protokół Bitcoin:_ Zasady i struktura, które regulują sposób działania Bitcoin jako zdecentralizowanej waluty cyfrowej.
- ruch_Cypherpunk:_ Grupa opowiadająca się za wykorzystaniem kryptografii w celu zapewnienia prywatności i wolności w przestrzeni cyfrowej.
- integracja finansowa: Zapewnienie dostępu do usług finansowych osobom, które zostały wykluczone z tradycyjnych systemów bankowych, często określanych jako "nieubankowione"
- pieniądze nieocenzurowane:_ Pieniądze, które nie mogą być kontrolowane lub ograniczane przez rządy lub instytucje finansowe.
Tło Ricky'ego i rzecznictwo Bitcoin
Podróż Ricky'ego do Bitcoin jest zakorzeniona w jego pracy jako obrońcy praw człowieka. Uważa on, że Bitcoin może zapewnić jednostkom kontrolę nad ich finansami, pozwalając im chronić swoją prywatność i uniknąć ograniczeń scentralizowanych banków. Jego badania nad przyjęciem Bitcoin w miejscach takich jak Salwador podkreślają, w jaki sposób technologia ta może umożliwić ludziom na rynkach wschodzących uzyskanie niezależności finansowej.
Globalne znaczenie i wyzwania związane z Bitcoin
Bitcoin to znacznie więcej niż tylko cyfrowa waluta. Jest to narzędzie do ochrony prywatności i zapewnienia wolności finansowej. Używając prywatnych kluczy, które działają jak hasła główne, użytkownicy mogą bezpiecznie zarządzać Bitcoin, mając pełną kontrolę nad swoimi środkami.
W reżimach autorytarnych, gdzie represje finansowe są powszechne, nieocenzurowana natura Bitcoin pozwala ludziom na dokonywanie transakcji bez obawy, że ich środki zostaną zamrożone lub skonfiskowane. Jego otwarty charakter zachęca do globalnego uczestnictwa, wspierając społeczność, która stale ulepsza sieć.
Pomimo swojego potencjału, Bitcoin stoi przed poważnymi wyzwaniami. W obszarach takich jak Afryka i Indie często brakuje podstawowej infrastruktury, takiej jak elektryczność i dostęp do Internetu, co ogranicza adopcję. Co więcej, integracja cyfrowa - zapewnienie, że ludzie w każdym wieku i na każdym poziomie wykształcenia mogą korzystać z technologii - pozostaje główną przeszkodą.
Definicje:
- klucze prywatne:_ Tajne kody dające dostęp do Bitcoin użytkownika.
- Open-source: Oprogramowanie, które każdy może sprawdzać, modyfikować i ulepszać.
Przypadek Salwadoru
Decyzja Salwadoru o przyjęciu Bitcoin jako prawnego środka płatniczego pokazuje jego transformacyjny potencjał. Wykorzystując Bitcoin, kraj ten stara się przyciągnąć inwestycje zagraniczne i zwiększyć stabilność finansową. Projekty takie jak Bitcoin Beach pokazują, jak lokalne gospodarki mogą się rozwijać, przyjmując Bitcoin jako środek Exchange.
Jednak globalne przyjęcie Bitcoin napotyka przeszkody, takie jak ignorancja, opór wobec nowych technologii i wyzwania związane z infrastrukturą. Droga do bardziej inkluzywnego systemu finansowego - w którym Bitcoin może pomóc krajom rozwijającym się - jest długa, ale obiecująca. Zdecentralizowany i open-source'owy charakter Bitcoin daje nadzieję na przyszłość, w której sprawiedliwość finansowa będzie dostępna dla każdego.
Wnioski
Podsumowując, Bitcoin niesie ze sobą ogromną obietnicę wzmocnienia pozycji finansowej i integracji, ale przed nami stoją poważne wyzwania. Pozostawanie zaangażowanym w społeczność Bitcoin, uczenie się i zadawanie pytań będzie kluczem do realizacji zdecentralizowanej przyszłości finansowej. Dzięki współpracy i rzecznictwu wizja bardziej sprawiedliwego systemu finansowego dla wszystkich może stać się rzeczywistością.
Ruch Cypherpunk i austriacka ekonomia
Ruch Cypherpunk
Ruch Cypherpunk pojawił się pod koniec XX wieku, opowiadając się za prywatnością i wolnością poprzez kryptografię. Pionierzy tacy jak Eric Hughes i Tim May wierzyli, że silne szyfrowanie jest niezbędne do ochrony wolności osobistej w cyfrowym świecie. Ich idee miały duży wpływ na stworzenie Bitcoin.
Definicja:
- Cypherpunk: Ruch promujący prywatność i wolność przy użyciu kryptografii.
Ekonomia austriacka
Jednocześnie Austriacka Ekonomia stanowiła fundament dla zasad monetarnych Bitcoin. Ekonomiści tacy jak Ludwig von Mises i Friedrich Hayek argumentowali, że zdrowy pieniądz powinien być rzadki, trwały i dobrze przechowywać wartość - podstawowe zasady, które ukształtowały projekt Bitcoin.
Definicja:
- niedobór: Ograniczona dostępność, tworząca wartość poprzez potrzebę starannej alokacji.
Bitcoin's Creation
Satoshi Nakamoto połączył te idee, tworząc Bitcoin w 2008 roku jako zdecentralizowaną, odporną na cenzurę walutę cyfrową. Łącząc ideały prywatności Cypherpunk z austriackimi zasadami zdrowego pieniądza, Bitcoin oferuje system finansowy, który rzuca wyzwanie tradycyjnym bankom i kontroli rządowej.
Definicja:
- Odporne na cenzurę: Pieniądze, które nie mogą być kontrolowane lub blokowane przez siły zewnętrzne.
Kluczowe zasady ekonomiczne
- Niedobór:** Stała wartość Bitcoin zapewnia jego wartość w czasie.
- Preferencje czasowe:** Zachęca do oszczędzania na przyszłość zamiast natychmiastowego wydawania pieniędzy.
- Oszczędzanie:** Przechowywanie wartości na przyszłe potrzeby, co prowadzi do inwestycji i innowacji.
Definicje:
- Preferencja czasowa: Przedkładanie dóbr teraźniejszych nad przyszłe.
- zapisywanie:_ Przechowywanie wartości do wykorzystania w przyszłości.
Bitcoin w Salwadorze
Przyjęcie Bitcoin przez Salwador odzwierciedla jego potencjał jako narzędzia wolności finansowej, zgodnego z Austriacką Ekonomią poprzez promowanie dobrowolnego przyjęcia i decentralizacji. To posunięcie stanowi wyzwanie dla tradycyjnych systemów finansowych poprzez zajęcie się kluczowymi kwestiami: konkurencją, monopolem i konfiskatą.
Konkurencja**: Bitcoin wprowadza konkurencję do krajobrazu finansowego, oferując alternatywę dla tradycyjnej bankowości, umożliwiając Salwadorczykom ominięcie strażników finansowych i wybór usług, które lepiej spełniają ich potrzeby.
Monopol**: Poprzez decentralizację dostępu finansowego, Bitcoin przełamuje monopol banków i walut emitowanych przez rząd, zmniejszając zależność od scentralizowanych instytucji i wspierając włączenie finansowe.
Konfiskata**: Odporność Bitcoin na konfiskatę zapewnia Salwadorczykom kontrolę nad ich aktywami, chroniąc ich majątek przed zewnętrznym zajęciem i zwiększając suwerenność finansową.
Przyjęcie Bitcoin przez Salwador promuje bardziej inkluzywny, konkurencyjny i bezpieczny system finansowy, rzucając wyzwanie ograniczeniom tradycyjnego finansowania.
Wnioski
Fundamenty Bitcoin w ruchu Cypherpunk i ekonomii austriackiej sprawiają, że jest to wyjątkowa i rewolucyjna forma pieniądza. Zrozumienie tych zasad pomaga zrozumieć, dlaczego Bitcoin został stworzony i jak działa dzisiaj. Aby uzyskać więcej informacji, warto rozważyć The Bitcoin Standard autorstwa Saifedean Ammous.
Dziękujemy za zaangażowanie w ten materiał!
Jak Bitcoin
Stos technologii Bitcoin
W pierwszym wykładzie kursu "Jak Bitcoin" rozpoczęliśmy badanie stosu technologicznego, który leży u podstaw sieci Bitcoin. Omówiliśmy takie tematy jak Hashcash, transakcje, Blockchain, Lightning Network i inne kluczowe komponenty protokołu Bitcoin.
Stos technologiczny Bitcoin, część 2
Podczas drugiego wykładu "Jak Bitcoin" przeprowadziliśmy bardziej dogłębną analizę stosu technologii Bitcoin.
Struktura Bitcoin
Początki Bitcoin opierają się na kilku kluczowych innowacjach, począwszy od Adam Back's Hashcash, systemu Proof-of-Work (PoW) zaprojektowanego w celu zapobiegania spamowi e-mail i atakom typu denial-of-service poprzez wymaganie od nadawców wykonywania zadań obliczeniowych. Ta koncepcja PoW stała się kamieniem węgielnym bezpieczeństwa Bitcoin.
Bitcoin opiera się na podpisach cyfrowych wykorzystujących kryptografię krzywej eliptycznej w celu zabezpieczenia i weryfikacji transakcji. Algorytm podpisu cyfrowego krzywej eliptycznej (ECDSA)** zapewnia, że tylko prawowity właściciel Bitcoin może autoryzować transakcje bez ujawniania swoich kluczy prywatnych.
Satoshi Nakamoto, pseudonimowy twórca Bitcoin, rozszerzył te pomysły, przekształcając model PoW w zdecentralizowany Blockchain. Pozwoliło to rozproszonej sieci węzłów na walidację i rejestrowanie transakcji bez centralnego organu, oznaczając znaczącą ewolucję w stosunku do poprzednich prób cyfrowej waluty.
Definicje:
- Proof-of-Work (PoW): System, w którym uczestnicy muszą rozwiązywać zagadki obliczeniowe w celu walidacji transakcji i zabezpieczenia sieci.
- kryptografia krzywych eliptycznych (ang. Elliptic Curve Cryptography): metoda kryptograficzna umożliwiająca bezpieczne i wydajne podpisy cyfrowe.
Mechanika Blockchain i walidacja transakcji
Transakcje Bitcoin są zatwierdzane i dodawane do bloków przez minerów, którzy rywalizują o rozwiązanie zagadki kryptograficznej przy użyciu algorytmu Proof-of-Work. Obejmuje to znalezienie Hash z określoną liczbą zer wiodących poprzez dostosowanie wartości Nonce, aż do znalezienia prawidłowego Hash.
Każdy blok w Blockchain składa się z nagłówka (z danymi jak w poprzednim bloku Hash) i listy transakcji. Pierwszy blok, znany jako blok Genesis, jest unikalny, ponieważ nie ma poprzednika.
Zanim transakcje zostaną włączone do bloku, znajdują się w Mempool, gdzie oczekują na walidację. Po zatwierdzeniu transakcje te są dodawane do nowo wydobytego bloku, a następnie do Blockchain.
Definicje:
- Mining: Proces rozwiązywania zagadek kryptograficznych w celu dodania nowych bloków do Blockchain.
- Nonce: Wartość używana do znalezienia prawidłowego Hash podczas Mining.
- Mempool: Obszar oczekiwania na niepotwierdzone transakcje przed ich dodaniem do bloku.
Skalowalność, prywatność i rozwój w Bitcoin
Bitcoin stoi przed wyzwaniami związanymi ze skalowalnością i prywatnością. Ograniczona pojemność transakcyjna Blockchain utrudnia obsługę dużych wolumenów transakcji. Rozwiązania takie jak Lightning Network Address stawiają czoła tym wyzwaniom, umożliwiając transakcje off-chain za pośrednictwem kanałów płatności, które zwiększają szybkość i prywatność.
Uruchomienie Full node jest niezbędne do zapewnienia decentralizacji i bezpieczeństwa, ale Uproszczone węzły weryfikacji płatności (SPV) pozwalają na mniejszy udział kosztem pewnego bezpieczeństwa.
Rozwój Bitcoin ewoluował w celu poprawy wydajności i bezpieczeństwa. Główne aktualizacje obejmują Segregated Witness (SegWit), który rozwiązuje problem podatności transakcji i zwiększa efektywny rozmiar bloku, oraz Taproot, który poprawia prywatność i pozwala na bardziej złożone kontrakty przy użyciu Merkleized Abstract Syntax Trees (MAST).
Definicje:
- SegWit: Aktualizacja Bitcoin, która oddziela dane podpisu od danych transakcji, poprawiając wydajność.
- Taproot: Aktualizacja, która zwiększa prywatność i skalowalność Bitcoin, umożliwiając bardziej złożone inteligentne kontrakty.
- Lightning Network: Drugie rozwiązanie Layer dla szybszych i tańszych transakcji Bitcoin przy użyciu kanałów płatności.
Wnioski
Struktura i ciągła ewolucja Bitcoin pokazują innowacyjność i zdolność adaptacji jego technologii. Od Hashcash do zdecentralizowanego Blockchain i od SegWit do Taproot, Bitcoin kontynuuje wyzwania Address związane ze skalowalnością, prywatnością i bezpieczeństwem. Ciągłe wysiłki społeczności zapewniają, że Bitcoin pozostaje odporny i zdecentralizowany, a jednocześnie ewoluuje, aby sprostać wymaganiom przyszłości.
Obalenie Bitcoin
Obalanie Bitcoin
W tym wykładzie obalamy powszechne mity dotyczące Bitcoin, blockchainów i kryptowalut. Obalimy 99 błędnych przekonań na temat zużycia energii przez Bitcoin, przestępczego wykorzystania i szerszego "FUD" (strach, niepewność, wątpliwości) rozpowszechnianego na temat tej technologii.
Bitcoin vs. Blockchain
Częstym błędnym przekonaniem jest to, że Bitcoin i Blockchain to to samo. Podczas gdy Bitcoin jest walutą cyfrową, Blockchain jest technologią, która ją zasila. Łańcuchy bloków zapewniają zweryfikowany zapis transakcji, ale wiążą się z kompromisami, takimi jak wolniejsze prędkości i wyższe koszty, które rozwiązania takie jak Lightning Network Address.
Definicje:
- Blockchain: Podstawowa technologia używana do rejestrowania transakcji w zdecentralizowanym, niezmiennym Ledger.
- Lightning Network: Drugie rozwiązanie Layer, które poprawia wydajność transakcji Bitcoin poprzez umożliwienie transakcji off-chain.
Bitcoin vs. Crypto
Kolejną kluczową różnicą jest to, że Bitcoin został stworzony wyłącznie w celu zapewnienia zdecentralizowanej, odpornej na cenzurę formy pieniądza, wolnej od kontroli ze strony jakiejkolwiek firmy lub rządu. W przeciwieństwie do tego, kryptowaluty shitcoiny są często projektowane ze scentralizowaną kontrolą, istniejąc głównie w celu wzbogacenia firm stojących za nimi poprzez drapieżne praktyki, schematy typu "pump-and-dump" lub jawne oszustwa. Tokeny te zazwyczaj nie służą żadnemu prawdziwemu celowi poza osiągnięciem szybkiego zysku dla ich twórców kosztem niedoinformowanych inwestorów. Bitcoin wyróżnia się jednak jako jedyna prawdziwie zdecentralizowana waluta cyfrowa o udokumentowanej historii bezpieczeństwa i odporności.
Definicje:
- shitcoiny to kryptowaluty o niskiej wartości lub wątpliwej jakości, którym brakuje rzeczywistej użyteczności. Są one często wysoce spekulacyjne i czasami są tworzone w oszukańczych celach lub bez wyraźnego celu, wykorzystując boom na rynku kryptowalut.
Zużycie energii i wpływ na środowisko
Jednym z najczęstszych zarzutów wobec Bitcoin jest jego zużycie energii. Podczas gdy Bitcoin Mining zużywa energię, stanowi to mniej niż 1% globalnego zużycia energii elektrycznej i mniej niż 3% zmarnowanej energii. Co więcej, Bitcoin Mining często wykorzystuje niewykorzystane lub odnawialne źródła energii, co czyni go bardziej ekologicznym niż często się przedstawia.
Definicje:
- Bitcoin Mining: Proces walidacji transakcji i zabezpieczania sieci poprzez rozwiązywanie zagadek kryptograficznych, co wymaga mocy obliczeniowej.
Błędne przekonania na temat przestępczości
Bitcoin jest często krytykowany za wykorzystywanie w działalności przestępczej. Jednak analiza Blockchain pokazuje, że tylko niewielki procent transakcji Bitcoin jest powiązany z przestępczością. W rzeczywistości tradycyjne systemy finansowe są znacznie częściej wykorzystywane do celów przestępczych niż Bitcoin.
Prywatność i zamienność
Prywatność i zamienność są podstawowymi cechami Bitcoin. Prywatność chroni użytkowników w opresyjnych reżimach, a zamienność zapewnia, że każdy Bitcoin jest równy, niezależnie od jego historii. Dzięki temu Bitcoin jest niezawodną i uczciwą formą pieniądza.
Definicje:
- wymienialność: Właściwość pieniądza, w której każda jednostka jest wymienna z inną, zapewniając równą wartość.
Obsługa FUD i dynamika rynku
FUD otaczający Bitcoin często wyolbrzymia obawy dotyczące jego wpływu na środowisko, przestępczego wykorzystania i bezpieczeństwa. Podczas gdy na rynku będą występować wahania, zdecentralizowana i solidna technologia Bitcoin zapewnia solidne podstawy dla długoterminowej stabilności i wolności finansowej, szczególnie w restrykcyjnych środowiskach, takich jak Wenezuela.
Wnioski
Zrozumienie realiów zużycia energii przez Bitcoin, funkcji prywatności i roli w zapobieganiu przestępczości pomaga rozwiać otaczające go mity. Przebijając się przez FUD, możemy docenić potencjał Bitcoin jako rewolucyjnej formy zdrowego pieniądza, która promuje prywatność, bezpieczeństwo i decentralizację.
Uruchamianie Bitcoin
Instalacja rdzenia Bitcoin
W pierwszym wykładzie 4. modułu zbadaliśmy architekturę Bitcoin i instalację węzła Bitcoin Core.
Uruchamianie węzła Bitcoin
1. Wprowadzenie Podsumowanie
Witamy ponownie! W poprzedniej sesji omówiliśmy podstawowe koncepcje stojące za architekturą Bitcoin, w tym jej podstawy kryptograficzne i strukturę sieci peer-to-peer. Dziś przejdziemy od teorii do praktyki, demonstrując, jak zainstalować i skonfigurować węzeł Bitcoin.
2. Przegląd sesji praktycznej
W tej sesji Alekos przeprowadzi nas przez proces konfiguracji węzła Bitcoin przy użyciu maszyny wirtualnej. Ten praktyczny samouczek ma na celu zapoznanie się z krokami związanymi z konfiguracją węzła do uczestnictwa w sieci Bitcoin.
Uruchomienie węzła Bitcoin obejmuje walidację transakcji i bloków, egzekwowanie zasad konsensusu i wspieranie decentralizacji sieci. Konfiguracja węzła zapewnia bezpośrednie połączenie z siecią Bitcoin, umożliwiając przyczynienie się do jej bezpieczeństwa i integralności.
W tym wykładzie znajdziesz przewodnik po instalacji i uruchomieniu własnego Bitcoin Core, dowiesz się, jak przyciąć Blockchain, aby zaoszczędzić miejsce, i zaczniesz eksperymentować z oprogramowaniem. Alekos poprowadzi cię krok po kroku przez ten ekscytujący proces.
Co można zrobić z Bitcoin Core i jego zalety
Uruchamiając Bitcoin Core, zyskujesz możliwość
- Weryfikacja własnych transakcji i bloków**: Zapewnienie przestrzegania zasad sieci Bitcoin bez polegania na osobach trzecich.
- Wzmocnienie sieci**: Uczestnicząc w sieci, pomagasz utrzymać jej zdecentralizowany charakter, dzięki czemu Bitcoin jest bardziej odporny na ataki.
- Przycinanie Blockchain**: Zmniejszenie wymagań dotyczących pamięci masowej poprzez przechowywanie tylko najnowszych transakcji, co jest idealnym rozwiązaniem w przypadku ograniczonej ilości miejsca na dysku.
- Korzystaj z zaawansowanych funkcji Wallet**: Zarządzaj Bitcoin z zachowaniem prywatności i bezpieczeństwa, kluczami prywatnymi generate w trybie offline i bezpiecznie podpisuj transakcje.
- Bezpośrednia interakcja z siecią Bitcoin**: Korzystając z Bitcoin Core, można łączyć się bezpośrednio z siecią bez pośredników, zapewniając uzyskanie najdokładniejszych danych.
- Korzystaj ze zwiększonej prywatności**: Jako operator Full node nie musisz ufać zewnętrznym usługom, chroniąc prywatność transakcji przed zewnętrznym nadzorem.
Korzyści z prowadzenia węzła Bitcoin są znaczące dla każdego dedykowanego Bitcoinera. Nie tylko pomagasz zabezpieczyć sieć i wzmocnić jej decentralizację, ale także zwiększasz swoją prywatność, zapewniasz integralność własnych transakcji i odgrywasz proaktywną rolę w ekosystemie Bitcoin. Prowadzenie węzła jest kluczowym krokiem do osiągnięcia suwerenności finansowej i pełnego przyjęcia zdecentralizowanej natury Bitcoin.
Podstawowe polecenia
Są to niektóre z podstawowych poleceń podczas konfigurowania węzła:
- Sprawdź status Bitcoin daemon**:
sudo systemctl status bitcoind
- Uruchom Bitcoin daemon:**:
systemctl start bitcoind
- Zatrzymanie Bitcoin daemon:**:
sudo systemctl stop bitcoind
- Szczegółowe informacje**:
bitcoin-cli getblockchaininfo
- Przycinanie Blockchain w celu zaoszczędzenia miejsca na dysku poprzez zachowanie tylko najnowszych bloków:**:
prune=550
- Włącz serwer Bitcoin Core i skonfiguruj ustawienia RPC:**:
server=1
rpcuser=yourusername
rpcpassword=yourpassword
- Sprawdź status Bitcoin daemon**:
sudo systemctl status bitcoind
- Sprawdź saldo Bitcoin Wallet:**:
sudo systemctl status bitcoind
Instalacja C-lightning
1. Bitcoin Core Recap
Zacznijmy od krótkiego podsumowania kroków związanych z instalacją Bitcoin Core na maszynie wirtualnej w chmurze, ponieważ będzie to kluczowe dla naszej późniejszej konfiguracji C-Lightning.
Reinstalacja Bitcoin Core na maszynie wirtualnej w chmurze
Aby rozpocząć, należy ponownie zainstalować Bitcoin Core na maszynie wirtualnej. W tej sesji pominiemy weryfikację binariów, aby zaoszczędzić czas, ale pamiętaj, że w środowisku produkcyjnym weryfikacja binariów jest krytycznym krokiem w celu zapewnienia bezpieczeństwa.
Pobieranie i weryfikacja skrótów plików
Najpierw pobierz najnowszą wersję Bitcoin Core i zweryfikuj skróty plików, aby upewnić się, że nie doszło do manipulacji.
wget https://bitcoin.org/bin/bitcoin-core-22.0/bitcoin-22.0-x86_64-linux-gnu.tar.gz
sha256sum bitcoin-22.0-x86_64-linux-gnu.tar.gz
# Compare the output hash with the official hash
Instalacja oprogramowania binarnego i konfiguracja automatycznego uruchamiania za pomocą systemd
Następnie zainstaluj plik binarny i skonfiguruj go do automatycznego uruchamiania za pomocą systemd.
tar -xzf bitcoin-22.0-x86_64-linux-gnu.tar.gz
sudo install -m 0755 -o root -g root -t /usr/local/bin bitcoin-22.0/bin/*
Utwórz plik usługi systemd:
sudo nano /etc/systemd/system/bitcoind.service
Dodaj następującą konfigurację:
[Unit]
Description=Bitcoin daemon
After=network.target
[Service]
ExecStart=/usr/local/bin/bitcoind -daemon
User=bitcoin
Group=bitcoin
Type=forking
PIDFile=/var/lib/bitcoind/bitcoind.pid
Restart=on-failure
[Install]
WantedBy=multi-user.target
Tworzenie i konfiguracja użytkownika i katalogów Bitcoin
Utwórz dedykowanego użytkownika i skonfiguruj katalogi dla Bitcoin Core.
sudo adduser --disabled-login --gecos "" bitcoin
sudo mkdir -p /var/lib/bitcoind
sudo chown bitcoin:bitcoin /var/lib/bitcoind
Minimalne wykorzystanie miejsca na dysku poprzez przycinanie Blockchain
Aby zaoszczędzić miejsce na dysku, należy włączyć przycinanie w pliku konfiguracyjnym.
sudo nano /var/lib/bitcoind/bitcoin.conf
Dodaj następujące wiersze:
prune=550
Po wykonaniu tych kroków, Bitcoin Core powinien działać przy minimalnym zużyciu dysku, gotowy do interakcji z C-Lightning.
2. Przegląd i instalacja C-Lightning
Przegląd C-Lightning
C-Lightning, znany również jako Core-Lightning, to protokół Layer 2, który ułatwia szybsze i tańsze transakcje przy użyciu kanałów off-chain. Wyróżnia się modułową i przyjazną dla deweloperów architekturą, która pozwala na szerokie dostosowanie za pomocą wtyczek.
Znaczenie modułowości i rozszerzalności dzięki wtyczkom
Modułowa konstrukcja C-Lightning oznacza, że można dodawać lub usuwać funkcje w zależności od potrzeb, umożliwiając dostosowanie systemu do konkretnych przypadków użycia. Przykładowe zastosowania obejmują:
- Przetwarzanie płatności**: Niestandardowe wtyczki mogą obsługiwać określone warunki płatności.
- Routing Fees**: Dynamiczne dostosowywanie opłat za routing w oparciu o warunki sieciowe.
- Automatyzacja**: Automatyzacja zadań, takich jak zarządzanie kanałami i dostarczanie płynności.
Instalacja C-Lightning
Przejdźmy teraz do instalacji C-Lightning.
Używaj najnowszej stabilnej wersji
W tym wykładzie użyjemy najnowszej stabilnej wersji, np. 22.11.1.
wget https://github.com/ElementsProject/lightning/releases/download/v22.11.1/clightning-v22.11.1.tar.gz
sha256sum clightning-v22.11.1.tar.gz
# Verify the hash against the provided hash
Weryfikacja integralności za pomocą kluczy GPG
Zawsze weryfikuj integralność pobranego pliku za pomocą kluczy GPG.
gpg --recv-keys <developer-key-id>
gpg --verify clightning-v22.11.1.tar.gz.asc clightning-v22.11.1.tar.gz
Instalacja zależności i kompilacja z kodu źródłowego
Zainstaluj niezbędne zależności i skompiluj C-Lightning ze źródła.
sudo apt-get update
sudo apt-get install -y autoconf automake build-essential git libtool libgmp-dev \
libsqlite3-dev python3 python3-mako net-tools zlib1g-dev
tar -xzf clightning-v22.11.1.tar.gz
cd clightning-v22.11.1
./configure
make
sudo make install
Konfiguracja usługi systemd do automatycznego uruchamiania
Utwórz plik usługi systemd dla C-Lightning:
sudo nano /etc/systemd/system/lightningd.service
Dodaj następującą konfigurację:
[Unit]
Description=C-Lightning daemon
After=network.target bitcoind.service
[Service]
ExecStart=/usr/local/bin/lightningd
User=bitcoin
Group=bitcoin
Type=simple
Restart=on-failure
[Install]
WantedBy=multi-user.target
3. Konfiguracja i ustawienia
Tworzenie niezbędnych katalogów i plików konfiguracyjnych
Utwórz katalogi i pliki konfiguracyjne wymagane dla C-Lightning.
sudo mkdir -p /var/lib/lightning
sudo chown bitcoin:bitcoin /var/lib/lightning
sudo -u bitcoin nano /var/lib/lightning/config
Dodaj następujące linie do pliku konfiguracyjnego:
network=testnet
log-level=debug
plugin=/usr/local/libexec/c-lightning/plugins
Konfiguracja C-Lightning do połączenia z Bitcoin Core na Testnet
Upewnij się, że C-Lightning może połączyć się z Bitcoin Core, dodając następujące linie:
bitcoin-datadir=/var/lib/bitcoind
bitcoin-rpcuser=<rpcusername>
bitcoin-rpcpassword=<rpcpassword>
Zapewnienie kompatybilności i synchronizacji
Uruchom usługi i upewnij się, że są kompatybilne i zsynchronizowane.
sudo systemctl start bitcoind
sudo systemctl start lightningd
sudo systemctl enable bitcoind
sudo systemctl enable lightningd
Address Ścieżki plików i uprawnienia, szczególnie dla integracji z Tor
Skonfiguruj ścieżki plików i uprawnienia, aby zapewnić płynne działanie, zwłaszcza jeśli korzystasz z Tora w celu zachowania prywatności.
sudo apt-get install tor
sudo -u bitcoin nano /var/lib/lightning/config
Dodaj następujące elementy do integracji z Tor:
proxy=127.0.0.1:9050
Backup HSM Secret for Fund Recovery
Utwórz kopię zapasową tajnego modułu HSM w celu odzyskania środków.
sudo cp /var/lib/lightning/hsm_secret /path/to/secure/location
Testowanie połączeń i sprawdzanie stanu operacyjnego węzła
Na koniec należy zweryfikować stan operacyjny węzła, testując połączenia i upewniając się, że wszystko działa zgodnie z oczekiwaniami.
lightning-cli getinfo
Wykonując te kroki, będziesz mieć w pełni funkcjonalną konfigurację C-Lightning podłączoną do węzła Bitcoin Core, gotową do transakcji Testnet.
Wnioski i pytania
Podsumowując, dzisiaj omówiliśmy najważniejsze kroki związane z ponowną instalacją Bitcoin Core, a następnie szczegółowo omówiliśmy instalację i konfigurację C-Lightning. Jeśli masz jakieś pytania, zadaj je teraz lub przygotuj się na dalsze wyjaśnienia w naszej następnej sesji. Pamiętaj, że praktyczne doświadczenie ma kluczowe znaczenie, więc użyj konfiguracji Testnet, którą omówiliśmy, aby uzyskać więcej informacji.
Urządzenia zabezpieczające i sprzętowe
Urządzenie Specter i Ledger
Wprowadzenie
Witamy w naszym wykładzie na temat bezpieczeństwa i konfiguracji urządzeń dla Bitcoin. Dziś skupimy się na zrozumieniu wykorzystania narzędzi bezpieczeństwa, w szczególności Specter desktop Wallet i Ledger Hardware Wallet, oraz na tym, jak skutecznie je skonfigurować w celu zwiększenia bezpieczeństwa Bitcoin.
Narzędzia: Specter Desktop Wallet i Ledger Emulator
Specter to desktopowy Wallet zaprojektowany w celu ułatwienia tworzenia i zarządzania portfelami Bitcoin, w szczególności tymi wykorzystującymi urządzenia sprzętowe. Do naszej demonstracji wykorzystamy emulator Ledger, który naśladuje funkcjonalność Ledger Hardware Wallet.
Różnica między urządzeniem Ledger a kontrowersjami firmy
Urządzenie Ledger, popularne Hardware Wallet, jest znane ze swoich solidnych zabezpieczeń. Jednak firma stojąca za Ledger stanęła w obliczu kontroli z powodu różnych kontrowersji dotyczących prywatności danych użytkowników. Zrozumienie różnicy między fizycznym bezpieczeństwem urządzenia a praktykami firmy ma kluczowe znaczenie dla świadomego użytkowania.
Modele bezpieczeństwa: Znaczenie portfeli multi-sig i zróżnicowanego sprzętu
Kluczowym aspektem bezpieczeństwa Bitcoin jest wykorzystanie portfeli z wieloma podpisami (multi-sig). Portfele multi-sig wymagają wielu kluczy prywatnych do autoryzacji transakcji, co znacznie zwiększa bezpieczeństwo. Ponadto korzystanie z różnych typów portfeli sprzętowych dywersyfikuje ryzyko i wzmacnia model bezpieczeństwa.
Ustawienia i konfiguracja
Pobieranie i konfiguracja Specter
Pierwszym krokiem w procesie instalacji jest pobranie Specter z oficjalnego repozytorium. Ważne jest, aby zweryfikować integralność pobranego pliku, aby uniknąć zainfekowanego oprogramowania. Po pobraniu zainstaluj Specter na pulpicie i uruchom aplikację.
Konfiguracja Spectera do połączenia z serwerami Bitcoin Core lub Electrum
Aby skonfigurować Specter, należy podłączyć go do serwera Bitcoin Core lub Electrum. Serwery te zapewniają niezbędne dane Blockchain dla operacji Wallet. Konfiguracja obejmuje ustawienie serwera Address w ustawieniach Spectera i zapewnienie stabilnego połączenia.
Wyjaśnienie ścieżek derywacji i odzyskiwania klucza publicznego
Zrozumienie ścieżek derywacji jest niezbędne do zarządzania Wallet. Ścieżki pochodne definiują sposób generowania kluczy z klucza głównego. W Specter można pobrać klucze publiczne, podłączając Hardware Wallet (lub emulator) i przechodząc przez Wallet Interface. Upewnij się, że udokumentowałeś te ścieżki do wykorzystania w przyszłości.
Praktyczna demonstracja: Korzystanie z emulatora Ledger
Teraz użyjemy emulatora Ledger do pobrania kluczy. Wymaga to podłączenia emulatora do Spectera, przejścia do sekcji zarządzania kluczami i wybrania odpowiednich kluczy do utworzenia Wallet.
Tworzenie i zarządzanie portfelami w Specter
Tworzenie Wallet w Specter jest proste. Uzyskaj dostęp do Interface tworzenia Wallet, wprowadź niezbędne szczegóły i dołącz pobrane klucze publiczne. Po utworzeniu możesz zarządzać Wallet, monitorować transakcje i zapewnić solidne praktyki bezpieczeństwa.
Odbieranie i monitorowanie transakcji
Po skonfigurowaniu Wallet odbieranie transakcji jest tak proste, jak udostępnianie Wallet Address. Specter zapewnia monitorowanie w czasie rzeczywistym przychodzących transakcji, zapewniając, że zawsze jesteś na bieżąco ze statusem Wallet.
Konfiguracje zaawansowane
Konfiguracja Remote Specter daemon
Dla zaawansowanych użytkowników skonfigurowanie zdalnego Specter daemon może zwiększyć dostępność i bezpieczeństwo. Obejmuje to skonfigurowanie zdalnego serwera do uruchamiania zaplecza Specter, umożliwiając bezpieczny dostęp z różnych urządzeń.
Włącz Tor dla prywatności
Aby zwiększyć prywatność, zaleca się skonfigurowanie Spectera do korzystania z sieci Tor. Tor anonimizuje ruch sieciowy, chroniąc adres IP Address przed potencjalną inwigilacją. Jest to szczególnie ważne dla użytkowników dbających o prywatność i bezpieczeństwo.
Bezpieczne łączenie się z węzłami zdalnymi
Podczas łączenia się ze zdalnymi węzłami należy upewnić się, że połączenie jest bezpieczne. Wiąże się to z użyciem certyfikatów SSL/TLS i weryfikacją autentyczności węzła. Bezpieczne połączenia zapobiegają atakom typu man-in-the-middle i zapewniają integralność danych.
Problemy z debugowaniem: Praktyczne techniki
Napotkanie problemów jest nieuniknione. Praktyczne debugowanie obejmuje sprawdzanie uprawnień użytkowników, weryfikację dostępu do katalogu danych i sprawdzanie dzienników pod kątem błędów. Na przykład upewnij się, że Specter ma niezbędne uprawnienia dostępu do katalogu danych Bitcoin Core, aby uniknąć zakłóceń w działaniu.
Przykładowy problem: Dostęp do katalogu danych
Częstym problemem jest nieprawidłowy dostęp do katalogu danych. Sprawdź, czy ścieżka do katalogu danych Bitcoin Core jest poprawnie ustawiona w konfiguracji Specter. Zapewni to Specter dostęp do niezbędnych danych Blockchain dla operacji Wallet.
Kolejne kroki i integracja
Podsumowując, kolejne kroki obejmują integrację Spectera z Lightning Network. Umożliwia to wysyłanie środków ze Spectera do węzła Lightning, ułatwiając szybsze i tańsze transakcje. Przyszłe lekcje szczegółowo omówią tę integrację, zwiększając możliwości transakcji Bitcoin.
Zmienność taktowania bloku
Zrozumienie zmienności czasu bloków ma kluczowe znaczenie. Bloki Bitcoin mogą być wydobywane w różnych odstępach czasu, wpływając na czas potwierdzenia transakcji. Ta zmienność musi być uwzględniona we wszystkich konfiguracjach i operacjach Wallet.
Zasoby edukacyjne
Aby uzyskać dodatkową wiedzę, warto rozważyć zasoby takie jak "Mastering the Lightning Network" i samouczki Rusty'ego Russella. Materiały te zapewniają dogłębną wiedzę na temat węzłów Lightning i zaawansowanych konfiguracji Bitcoin.
Instalacja węzła i bezpieczeństwo Tora
Instalowanie węzłów, zarówno lokalnie, jak i zdalnie, przynosi korzyści z używania Tora w celu zwiększenia bezpieczeństwa. Uruchomienie własnego węzła zapewnia osobistą walidację transakcji, zwiększając bezpieczeństwo i prywatność.
Filozofia: Samowystarczalność w uczeniu się
Wyznaj filozofię samowystarczalności. Umiejętności praktyczne i samokształcenie są najważniejsze, często przewyższając korzyści płynące z formalnej edukacji. Zaangażuj się w praktyczne praktyki, aby pogłębić swoje zrozumienie bezpieczeństwa Bitcoin.
Uwagi dotyczące prywatności
Zachowaj prywatność, unikając usług, które śledzą lub rejestrują transakcje. Anonimowość ma kluczowe znaczenie dla bezpiecznych operacji Bitcoin, a staranny wybór usług pomaga chronić tożsamość i historię transakcji.
Na tym kończymy nasz wykład na temat bezpieczeństwa i konfiguracji urządzeń dla Bitcoin przy użyciu Specter i Ledger. Zachęcamy do zadawania pytań lub szukania wyjaśnień dotyczących omawianych kwestii.
Poprawa Bitcoin
Otwarte problemy w ekosystemie Bitcoin
W ciągu ponad dekady Bitcoin udowodnił, że jest innowacją transformacyjną w świecie finansów, z powodzeniem działającą na skalę globalną i otwierającą nowe możliwości w gospodarce cyfrowej. Wciąż jednak stoi przed wyzwaniami, które wymagają kreatywnych i opartych na współpracy rozwiązań. Ciągła ewolucja Bitcoin stanowi wyjątkową okazję dla osób zainteresowanych kształtowaniem przyszłości zdecentralizowanych finansów.
Otwarte problemy z użytecznością Bitcoin
Bitcoin, pomimo ponad dziesięcioletniego istnienia, nadal boryka się z poważnymi wyzwaniami związanymi z użytecznością. Narzędzia i interfejsy dostępne dla użytkowników często nie są tak dojrzałe i przyjazne dla użytkownika, jak w bardziej tradycyjnych systemach finansowych. Jest to szczególnie widoczne w regionach takich jak Salwador, gdzie przyjęcie Bitcoin zostało zatwierdzone przez rząd. Podstawową kwestią jest tutaj potrzeba lepszych abstrakcji, które mogą uprościć doświadczenie użytkownika, czyniąc Bitcoin dostępnym nawet dla osób z minimalną wiedzą techniczną.
Otwarte problemy ze skalowalnością
Skalowalność była stałym problemem w rozwoju Bitcoin. Zdolność sieci do obsługi dużej liczby transakcji pozostaje ograniczona, co często prowadzi do wysokich opłat On-Chain, które mogą wykluczyć niektórych użytkowników z uczestnictwa. Podczas gdy rozwiązania takie jak Lightning Network oferują pewną ulgę poprzez umożliwienie transakcji off-chain, nie rozwiązują one w pełni problemów związanych ze skalowalnością Address. Potrzeba bardziej kompleksowych rozwiązań, które mogą obsługiwać rosnące wolumeny transakcji bez narażania integralności sieci, jest oczywista.
Otwarte problemy w zakresie bezpieczeństwa
Zabezpieczenie zasobów Bitcoin jest złożonym zadaniem, pełnym wyzwań. Portfele Hot, które są często używane do codziennych transakcji, stanowią poważne zagrożenie dla bezpieczeństwa, szczególnie dla tych, którzy obsługują węzły Lightning. Ponadto planowanie dziedziczenia aktywów Bitcoin pozostaje skomplikowanym i często niezabezpieczonym procesem. Złożoność tych środków bezpieczeństwa może zniechęcać potencjalnych użytkowników i komplikować ich powszechne przyjęcie.
Otwarte problemy z prywatnością
Prywatność jest kolejną krytyczną kwestią w ekosystemie Bitcoin. Chociaż prywatność jest niezbędna dla bezpieczeństwa, obecne ramy Bitcoin oferują ograniczone funkcje prywatności. Transakcje On-Chain są łatwe do prześledzenia, co stanowi zagrożenie dla anonimowości użytkowników. Chociaż Lightning Network ma potencjał do zwiększenia prywatności, nadal wymaga znacznych ulepszeń. Równowaga między przejrzystością a prywatnością jest delikatna i wymaga innowacyjnych rozwiązań w celu zapewnienia bezpieczeństwa i prywatności użytkowników.
Otwarte problemy z elastycznością
Elastyczność w ramach protokołu Bitcoin jest niezbędna do wspierania poprawy prywatności, bezpieczeństwa i skalowalności. Jednak zbyt duża elastyczność może stać się podatnością, potencjalnie służąc jako wektor ataku i zagrażając decentralizacji sieci. Osiągnięcie właściwej równowagi ma kluczowe znaczenie dla utrzymania integralności i odporności protokołu Bitcoin.
Kompromisy w ulepszaniu Bitcoin
Użyteczność a bezpieczeństwo i prywatność
Wysiłki mające na celu zwiększenie użyteczności Bitcoin często odbywają się kosztem bezpieczeństwa i prywatności. Przykładowo, przyjazne dla użytkownika portfele powiernicze, takie jak Wallet z Satoshi, zapewniają dostęp do Interface, ale w znacznym stopniu naruszają bezpieczeństwo i prywatność. Uproszczone systemy mogą zwiększyć użyteczność, ale mogą prowadzić do takich kwestii, jak ponowne wykorzystanie Address, co narusza prywatność. W związku z tym wszelkie ulepszenia użyteczności muszą być starannie rozważone pod kątem potencjalnych kompromisów w zakresie bezpieczeństwa i prywatności.
Kompromisy między skalowalnością a prywatnością
Skalowalność i prywatność są często sprzeczne w sieci Bitcoin. Ulepszenia, które poprawiają skalowalność, takie jak większe UTXO lub zmniejszone zaciemnianie kryptograficzne, generalnie zmniejszają prywatność. I odwrotnie, techniki skoncentrowane na prywatności, takie jak podpisy pierścieniowe Monero, zwiększają anonimowość użytkowników, ale negatywnie wpływają na skalowalność. Co więcej, wprowadzenie kontraktów stanowych, jak ma to miejsce w Ethereum, oferuje zwiększoną elastyczność kosztem zmniejszonego bezpieczeństwa i skalowalności. Równoważenie tych kompromisów jest złożonym wyzwaniem, które wymaga skrupulatnego rozważenia.
Techniki ochrony prywatności
Różne podejścia do prywatności w Bitcoin wiążą się z własnymi kompromisami. Prywatność przez zaciemnianie, która polega na dodawaniu większej ilości informacji w celu ukrycia istotnych danych, może zwiększyć prywatność, ale może skomplikować sieć. Przykłady obejmują Monero i Zcash. Z drugiej strony, prywatność przez pominięcie, która ma na celu ograniczenie informacji On-Chain, jak widać w Lightning Network, może poprawić zarówno prywatność, jak i skalowalność. Każda metoda ma swoje zalety i wady, co wymaga zniuansowanego podejścia do poprawy prywatności.
Zmiany i wyzwania związane z konsensusem
Zmiana mechanizmu konsensusu Bitcoin jest rzadkim i trudnym przedsięwzięciem ze względu na zdecentralizowany charakter sieci. Propozycje takie jak ChISA (cross-input signature aggregation) i przymierza mają na celu wprowadzenie bardziej złożonych zasad transakcji, ale ich wdrożenie jest obarczone trudnościami. Zmiany konsensusu wymagają szerokiej zgody w społeczności, a konieczna koordynacja może prowadzić do znacznej frustracji i wypalenia, jeśli proponowane zmiany nie zostaną zaakceptowane. Podkreśla to potrzebę starannych i opartych na współpracy wysiłków w zakresie opracowywania protokołów.
Innowacje i standardy w rozwoju Bitcoin
Przestrzeganie standardowych praktyk w rozwoju Bitcoin Wallet ma kluczowe znaczenie dla zapewnienia łatwości użytkowania i bezpieczeństwa. Wiele portfeli nie przestrzega obecnie ustalonych standardów, co prowadzi do fragmentacji i potencjalnych luk w zabezpieczeniach. Standaryzacja może znacznie poprawić komfort użytkowania i ogólne bezpieczeństwo transakcji Bitcoin.
Tradycyjne 12-wyrazowe zwroty do tworzenia kopii zapasowych, choć skuteczne w podstawowych zastosowaniach Bitcoin, nie są w stanie obsłużyć protokołów off-chain, takich jak Lightning Network. Przyszłe standardy tworzenia kopii zapasowych muszą ewoluować, aby zapewnić lepsze bezpieczeństwo i użyteczność tych zaawansowanych funkcji, zapewniając użytkownikom możliwość bezpiecznego zarządzania swoimi zasobami w różnych warstwach ekosystemu Bitcoin.
Uproszczenie procesu płatności za pomocą ujednoliconych protokołów ma zasadnicze znaczenie dla poprawy komfortu użytkowania. Istniejące protokoły, takie jak BIP70, BIP78 i Payneem, oferują różne rozwiązania, ale jest miejsce na dalsze innowacje. Bardziej usprawniony i przyjazny dla użytkownika protokół płatności może ułatwić szersze przyjęcie i łatwość użytkowania.
Rozwój lepszych narzędzi i sprzętu ma kluczowe znaczenie dla poprawy użyteczności i bezpieczeństwa Bitcoin. Innowacje takie jak portfele sprzętowe (np. Ledger i Trezor) oferują solidne rozwiązania w zakresie bezpieczeństwa, ale muszą nadal ewoluować, aby sprostać pojawiającym się zagrożeniom. Ulepszone narzędzia mogą sprawić, że Bitcoin będzie bardziej dostępny i bezpieczny dla szerszego grona odbiorców.
Ograniczenie ryzyka związanego z dystrybucją Hardware Wallet i zapewnienie ich integralności ma kluczowe znaczenie. Ataki na łańcuch Supply stanowią poważne zagrożenie dla bezpieczeństwa tych urządzeń. Wdrożenie rygorystycznych środków bezpieczeństwa i zapewnienie przejrzystości w procesie produkcji i dystrybucji może pomóc w ograniczeniu tego ryzyka.
Uproszczenie interakcji użytkownika z Bitcoin i Lightning Network przy jednoczesnym zachowaniu bezpieczeństwa i wydajności jest kluczowym celem. Lepsze abstrakcje UX mogą sprawić, że Bitcoin będzie bardziej dostępny dla użytkowników nietechnicznych, sprzyjając szerszej adopcji bez uszczerbku dla bezpieczeństwa.
Tworzenie materiałów edukacyjnych w celu poprawy użyteczności, bezpieczeństwa i prywatności Bitcoin jest bardzo ważne. Edukacja użytkowników w zakresie najlepszych praktyk i podstawowych zasad Bitcoin może umożliwić im podejmowanie świadomych decyzji i poprawić ich ogólne wrażenia z korzystania z sieci.
Zmiany Layer 1 i Layer 2
Innowacje w bazowym Layer (Layer 1) są wyzwaniem, ale mają kluczowe znaczenie dla długoterminowej ewolucji Bitcoin. Rozwiązania Layer 2, takie jak Lightning Network, pozwalają na bardziej eksperymentalne zmiany i mogą bardziej elastycznie uwzględniać kwestie skalowalności i prywatności. Obie warstwy odgrywają kluczową rolę w ciągłym rozwoju Bitcoin.
Koordynacja konsensusu
Zmiany w protokole Bitcoin wymagają znacznej koordynacji i konsensusu społeczności. Zdecentralizowany charakter Bitcoin sprawia, że proces ten jest z natury trudny. Skuteczna koordynacja i jasna komunikacja są niezbędne do poruszania się po złożoności zmian protokołu i zapewnienia pomyślnego przyjęcia ulepszeń.
Wyzwania skalowalności
Osiągnięcie globalnego konsensusu i zarządzanie złożonymi warstwami wtórnymi, takimi jak Lightning Network, stanowi wyzwanie dla skalowalności. Kwestie te muszą zostać rozwiązane, aby Bitcoin mógł obsługiwać rosnące wolumeny transakcji przy jednoczesnym zachowaniu podstawowych zasad bezpieczeństwa i decentralizacji.
Podsumowując, ciągłe rozwiązywanie tych otwartych problemów i wprowadzanie innowacji w ekosystemie Bitcoin ma kluczowe znaczenie dla jego ewolucji. Równowaga między użytecznością, bezpieczeństwem, prywatnością i skalowalnością wymaga starannego rozważenia i wspólnych wysiłków. Przyczyniając się do tych zmian, uczestnicy mogą pomóc w kształtowaniu przyszłości Bitcoin i jego roli w globalnym krajobrazie finansowym.
Bitcoin Podstawy
Myślenie o bezpieczeństwie w Bitcoin
Witamy na dzisiejszym wykładzie na temat Bezpieczeństwa i niezawodności. Naszym celem jest zbadanie zniuansowanego związku między tymi dwoma podstawowymi aspektami projektowania i stosowania systemów w rzeczywistych scenariuszach.
Wprowadzenie do myślenia o bezpieczeństwie
Myślenie o bezpieczeństwie opiera się na zasadach zaprojektowanych w celu ochrony systemów przed celowymi atakami. Obejmuje identyfikację potencjalnych zagrożeń i wdrażanie środków mających na celu ich złagodzenie. Z kolei niezawodność koncentruje się na zapewnieniu prawidłowego działania systemów w określonych warunkach, uwzględniając raczej probabilistyczne awarie niż celowe próby naruszenia bezpieczeństwa.
Związek między bezpieczeństwem a niezawodnością
Chociaż zarówno bezpieczeństwo, jak i niezawodność mają na celu utrzymanie integralności systemu, ich podejścia znacznie się różnią. Inżynieria niezawodności zajmuje się prawdopodobieństwem awarii systemu z powodu zdarzeń losowych i często wykorzystuje metody statystyczne do przewidywania i łagodzenia tych awarii. Z drugiej strony, bezpieczeństwo musi uwzględniać celowy i inteligentny charakter ataków, wymagający wielowarstwowej strategii obronnej znanej jako "obrona w głąb"
Bezpieczeństwo a niezawodność
Kwintesencję inżynierii niezawodności można prześledzić wstecz do XVIII wieku wraz z budową mostu. Jakość użytej stali, w tym jej skład i proces produkcji, miały decydujący wpływ na niezawodność mostu. Inżynierowie musieli wziąć pod uwagę pojedyncze punkty awarii i wykorzystać prawdopodobieństwo oraz statystyki do oceny i zapewnienia niezawodności mostu w czasie.
W przeciwieństwie do niezawodności, bezpieczeństwo dotyczy celowych zagrożeń. Przykładowo, 256-bitowy klucz kryptograficzny stanowi matematyczną gwarancję bezpieczeństwa ze względu na brak możliwości jego brutalnego sforsowania. Środki bezpieczeństwa muszą uwzględniać różne modele zagrożeń, od fizycznej ingerencji po wyrafinowane cyberataki.
Aplikacje w świecie rzeczywistym
Rozważmy proces tworzenia i przechowywania kluczy Bitcoin przy użyciu portfeli papierowych. Portfele papierowe mogą być bezpieczne, ale są podatne na uszkodzenia fizyczne i manipulacje. Zapewnienie integralności takich portfeli wymaga metod umożliwiających identyfikację manipulacji i solidnych protokołów weryfikacji.
W innym scenariuszu, wyobraźmy sobie odbiór z lotniska, gdzie kierowca używa tajnego kodu do uwierzytelnienia pasażera. Ten prosty, ale skuteczny środek bezpieczeństwa uniemożliwia oszustom oszukanie obu stron.
W Gwatemali znaczniki czasu wyników wyborów odegrały kluczową rolę w zapewnieniu integralności procesu wyborczego. Wykorzystując metody kryptograficzne do Timestamp danych, urzędnicy wyborczy mogli zapewnić dowód autentyczności wyników, odstraszając potencjalnych manipulatorów kierujących się znacznymi zachętami finansowymi.
Identyfikacja i łagodzenie potencjalnych zagrożeń
Modelowanie zagrożeń to proces identyfikacji potencjalnych zagrożeń bezpieczeństwa i tworzenia strategii ich łagodzenia. Obejmuje to zrozumienie środowiska systemu, identyfikację potencjalnych napastników i opracowanie bezpiecznych protokołów w oparciu o założenia i analizę probabilistyczną.
Tworzenie bezpiecznych protokołów
Aby zabezpieczyć wybory, można na przykład wdrożyć bezstronny nadzór lub monitorowanie międzypartyjne w celu zapewnienia przejrzystości i integralności. Metody kryptograficzne, takie jak znaczniki czasu i weryfikacja krzyżowa, pomagają w utrzymaniu autentyczności danych i zapobieganiu manipulacjom.
Weryfikacja zaufania
Weryfikację zaufania można zilustrować weryfikacją PGP (Pretty Good Privacy). Weryfikując odciski palców i podpisy kluczy PGP, użytkownicy mogą ustalić autentyczność tożsamości cyfrowych. Podobne praktyki są niezbędne do weryfikacji integralności oprogramowania poprzez dopasowanie Hash (np. SHA-256).
Ustanowienie ścieżek zaufania
Budowanie zaufania nie jest natychmiastowe; wymaga połączenia wielu ścieżek zaufania i zapewnienia redundancji. Na przykład korzystanie z protokołu HTTPS i przejrzystości certyfikatów opartych na Blockchain zapewnia autentyczność źródeł internetowych, utrudniając atakującym naruszenie zaufania.
Zachęty dla bezpieczeństwa
Zrozumienie roli zachęt ma kluczowe znaczenie dla utrzymania bezpieczeństwa. Na przykład model bezpieczeństwa Bitcoin opiera się na zachętach górników i walidacji uczestników sieci, podkreślając znaczenie zachęt ekonomicznych w ochronie ekosystemów cyfrowych.
Zabezpieczanie portfeli Bitcoin
Strategie zabezpieczania portfeli Bitcoin obejmują konfiguracje z wieloma podpisami i zdywersyfikowane przechowywanie. Metody te zapewniają, że nawet jeśli jeden komponent zostanie naruszony, ogólne bezpieczeństwo pozostanie nienaruszone.
Znaczenie walidacji
Wreszcie, walidacja użytkownika ma kluczowe znaczenie dla utrzymania bezpiecznej sieci. Rola każdego użytkownika w walidacji transakcji i weryfikacji komponentów oprogramowania i sprzętu pomaga zachować integralność sieci i udaremnić potencjalne zagrożenia.
Podsumowując, zrozumienie i integracja zasad bezpieczeństwa i niezawodności są niezbędne w projektowaniu solidnych systemów. Ucząc się na historycznych przykładach, stosując rzeczywiste strategie i stale weryfikując zaufanie, możemy budować systemy, które są zarówno bezpieczne, jak i niezawodne.
Wolne i otwarte oprogramowanie (FLOSS) w Bitcoin
Korzystanie z wolnego i otwartego oprogramowania (FLOSS) ma kluczowe znaczenie w ekosystemie Bitcoin. Peter Todd bada znaczenie FLOSS dla Bitcoin, badając historię FLOSS i sprawdzając, w jaki sposób Github pozwala nam wspólnie budować oprogramowanie open source, takie jak Bitcoin.
Charakter i znaczenie oprogramowania
Oprogramowanie, w swej istocie, jest zbiorem kodu i danych, które instruują urządzenia komputerowe, jak wykonywać określone zadania. W przeciwieństwie do sprzętu, który wymaga fizycznych materiałów i procesów produkcyjnych do replikacji, oprogramowanie może być łatwo kopiowane i dystrybuowane praktycznie bez żadnych kosztów. Ta fundamentalna różnica odgrywa kluczową rolę w rozprzestrzenianiu się i rozwoju oprogramowania.
Jednym z kluczowych rozróżnień między oprogramowaniem a sprzętem jest koncepcja open-source. Chociaż sprzęt z otwartym kodem źródłowym istnieje, nie jest tak rozpowszechniony ze względu na złożoność związaną z powielaniem obiektów fizycznych. Z kolei oprogramowanie open-source rozwija się dzięki łatwości replikacji i dystrybucji. Oprogramowanie open-source pozwala każdemu przeglądać, modyfikować i rozpowszechniać kod, wspierając środowisko współpracy, które przyspiesza innowacje i rozwiązywanie problemów.
Ramy prawne rządzące oprogramowaniem obracają się głównie wokół praw autorskich. Przepisy te przyznają twórcy oprogramowania wyłączne prawa do korzystania, modyfikowania i rozpowszechniania jego dzieła. Licencje open-source zapewniają jednak mechanizm dzielenia się tymi prawami z opinią publiczną, na określonych warunkach. Ta struktura prawna jest niezbędna do zrozumienia dynamiki dystrybucji i modyfikacji oprogramowania.
Podsumowując, natura oprogramowania jako łatwo replikowalnego kodu i danych, w połączeniu z mechanizmami prawnymi zapewnianymi przez licencje open source, podkreśla jego kluczowe znaczenie w nowoczesnym krajobrazie cyfrowym. Ramy te nie tylko napędzają innowacje, ale także zapewniają, że oprogramowanie może być swobodnie udostępniane i ulepszane przez globalną społeczność.
Historia ruchu wolnego oprogramowania
Ruch Wolnego Oprogramowania ma swoje korzenie we wczesnych latach 80-tych XX wieku, głównie napędzany wizją wolności oprogramowania Richarda Stallmana. Sfrustrowany restrykcyjnym charakterem prawnie zastrzeżonego oprogramowania, Stallman rozpoczął misję tworzenia oprogramowania, z którego użytkownicy mogliby swobodnie korzystać, modyfikować i udostępniać. Doprowadziło to do założenia Free Software Foundation (FSF) w 1985 roku.
Jednym ze znaczących wkładów Stallmana był rozwój projektu GNU, mającego na celu stworzenie wolnego systemu operacyjnego podobnego do Uniksa. GNU, co jest skrótem od "GNU's Not Unix", zapewniało wiele istotnych elementów w pełni wolnego systemu operacyjnego. Brakowało mu jednak jądra, głównej części systemu operacyjnego.
Lukę tę wypełniło stworzenie jądra Linux przez Linusa Torvaldsa w 1991 roku. Jądro Torvaldsa, w połączeniu z komponentami GNU, zaowocowało w pełni funkcjonalnym wolnym systemem operacyjnym znanym jako GNU/Linux. Ta współpraca między filozoficznym Commitment Stallmana na rzecz wolności oprogramowania a praktycznym wkładem Torvaldsa stanowi przykład potęgi podejścia open source.
Ruch Wolnego Oprogramowania wywarł głęboki wpływ na branżę oprogramowania, promując ideę, że oprogramowanie powinno być wolne dla wszystkich do użytku, modyfikowania i udostępniania. Jego zasady położyły podwaliny pod wiele projektów i społeczności open-source, które kwitną do dziś.
Ekonomia i finansowanie w Open Source
Finansowanie i utrzymanie projektów open-source wiąże się z wyjątkowymi wyzwaniami i możliwościami. W przeciwieństwie do oprogramowania własnościowego, które generuje przychody ze sprzedaży i opłat licencyjnych, projekty open source często opierają się na alternatywnych modelach finansowania.
Jednym z udanych przykładów jest Bitcoin Core, krytyczna część infrastruktury Bitcoin. Deweloperzy pracujący nad Bitcoin Core są często finansowani z grantów, darowizn i sponsoringu organizacji, które czerpią korzyści z sukcesu projektu. Model ten pozwala programistom skupić się na ulepszaniu oprogramowania bez ograniczeń związanych z tradycyjnym finansowaniem komercyjnym.
Innym ważnym przykładem jest system operacyjny Linux. Wiele firm, takich jak IBM, Red Hat i Intel, przyczynia się do rozwoju Linuksa, ponieważ ich produkty i usługi zależą od solidnego i bezpiecznego systemu operacyjnego. Firmy te zapewniają wsparcie finansowe, udostępniają kod i oferują zasoby w celu utrzymania i ulepszania ekosystemu Linuksa.
Licencje open-source, takie jak MIT, GPL i AGPL, również odgrywają kluczową rolę w dynamice ekonomicznej oprogramowania open-source. Licencje zezwalające, takie jak MIT, pozwalają na bardziej elastyczne wykorzystanie kodu, w tym komercjalizację. Z kolei licencje typu copyleft, takie jak GPL, zapewniają, że wszelkie prace pochodne muszą być również open-source, wspierając środowisko współpracy.
Podsumowując, ekonomia oprogramowania open-source jest napędzana przez wkład społeczności, sponsoring korporacyjny i innowacyjne modele finansowania. Mechanizmy te zapewniają trwałość i ciągłe doskonalenie projektów open-source, przynosząc korzyści zarówno deweloperom, jak i użytkownikom.
Kryptografia w Bitcoin
Witamy! Dzisiaj zagłębimy się w kluczowe aspekty kryptografii, które każdy programista Bitcoin powinien znać. Skupimy się na podstawowych koncepcjach i praktycznych zastosowaniach, nie przytłaczając cię nadmiarem teoretycznych szczegółów. Głównym celem jest wyposażenie cię w wiedzę pozwalającą na skuteczne zrozumienie, implementację i rozwiązywanie problemów związanych z mechanizmami kryptograficznymi w Bitcoin.
Podstawowe koncepcje kryptograficzne dla programistów Bitcoin
W tej sekcji zagłębimy się w kluczowe koncepcje kryptograficzne istotne dla deweloperów Bitcoin, w tym funkcje Hash, drzewa Merkle'a, podpisy cyfrowe i krzywe eliptyczne.
Funkcje Hash: Funkcja Hash pobiera dane wejściowe i tworzy ciąg bajtów o stałej długości. W Bitcoin funkcje Hash mają fundamentalne znaczenie dla integralności i bezpieczeństwa danych. Kryptograficzne funkcje Hash muszą być wydajne, generate pozornie losowe i generować wyjścia o stałej długości niezależnie od rozmiaru danych wejściowych. Są one używane do sprawdzania integralności plików, zapewniając, że dane nie zostały zmienione w złośliwy sposób.
Właściwości bezpieczeństwa: Funkcje kryptograficzne Hash muszą spełniać kilka właściwości bezpieczeństwa. Odporność na obraz wstępny zapewnia, że inżynieria wsteczna oryginalnych danych wejściowych z danych wyjściowych Hash jest obliczeniowo niewykonalna. Druga odporność na obraz wstępny oznacza, że powinno być trudno znaleźć inne dane wejściowe, które dadzą ten sam wynik Hash. Odporność na kolizje zapewnia, że znalezienie dwóch różnych danych wejściowych, które dają ten sam wynik Hash, jest mało prawdopodobne.
Drzewa Merkle'a: Merkle Tree to struktura danych, która umożliwia wydajną i bezpieczną weryfikację dużych zbiorów danych. Elementy danych są hashowane parami, a wynikowe hashe są łączone iteracyjnie w celu utworzenia pojedynczego korzenia Hash. W Bitcoin drzewa Merkle mają kluczowe znaczenie w tworzeniu bloków i weryfikacji transakcji, szczególnie dla klientów uproszczonej weryfikacji płatności (SPV) oraz w Taproot (Mast).
Podpisy cyfrowe (ECDSA): Algorytm podpisu cyfrowego z krzywą eliptyczną (ECDSA) służy do zapewnienia autentyczności i integralności transakcji Bitcoin. Obejmuje on generowanie podpisu przy użyciu klucza prywatnego, który można zweryfikować za pomocą odpowiedniego klucza publicznego. Kluczowe pojęcia obejmują zrozumienie pól skończonych, logarytmów dyskretnych i znaczenia nonces.
Krzywe eliptyczne: Krzywe eliptyczne są wykorzystywane w kryptografii klucza publicznego ze względu na ich wydajność i bezpieczeństwo. Bezpieczeństwo kryptografii krzywych eliptycznych opiera się na trudności rozwiązania problemu logarytmu dyskretnego.
Praktyczne zastosowania kryptograficzne i praktyki bezpieczeństwa w Bitcoin
W tej sekcji zbadamy zastosowanie tych koncepcji w rzeczywistym rozwoju Bitcoin i najlepszych praktykach bezpieczeństwa, których należy przestrzegać.
Kryptografia = Niebezpieczeństwo: Kryptografia to miecz obosieczny. Podczas gdy chroni przed przypadkowym uszkodzeniem danych i złośliwymi działaniami, nieprawidłowa implementacja może prowadzić do poważnych luk w zabezpieczeniach. Programiści muszą dogłębnie zrozumieć mechanizmy kryptograficzne, aby zapewnić zarówno bezpieczną implementację, jak i możliwość rozwiązywania potencjalnych problemów. Przykładowo, 256-bitowe wyjście SHA-2 zapewnia, że ataki preimage wymagają około 2^256 pracy, a odporność na kolizje około 2^128 pracy.
Zastosowania Merkle Tree: Zrozumienie logarytmicznego rozmiaru dowodu i zapewnienie starannego projektu drzewa jest niezbędne, aby uniknąć wad, takich jak powielanie Hash w weryfikacji transakcji. Drzewa Merkle'a są wykorzystywane do tworzenia bloków, weryfikacji transakcji i ulepszeń, takich jak Taproot.
Kryptografia klucza publicznego: Logarytmy dyskretne i pola skończone mają fundamentalne znaczenie w obliczeniach kryptograficznych w Bitcoin. Protokoły typu wyzwanie-odpowiedź są używane do weryfikacji znajomości klucza prywatnego bez ujawniania go.
Wpływ na bezpieczeństwo: Historyczne przykłady pokazują znaczne straty finansowe spowodowane ponownym użyciem Nonce. Zrozumienie znaczenia generowania unikalnych nonces jest kluczowe. Korzystanie z zaufanych bibliotek, takich jak LibSecP256k1, zapewnia solidne i bezpieczne operacje kryptograficzne.
Kryptografia krzywych eliptycznych (ECC): Schematy podpisów ewoluowały od protokołów tożsamości do schematów takich jak podpisy Schnorra, obecnie używane w Bitcoin (BIP 340). Znajomość krzywych eliptycznych i arytmetyki pól skończonych zapewnia bezpieczne implementacje kryptograficzne.
Ogólne porady dla deweloperów: Protokoły kryptograficzne muszą być poddawane dokładnym recenzjom. Deweloperzy muszą być precyzyjni i w pełni rozumieć każdy krok procedur kryptograficznych. Świadomość powszechnych pułapek w implementacjach kryptograficznych może zapobiec poważnym lukom w zabezpieczeniach.
Krzywe eliptyczne w kryptografii: Ulepszanie kluczy i bezpieczeństwo to ważne tematy, takie jak modyfikowanie klucza publicznego przy użyciu dodatkowego klucza prywatnego przy jednoczesnym zapewnieniu bezpieczeństwa. Specyficzna krzywa eliptyczna Bitcoin, SECP256K1, i jej parametry (P i N) mają fundamentalne znaczenie dla jej implementacji.
Wnioski
W tym wykładzie zbadaliśmy podstawowe koncepcje kryptograficzne, które stanowią podstawę bezpieczeństwa i funkcjonalności Bitcoin. Od krytycznej roli funkcji Hash, drzew Merkle'a i podpisów cyfrowych po skomplikowaną matematykę kryptografii krzywych eliptycznych, te Elements tworzą kręgosłup zdecentralizowanej sieci Bitcoin. Zrozumienie tych pojęć to nie tylko zrozumienie teorii - chodzi o rozpoznanie praktycznych implikacji i potencjalnych pułapek w rzeczywistym rozwoju.
Jako deweloperzy Bitcoin musimy podchodzić do implementacji kryptograficznych z ostrożnością i precyzją. Bezpieczeństwo sieci Bitcoin zależy w dużej mierze od prawidłowego i bezpiecznego stosowania tych zasad kryptograficznych. Niezależnie od tego, czy weryfikujesz transakcje, projektujesz nowe funkcje, czy zapewniasz integralność Blockchain, dogłębna znajomość kryptografii umożliwi Ci tworzenie bardziej niezawodnych, bezpiecznych i innowacyjnych rozwiązań w ekosystemie Bitcoin.
Opanowując te koncepcje i przestrzegając najlepszych praktyk, będziesz dobrze przygotowany, aby skutecznie przyczyniać się do ciągłego rozwoju Bitcoin, zapewniając jego odporność i bezpieczeństwo w przyszłości.
Model zarządzania Bitcoin
Charakter Bitcoin
Bitcoin to cyfrowa waluta, która działa w oparciu o protokół konsensusu, czyli zestaw reguł uzgodnionych przez uczestników sieci w celu zapewnienia jednolitości i funkcjonalności. U podstaw Bitcoin leży zdecentralizowany Ledger znany jako Blockchain, w którym transakcje są rejestrowane i weryfikowane przez węzły sieci. Pełne węzły, które przechowują całą historię Bitcoin Blockchain, odgrywają kluczową rolę w utrzymaniu integralności tego Ledger. Inne typy węzłów, takie jak węzły archiwalne, węzły przycinane i węzły SPV (Simplified Payment Verification), również przyczyniają się do działania sieci na różne sposoby. Protokół konsensusu zapewnia, że wszystkie te węzły zgadzają się co do stanu Blockchain, dzięki czemu Bitcoin jest odporny na cenzurę i oszustwa.
Zapobieganie zmianom
Zarządzanie w Bitcoin ma kluczowe znaczenie dla zapobiegania arbitralnym lub złośliwym zmianom w protokole. Osiąga się to poprzez mechanizm konsensusu, który wymaga szerokiej zgody wśród społeczności. Deweloperzy z wiedzą programistyczną odgrywają znaczącą rolę w proponowaniu zmian, ale zmiany te muszą zostać zaakceptowane przez szerszą społeczność, aby mogły zostać wdrożone.
Bitcoin Core i alternatywne implementacje mają opiekunów, którzy nadzorują rozwój i utrzymanie oprogramowania. Opiekunowie ci są odpowiedzialni za scalanie zmian w kodzie, zapewniając, że są one zgodne z zasadami konsensusu i nie wprowadzają luk w zabezpieczeniach.
Widelce Soft vs Widelce Hard
Widełki Soft to zmiany, które zaostrzają istniejące zasady protokołu Bitcoin, sprawiając, że niektóre wcześniej ważne transakcje stają się nieważne. Są one kompatybilne wstecz, co oznacza, że niezaktualizowane węzły nadal będą rozpoznawać nowe zasady. Przykładem Soft Fork jest poprawka błędu przepełnienia z 2010 roku, która uniemożliwiła tworzenie pieniędzy z powietrza.
Widełki Hard to zmiany, które rozluźniają istniejące zasady, umożliwiając nowe typy transakcji. Nie są one kompatybilne wstecz, co oznacza, że niezaktualizowane węzły nie rozpoznają nowych zasad. Przykład Hard Fork może być potrzebny w przypadku problemu z rokiem 2106, aby zapewnić ciągłość działania Bitcoin po tej dacie.
Przykłady zarządzania
Kilka rzeczywistych przykładów ilustruje zarządzanie Bitcoin w akcji. Poprawka błędu przepełnienia w 2010 r. była Soft Fork, która dotyczyła krytycznej usterki. Problem roku 2106 będzie prawdopodobnie wymagał Hard Fork, aby Address jego implikacje. Przejście od najdłuższego łańcucha do łańcucha o największej liczbie zadań odzwierciedla istotną decyzję w zakresie zarządzania, która wpłynęła na sposób osiągania konsensusu.
Zarządzanie Bitcoin odnosi się również do rzeczywistych zmian w korzystaniu z protokołu. Na przykład wprowadzenie liczb porządkowych i napisów ilustruje, w jaki sposób zmiany w protokole mogą nie cenzurować transakcji. Podobnie, wdrożenie pełnego RBF (Replace-by-fee) zmieniło procedury zastępowania transakcji bez zmiany zasad konsensusu.
Motywacje do zmian i konsensusu
Zmiany w Bitcoin mogą wynikać z różnych motywacji, takich jak naprawianie krytycznych błędów, wprowadzanie nowych funkcji lub ograniczanie zmian z powodów ekonomicznych lub politycznych. Motywacje te często prowadzą do debat w społeczności na temat tego, co stanowi błąd, a co funkcję i jaki jest ogólny wpływ na sieć.
Mechanizm konsensusu Bitcoin sprawia, że jest on z natury polityczny, wymagając szerokiej zgody na akceptację zmian. Ten polityczny aspekt ma kluczowe znaczenie dla utrzymania zdecentralizowanego charakteru sieci i zapewnienia, że wszelkie modyfikacje leżą w najlepszym interesie społeczności.
Uruchomione węzły mogą weryfikować reguły Bitcoin i uczestniczyć w sieci, nawet przy użyciu różnych protokołów komunikacyjnych, takich jak Blockstream Satellite. Podkreśla to oddzielenie mechanizmu konsensusu Bitcoin od metod komunikacji danych wykorzystywanych przez sieć. Znaczenie ekonomiczne węzłów, szczególnie tych prowadzonych przez duże podmioty, takie jak Binance, może wpływać na przyjmowanie zmian. Podmioty te mają znaczące interesy ekonomiczne w sieci i mogą wpływać na decyzje, uruchamiając wpływowe węzły.
Debata na temat rozmiaru bloku
Debata na temat rozmiaru bloku była istotną kwestią zarządzania, obracającą się wokół tego, czy zwiększyć rozmiar bloku Bitcoin. Kontrowersja ta została rozwiązana dzięki wdrożeniu SegWit, Soft Fork, który zwiększył efektywny rozmiar bloku i umożliwił Lightning Network.
Wymuszone zmiany i rządy większości
Miały miejsce prawne próby zmuszenia deweloperów Bitcoin do zmiany zasad Blockchain dla osobistych korzyści, takie jak pozwy Craiga Wrighta. Próby te podkreślają wyzwania i kwestie etyczne związane z zarządzaniem Bitcoin.
W Bitcoin zasada większości odgrywa kluczową rolę. Jeśli 60% górników przyjmie nową zasadę, ich bloki zostaną odrzucone przez tych, którzy prowadzą oryginalny rdzeń Bitcoin, co doprowadzi do rozłamu. Przykładem nieudanego Hard Fork z powodu braku wsparcia społeczności jest Bitcoin Satoshi's Vision (BSV).
Przyjrzyjmy się pokrótce kilku ważnym koncepcjom.
Wymuszony Soft Fork: Koncepcja wdrożenia restrykcyjnych zasad w celu zmiany Bitcoin może prowadzić do dalszych podziałów i problemów związanych z zarządzaniem. Podejście to ilustruje złożoność i potencjalne konflikty w społeczności Bitcoin.
Atak 51%: Atak 51% opisuje scenariusz, w którym większość mocy hashującej może zaatakować Bitcoin przez Mining pustych bloków. Mogłoby to skutecznie zabić sieć, chyba że społeczność przyjmie nowe zasady konsensusu dla Address ataku.
Check-Lock-Time-Verify (CLTV): Check-Lock-Time-Verify (CLTV) jest przykładem zmiany zarządzania zaimplementowanej jako Soft Fork. CLTV zapewnia, że transakcje są ważne tylko po określonym czasie, co jest przydatne w przypadku kanałów płatności i kluczy zapasowych. Zmiana ta zaostrzyła zasady przy użyciu kodu operacyjnego, który wcześniej nic nie robił.
Podsumowując, przyszłość i zmiany Bitcoin zależą od zbiorowej woli jego użytkowników. Znaczące zmiany wymagają szerokiego konsensusu, odzwierciedlającego zdecentralizowany i polityczny charakter zarządzania Bitcoin.
Layer One Concepts
Składniki węzła w Bitcoin
Adam Gibson omawia różne komponenty węzła Bitcoin. Rozdział koncentruje się na roli, jaką każdy komponent odgrywa w utrzymaniu funkcjonalności i integralności sieci. W szczególności skupia się na tym, dlaczego powinniśmy uruchomić węzeł Bitcoin, co robi węzeł Bitcoin i jak działają różne komponenty węzła Bitcoin.
Wprowadzenie do węzłów Bitcoin
Zrozumienie roli węzłów Bitcoin ma kluczowe znaczenie dla każdego zaangażowanego w sieć Bitcoin. Uruchomienie węzła Bitcoin pozwala użytkownikom zatwierdzać transakcje, uczestniczyć w konsensusie i zachować kontrolę nad swoją prywatnością. W tym wykładzie omówiono, dlaczego uruchomienie węzła Bitcoin jest korzystne i w jaki sposób przyczynia się do ogólnego bezpieczeństwa i decentralizacji sieci Bitcoin.
Dlaczego warto uruchomić węzeł Bitcoin?
Uruchomienie węzła Bitcoin jest niezbędne z kilku powodów:
Weryfikacja: Uruchamiając węzeł, możesz samodzielnie weryfikować transakcje, upewniając się, że otrzymany Bitcoin jest ważny, bez polegania na osobach trzecich.
Uczestnictwo w konsensusie: Węzły odgrywają kluczową rolę w określaniu zasad sieci Bitcoin, a zatem udział w konsensusie pomaga utrzymać integralność i bezpieczeństwo Blockchain.
Prywatność i kontrola: Uruchomienie własnego węzła zapewnia, że nie musisz polegać na zewnętrznych węzłach, które mogą zagrozić Twojej prywatności poprzez śledzenie Twoich transakcji i salda Wallet.
Co robi węzeł Bitcoin?
- Przechowuje listę urządzeń równorzędnych**: Węzły muszą znaleźć i połączyć się z innymi węzłami w sieci, aby uzyskać informacje Exchange.
- Odbiera i wysyła prawidłowe transakcje i bloki**: Węzły Bitcoin są odpowiedzialne za propagowanie ważnych transakcji i bloków w całej sieci.
- Przechowuje historię bloków i najcięższy łańcuch**: Węzły przechowują własną kopię Blockchain, co pozwala im weryfikować autentyczność transakcji i bloków.
- Utrzymuje listę ważnych kandydatów; Mempool**: Węzły muszą przechowywać listę możliwych kandydatów na transakcje w Mempool, które mają zostać uwzględnione w blokach.
UWAGA: Mempool to tymczasowy obszar przechowywania transakcji, które zostały zatwierdzone, ale nie zostały jeszcze uwzględnione w bloku.
Składniki węzła
Podstawowe moduły Bitcoin
- Peer discovery**: Peer discovery to proces, w którym węzeł znajduje inne węzły, z którymi może się połączyć.
- Silnik walidacji**: Silnik walidacji jest odpowiedzialny za sprawdzanie ważności transakcji i bloków zgodnie z zasadami sieci.
- RPC (zdalne wywołanie procedury)**: Bitcoin Core zawiera RPC Interface, który umożliwia zewnętrznym aplikacjom, takim jak portfele, interakcję z węzłem.
- Przechowywanie bloków i stanu łańcucha**: Bitcoin Core może przechowywać cały Blockchain lub nie, niezależnie od tego, czy jest to węzeł archiwalny czy przycięty. Przechowuje również bieżący stan sieci (zestaw UTXO) na dysku.
Co możemy usunąć?
- Miner**: Większość węzłów Bitcoin nie uczestniczy w Mining ze względu na wymaganą dużą moc obliczeniową.
- RPC (Serwer)**: Bitcoin Core implementuje Interface JSON-RPC, do którego można uzyskać dostęp za pomocą helpera wiersza poleceń bitcoin-cli.
- Wallet (disablewallet)**: Jeśli wolisz używać zewnętrznego Wallet, możesz wyłączyć funkcję Wallet w Bitcoin Core. Pozwala to na oddzielne zarządzanie kluczami prywatnymi.
- Mempool (tylko bloki)**: Dla użytkowników, którzy chcą zminimalizować wykorzystanie przepustowości, uruchomienie węzła "tylko bloki" może być rozwiązaniem, w którym węzeł przetwarza tylko bloki, ignorując transakcje.
Stan łańcucha
Gdzie są monety?
Monety nie są przechowywane w adresach; znajdują się w UTXO, które reprezentują wszystkie wyniki transakcji, które nie zostały wydane. Informacje te można uzyskać za pomocą polecenia:
bitcoin-cli gettxoutsetinfo
Możemy sprawdzić, czy liczba Bitcoinów jest prawidłowa.
Dla każdego UTXO, stan łańcucha ma:
- txid.
- Indeks wyjściowy.
- W którym bloku znajduje się UTXO.
- Niezależnie od tego, czy jest to coinbase UTXO.
WAŻNE: Transakcje nie są tym samym co UTXO.
Mempool
Jest to lista niepotwierdzonych transakcji w każdym węźle, które nazywane są transakcjami kandydującymi. Przechowywana jest w pamięci RAM w celu szybkiego dostępu i nie jest częścią konsensusu.
Względy bezpieczeństwa dla węzłów Bitcoin
Bezpieczeństwo jest najważniejsze podczas korzystania z węzła Bitcoin. Oto kilka kluczowych kwestii, o których należy pamiętać:
Unikanie centralizacji
Poleganie na jednym źródle danych Blockchain, takim jak pobieranie wszystkich bloków z centralnego serwera, stwarza znaczne ryzyko. Aby zachować zdecentralizowany charakter Bitcoin, węzły powinny łączyć się z wieloma urządzeniami równorzędnymi i weryfikować otrzymywane dane.
Zapobieganie atakom izolacyjnym
Ataki izolacyjne mają miejsce, gdy węzeł zostaje nakłoniony do połączenia się z ograniczonym zestawem urządzeń równorzędnych, co pozwala atakującemu na dostarczenie mu nieprawidłowych danych. Łącząc się z różnorodnym zestawem peerów i weryfikując otrzymane dane, węzły mogą chronić się przed takimi atakami.
Zarządzanie połączeniami równorzędnymi
Węzły muszą starannie zarządzać swoimi połączeniami równorzędnymi, aby upewnić się, że nie łączą się ze złośliwymi aktorami. Obejmuje to utrzymywanie listy zbanowanych peerów, którzy wykazali podejrzane zachowanie i regularne aktualizowanie listy peerów, aby uniknąć polegania na małej grupie węzłów.
Znaczenie zestawu UTXO
Zestaw UTXO reprezentuje bieżący stan Bitcoin, wymieniając wszystkie niewydane wyjścia transakcji. Ma to kluczowe znaczenie dla walidacji transakcji i zapewnienia, że monety nie zostaną wydane więcej niż jeden raz. Utrzymanie tego zestawu na małym i łatwo dostępnym poziomie jest ważne dla utrzymania wydajności sieci.
Wnioski
Uruchomienie węzła Bitcoin to potężny sposób na uczestnictwo w sieci Bitcoin, zapewniający możliwość weryfikacji transakcji, zachowania prywatności i przyczynienia się do bezpieczeństwa i decentralizacji Blockchain. Niezależnie od tego, czy zdecydujesz się uruchomić Full node, czy dostosować swoją konfigurację, przycinając Blockchain lub wyłączając niektóre komponenty, zrozumienie podstawowych funkcji i względów bezpieczeństwa węzła Bitcoin umożliwi ci podejmowanie świadomych decyzji i przyczyni się do ciągłej ewolucji Bitcoin.
Struktury danych Bitcoin
Głównym celem tego wykładu jest przeprowadzenie użytkownika przez proces analizowania bloku Bitcoin poprzez kodowanie parsera w Rust. Obejmuje to zrozumienie struktury bloków i transakcji Bitcoin oraz wdrożenie niezbędnej logiki w celu wyodrębnienia i interpretacji tych danych.
Parsowanie bloków Bitcoin i transakcji w Rust
Składniki do przeanalizowania
Aby przeanalizować blok Bitcoin, należy skupić się na następujących elementach:
Nagłówek bloku
Transakcje w ramach bloku
Wejścia i wyjścia transakcji
Struktura nagłówka bloku
Nagłówek bloku jest kamieniem węgielnym bloku Bitcoin i zawiera następujące pola:
- Wersja**: Wskazuje wersję bloku.
- Poprzedni blok**: Odniesienie do poprzedniego bloku w Blockchain.
- Merkle Root**: Hash reprezentujący połączony Hash wszystkich transakcji w bloku.
- Timestamp**: Czas, w którym blok został wydobyty.
- Bity**: Docelowy próg dla ważnego bloku Hash.
- Nonce**: Wartość, którą górnicy dostosowują, aby osiągnąć Hash poniżej progu docelowego.
- Liczba transakcji**: Liczba transakcji w bloku.
Uwaga: Tylko pierwsze 80 bajtów (składające się na nagłówek bloku) jest zaszyfrowane podczas Mining.
Uproszczenia
Aby nasz przykład był łatwy do opanowania:
- Skupimy się na analizowaniu bloków sprzed SegWit (legacy), unikając dodatkowej złożoności Segregated Witness.
- Pominiemy niektóre kody operacyjne w języku skryptowym Bitcoin, skupiając się na kilku, których potrzebujemy do przeanalizowania pełnego bloku.
Struktura transakcji
Każda transakcja w bloku Bitcoin zawiera następujące elementy:
- Wersja**: Wersja transakcji.
- Liczba wejść**: Liczba wejść transakcji.
- Inputs**: Lista wejść.
- Poprzednie wyjście (outpoint)**: Poprzednie odniesienie do wyjścia.
- Hash**: Hash transakcji, której dotyczy odwołanie.
- Index**: Indeks określonego wyjścia w transakcji, zwany "vout".
- Długość skryptu**: Długość skryptu podpisu.
- Skrypt podpisu**: Skrypt potwierdzający autoryzację transakcji.
- Sekwencja**: Wersja transakcji określona przez nadawcę.
- Poprzednie wyjście (outpoint)**: Poprzednie odniesienie do wyjścia.
- Liczba wyjść**: Liczba wyjść transakcji.
- Dane wyjściowe**: Zawiera wartość i klucz ScriptPubKey.
- Wartość**: Wartość transakcji.
- Długość skryptu PubKey**: Długość skryptu PubKey.
- PubKey Script**: Zawiera klucz publiczny jako konfigurację do żądania danych wyjściowych.
- Czas blokady**: Wskazuje wysokość bloku lub Timestamp, przy której ta transakcja może zostać włączona do bloku.
Techniki parsowania
W Rust możemy używać różnych technik do analizowania tych struktur:
- Wykorzystuje
from_le_bytesdo odczytu danych Little Endian. - Wdrożenie niestandardowej cechy
parsedo obsługi logiki parsowania dla różnych struktur.
trait Parse: Sized {
fn parse(bytes: &[u8]) -> Result<(Self, &[u8]), Error>;
}
- Ogólna implementacja parsowania dla list i specyficznych typów, takich jak
VarInt,U32,U64, itp.
impl Parse for i32 {
fn parse(bytes: &[u8]) -> Result<(Self, &[u8]), Error> {
let val = i32::from_le_bytes(bytes[0..4].try_into()?);
Ok((val, &bytes[4..]))
}
}
Debugowanie i testowanie
Aby upewnić się, że nasz parser działa poprawnie:
- Porównanie przeanalizowanych danych ze znanymi szczegółami bloku (np. z Mempool.space).
- Sprawdzenie, czy przeanalizowane liczby transakcji i szczegóły bloków są zgodne z oczekiwanymi wartościami.
Obsługa przypadków specjalnych i parsowanie skryptów
Implementacja funkcji "parse
Zaimplementujemy funkcję parse do obsługi pełnego bloku, w tym nagłówka
bloku i transakcji. Obejmuje to odczyt danych bloku i wyodrębnienie odpowiednich
pól.
impl Parse for Block {
fn parse(bytes: &[u8]) -> Result<(Self, &[u8]), Error> {
let (header, bytes) = Parse::parse(bytes)?;
let (transactions, bytes) = Parse::parse(bytes)?;
let block = Block {
header, transactions
};
Ok((block, bytes))
}
}
Modyfikacja nagłówka bloku
Musimy dostosować naszą logikę parsowania, aby usunąć liczbę transakcji ze struktury nagłówka bloku, traktując ją jako oddzielną jednostkę.
impl Parse for BlockHeader {
fn parse(bytes: &[u8]) -> Result<(Self, &[u8]), Error> {
let (version, bytes) = Parse::parse(bytes)?;
let (prev_block, bytes) = Parse::parse(bytes)?;
let (merkle_root, bytes) = Parse::parse(bytes)?;
let (timestamp, bytes) = Parse::parse(bytes)?;
let (bits, bytes) = Parse::parse(bytes)?;
let (nonce, bytes) = Parse::parse(bytes)?;
let header = BlockHeader {
version, prev_block, merkle_root, timestamp, bits, nonce,
};
Ok((header, bytes))
}
}
Definicja struktury
Zdefiniuj nową strukturę Block, która zawiera zarówno nagłówek
bloku, jak i listę transakcji.
struct Block {
header: BlockHeader,
transactions: Vec<Transaction>,
}
Składnia Rust Elements
Wprowadzenie składni Rust Elements, takiej jak znak zapytania (?) do obsługi błędów. Uprości to nasz kod i uczyni go bardziej czytelnym.
Twierdzenia
Dodanie asercji w celu sprawdzenia, czy po przetworzeniu pełnego bloku nie pozostały żadne nieprzeanalizowane bajty. Zapewnia to integralność naszego procesu parsowania.
Przypadki specjalne, takie jak transakcje Coinbase
Transakcje Coinbase, które są pierwszą transakcją w bloku używanym do ubiegania się o Block reward, mają unikalne cechy. Musimy odpowiednio obsługiwać te specjalne przypadki.
struct OutPoint {
txid: [u8; 32],
vout: u32,
}
impl OutPoint {
fn is_coinbase(&self) -> bool {
self.txid == [0; 32] && self.vout == 0xFFFFFFFF
}
}
Strategia parsowania skryptów
Aby przeanalizować skrypt w transakcjach, skupimy się na typowych kodach
operacyjnych, takich jak OP_CHECKSIG, OP_HASH160 i OP_PUSH. Parsowanie tych skryptów ma kluczowe znaczenie dla
walidacji transakcji i obsługi błędów.
enum OpCode {
False,
Return,
Dup,
Equal,
CheckSig,
Hash160,
EqualVerify,
Push(Vec<u8>),
}
impl Parse for OpCode {
fn parse(bytes: &[u8]) -> Result<(Self, &[u8]), Error> {
match bytes[0] {
v @ 1..=75 => {
let data = bytes[1..(v as usize + 1)].iter().cloned().collect();
Ok((OpCode::Push(data), &bytes[(v as usize + 1)..]))
},
76 => {
let len = bytes[1] as usize;
let data = bytes[2..(len + 2)].iter().cloned().collect();
Ok((OpCode::Push(data), &bytes[(len + 2)..]))
},
0 => Ok((OpCode::False, &bytes[1..])),
106 => Ok((OpCode::Return, &bytes[1..])),
118 => Ok((OpCode::Dup, &bytes[1..])),
135 => Ok((OpCode::Equal, &bytes[1..])),
136 => Ok((OpCode::EqualVerify, &bytes[1..])),
169 => Ok((OpCode::Hash160, &bytes[1..])),
172 => Ok((OpCode::CheckSig, &bytes[1..])),
_ => todo!()
}
}
}
Wyzwania związane z analizowaniem skryptów
Parsowanie skryptów może stanowić wyzwanie, szczególnie w przypadku transakcji coinbase. Ważne jest, aby uwzględnić przypadki brzegowe i poprawnie je obsłużyć, aby zapewnić dokładne analizowanie.
impl Parse for Script {
fn parse(bytes: &[u8]) -> Result<(Self, &[u8]), Error> {
let (len, bytes) = VarInt::parse(bytes)?;
let mut script_bytes = &bytes[..len.0 as usize];
let mut opcodes = Vec::new();
while !script_bytes.is_empty() {
let (opcode, bytes) = OpCode::parse(script_bytes)?;
script_bytes = bytes;
opcodes.push(opcode);
}
Ok((Script(opcodes), &bytes[len.0 as usize..]))
}
}
Bloki kompaktowe
Wykorzystanie kompaktowych bloków jest obecnie stosowane w celu zwiększenia wydajności transmisji danych między węzłami. Zmniejsza to wykorzystanie przepustowości i przyspiesza synchronizację, wysyłając transakcje, których brakowało w Mempool, wypełniając je transakcją, którą węzeł już posiadał w bloku, a następnie zatwierdzając ją.
Korzystanie z istniejących bibliotek
W przypadku aplikacji krytycznych dla konsensusu zaleca się korzystanie z istniejących bibliotek w celu uniknięcia błędów i zapewnienia bezpieczeństwa, takich jak Rust-Bitcoin lub Bitcoin-dev-kit. Implementacja własnego parsera może być edukacyjna, ale także ryzykowna w środowiskach produkcyjnych.
Wydajność i bezpieczeństwo w Bitcoin Mining
Wydajność w Mining
Puste bloki Mining mogą być bardziej wydajne dla górników:
- Górnicy rozpoczynają Mining z pustymi blokami, aby zaoszczędzić czas.
- Puste bloki mogą być szybko wydobywane przed przejściem do pełnego bloku po potwierdzeniu poprzedniego bloku.
Przyczyny pustych bloków Mining
Puste bloki są czasami wydobywane z powodu problemów czasowych. Górnicy mogą nie otrzymać pełnej listy transakcji do czasu rozpoczęcia Mining następnego bloku, więc zamiast tego decydują się na wydobycie pustego bloku.
Złośliwe Mining pustych bloków
Chociaż złośliwe Mining pustych bloków jest możliwe, nie zostało to zaobserwowane. Głównym powodem pustych bloków jest ograniczenie czasowe, a nie złośliwe intencje.
Konsekwencje pustych bloków
Występowanie pustych bloków jest normalnym aspektem procesu Mining i wynika głównie z kwestii czasowych. Chociaż nie zawierają one transakcji, nadal wydłużają Blockchain i przyczyniają się do bezpieczeństwa sieci.
Znaczenie bezpieczeństwa
Bezpieczeństwo w Bitcoin Mining jest najważniejsze. Przestrzegając najlepszych praktyk i korzystając z dobrze sprawdzonych bibliotek, górnicy i deweloperzy mogą zapewnić integralność Blockchain i chronić się przed potencjalnymi lukami w zabezpieczeniach.
Podsumowując, analizowanie bloków Bitcoin i transakcji w Rust wymaga zrozumienia złożonych struktur i wdrożenia wydajnych technik analizowania. Obsługa specjalnych przypadków i parsowanie skryptów wymaga starannego rozważenia, a skupienie się na wydajności i bezpieczeństwie zapewnia solidność sieci Bitcoin.
Przegląd oprogramowania Bitcoin i implementacje węzłów
Daniela Brozzoni oferuje kompleksowy przegląd stosu oprogramowania Bitcoin Layer 1, wyjaśniając warstwy, które stanowią podstawę protokołu Bitcoin (tj. węzły Bitcoin i portfele Bitcoin) oraz sposób tworzenia oprogramowania Bitcoin wraz z wprowadzeniem do bibliotek Bitcoin i dogłębnym zanurzeniem się w Bitcoin Development Kit (BDK).
Przegląd oprogramowania Bitcoin
Stos oprogramowania Bitcoin ma fundamentalne znaczenie dla jego działania i składa się z różnych Elements, w tym węzłów i portfeli. Kluczową częścią tego ekosystemu jest Bitcoin Development Kit (BDK), który szczegółowo omówimy później. Najpierw skupmy się na roli węzłów w sieci Bitcoin.
Węzły Bitcoin
Węzły Bitcoin stanowią szkielet sieci Bitcoin. Łączą się one ze sobą, transakcjami i blokami Exchange oraz weryfikują przychodzące dane. Istnieją różne typy węzłów, a każdy z nich służy unikalnemu celowi:
Pełne węzły**: Węzły te przechowują cały Blockchain i zatwierdzają wszystkie transakcje i bloki. Zapewniają wysoki poziom bezpieczeństwa i są niezbędne do decentralizacji sieci.
- Węzły archiwalne**: Węzły archiwalne, będące podzbiorem węzłów pełnych, zachowują wszystkie dane Blockchain, co czyni je cennymi dla analizy historycznej i debugowania.
- Przycięte węzły**: Przycięte węzły oszczędzają miejsce na dysku, zachowując tylko część Blockchain, eliminując starsze dane, które nie są już potrzebne do walidacji.
Bitcoin Core
Bitcoin Core jest najczęściej używaną implementacją Full node. Pełni podwójną funkcję zarówno Full node, jak i Wallet. Kluczowe aspekty Bitcoin Core obejmują:
- Użyteczność**: Może być używany za pośrednictwem wiersza poleceń Interface (CLI) i graficznego interfejsu użytkownika Interface (GUI).
- Charakter open-source**: Kod jest typu open-source, co pozwala programistom wnosić swój wkład i analizować jego działanie.
- Język**: Napisany w C++ z testami w Pythonie, zapewniający solidną wydajność i niezawodność.
Exploring Bitcoin Core
Aby zdobyć praktyczne doświadczenie z Bitcoin Core, można skompilować i uruchomić testy przy użyciu Git. Proces ten obejmuje:
- Kompilacja bazy kodu w celu utworzenia wersji wykonywalnej. Bitcoin github dostęp do doc/build-*.md dla instrukcji.
./autogen.sh
./configure
make # use "-j N" for N parallel jobs
make install # optional
- Uruchomienie testów, aby upewnić się, że wszystko działa poprawnie. Instrukcje można znaleźć tutaj
make check
#individual tests can be run directly calling the test script e.g:
test/functional/feature_rbf.py
#run all possible tests
test/functional/test_runner.py
- Tworzenie i wykonywanie testu w Pythonie w celu sprawdzenia poprawności określonej funkcjonalności. Plik example.py jest mocno skomentowanym przykładem przypadku testowego, który wykorzystuje zarówno interfejs RPC, jak i P2P.
Alternatywne implementacje węzłów
Poza Bitcoin Core, istnieje kilka alternatywnych implementacji węzłów:
- Bitcoin Knots**: Oferuje bardziej zaawansowane funkcje niż rdzeń Bitcoin, zajmując więcej miejsca i pamięci.
- LibBitcoin**: Elastyczna i modułowa implementacja.
- btcd**: Napisany w języku Go, oferuje różne filozofie projektowania.
Wdrożenie tych alternatyw wiąże się z własnym ryzykiem, szczególnie w odniesieniu do zasad konsensusu. Odejście od ustalonych zasad walidacji może prowadzić do rozwidleń lub niespójności. Projekt Bitcoin Kernel ma na celu ograniczenie tego ryzyka poprzez centralizację kodu konsensusu, zapewniając jednolitość we wszystkich implementacjach.
Portfele i zabezpieczenia Bitcoin
Portfele Bitcoin mają kluczowe znaczenie dla bezpiecznego zarządzania zasobami Bitcoin. Występują one w różnych formach, z których każda ma różne funkcje i względy bezpieczeństwa.
Rodzaje portfeli Bitcoin
Custodian vs. Non-Custodian:
- Portfele powiernicze**: Zarządzane przez strony trzecie, oferujące wygodę, ale wymagające zaufania do powiernika.
- Portfele niebędące portfelami powierniczymi**: Kontrolowane przez użytkowników, zapewniające większe bezpieczeństwo i prywatność.
Desktop vs. Mobile:
- Portfele stacjonarne**: Zazwyczaj bardziej funkcjonalne i bezpieczne.
- Portfele mobilne**: Oferują wygodę i przenośność.
On-Chain vs. Lightning:
- Portfele On-Chain**: Bezpośrednia interakcja z Bitcoin Blockchain.
- Lightning Wallets**: Szybsze i tańsze transakcje off-chain.
Portfele Cold vs. Portfele Hot:
- Portfele Cold**: Nie są połączone z Internetem, zapewniając doskonałe bezpieczeństwo przed włamaniami.
- Portfele Hot**: Połączone z Internetem, oferujące większą dostępność, ale mniejsze bezpieczeństwo.
Cold Wallet Bezpieczeństwo
Portfele Cold są cenione za swoje bezpieczeństwo. Pozostając w trybie offline, są one z natury odporne na włamania online. Kluczowe jest jednak upewnienie się, że transakcje wykonywane za pośrednictwem portfeli Cold są bezpieczne i dokładne, aby zapobiec nieumyślnemu wysłaniu Bitcoin do złośliwych podmiotów.
Portfele tylko na zegarki
Portfele typu watch-only zawierają wyłącznie klucze publiczne, umożliwiając użytkownikom otrzymywanie Bitcoin i monitorowanie salda bez możliwości wydawania środków. Funkcja ta zapewnia dodatkowe bezpieczeństwo Layer dla tych, którzy muszą mieć oko na swoje zasoby.
Podstawowe funkcje Bitcoin Wallet
Niezależnie od typu, każdy Bitcoin Wallet spełnia trzy podstawowe funkcje:
Odbieranie adresów Bitcoin: Adresy generate i monitorowanie transakcji przychodzących.
Wyślij Bitcoin: Tworzenie i wysyłanie transakcji do sieci.
Wyświetl saldo: Wyświetla bieżące saldo Wallet.
Rola portfeli Bitcoin
- Portfele Bitcoin działają jak pęki kluczy, przechowując i generując klucze kryptograficzne.
- Monitorują Blockchain pod kątem transakcji przychodzących.
- Twórz transakcje, wybierając niewydane transakcje wyjściowe (UTXO), ustawiając dane wejściowe i wyjściowe oraz optymalizując pod kątem prywatności i opłat.
Możliwość ponownego wykorzystania logiki Wallet
Biorąc pod uwagę, że wszystkie portfele Bitcoin mają podobne funkcje, wielokrotne przepisywanie logiki Wallet jest nieefektywne. W tym miejscu do gry wkracza Bitcoin Development Kit (BDK).
Zestaw deweloperski Bitcoin (BDK) i koncepcje techniczne
Bitcoin Development Kit (BDK) to biblioteka zaprojektowana w celu uproszczenia tworzenia i zarządzania portfelami Bitcoin.
Przegląd BDK
BDK upraszcza tworzenie Wallet, zapewniając funkcjonalność wyższego poziomu zbudowaną na Rust Bitcoin. Obsługuje wiele języków programowania poprzez wiązania, w tym Kotlin, Swift i Python.
Inne biblioteki Bitcoin
Liczne biblioteki Bitcoin obsługują różne języki programowania, takie jak Python, JavaScript, Java, Go i C. Biblioteki te oferują różnorodne narzędzia do rozwoju Bitcoin.
Kluczowe koncepcje techniczne
Deskryptory: Deskryptory opisują sposób wyprowadzania skryptów i adresów Bitcoin z kluczy, umożliwiając bardziej elastyczne i wydajne funkcje Wallet.
PSBT (częściowo podpisane transakcje Bitcoin): PSBT to format dla transakcji, które wymagają wielu podpisów, ułatwiając transakcje oparte na współpracy i zwiększając bezpieczeństwo.
Składnia Rust: Kluczowe pojęcia w Rust, takie jak
Optiondla bezpieczeństwa null i typResultdla obsługi błędów, są integralną częścią zrozumienia i efektywnego korzystania z BDK.
Tworzenie i zarządzanie transakcjami
BDK usprawnia proces tworzenia, podpisywania i nadawania transakcji:
Buduj transakcje: Określ odbiorców, kwoty i opłaty.
Podpisywanie transakcji: Użyj PSBT, aby zebrać podpisy.
Transakcje rozgłoszeniowe: Wysyła sfinalizowane transakcje do sieci.
Przykładowy przepływ pracy w BDK
- Konfiguracja Wallet**: Inicjalizacja Wallet za pomocą deskryptorów.
use bdk::{Wallet, SyncOptions};
use bdk::database::MemoryDatabase;
use bdk::blockchain::ElectrumBlockchain;
use bdk::electrum_client::Client;
use bdk::bitcoin;
fn main() -> Result<(), bdk::Error> {
let wallet = Wallet::new(
"tr(tprv8ZgxMBicQKsPf6WJ1Rr8Zmdsr6MaACS5K3tHw3QDQmFbkEsdnG3zAZzhjEgEtetL1jwZ5VAL85UaaFzUpAZPrS7aGkQ3GdM75xPu4sUxSiF/*)",
None,
bitcoin::Network::Testnet,
MemoryDatabase::default(),
)?;
Ok(())
}
- Adresy generate**: Utwórz nowe adresy, aby odbierać Bitcoin z Testnet Faucet.
//import AddressIndex outside the main function
use bdk::wallet::AddressIndex;
//Function to add isnide main function
let address = wallet.get_address(AddressIndex::New)?;
- Sprawdź saldo**: Monitoruj balans Wallet, najpierw łącząc się z electrum, synchronizując Wallet i pobierając balans z Wallet.
//connect to Electrum server and save the blockchain
let client = Client::new("ssl://electrum.blockstream.info:60002")?;
let blockchain = ElectrumBlockchain::from(client);
//sync wallet to the blockchain received
wallet.sync(&blockchain, SyncOptions::default())?;
//get the balance from your wallet
let balance = wallet.get_balance()?;
println!("This is your wallet balance: {}", balance);
- Tworzenie, podpisywanie i rozsyłanie transakcji**: Twórz i finalizuj transakcje, a następnie rozgłaszaj je w sieci.
//Add to the imports
use bdk::bitcoin::Address;
use bdk::{SignOptions};
use std::str::FromStr;
use bdk::blockchain::Blockchain;
//build a transaction psbt
let mut builder = wallet.build_tx();
let recipient_address = Address::from_str("tb1qlj64u6fqutr0xue85kl55fx0gt4m4urun25p7q").unwrap();
builder
.drain_wallet()
.drain_to(recipient_address.script_pubkey())
.fee_rate(FeeRate::from_sat_per_vb(2.0))
.enable_rbf();
let (mut psbt, tx_details) = builder.finish()?;
println!("This is our psbt: {}", psbt);
println!("These are the details of the tx: {:?}", tx_details);
//Sign the PSBT
let finalized = wallet.sign(&mut psbt, SignOptions::default())?;
println!("Is my PSBT Signed? {}", finalized);
println!("This is my PSBT finalized: {}", psbt);
let tx = psbt.extract_tx();
let tx_id = tx.txid();
println!("this is my Bitcoin tx: {}", bitcoin::consensus::encode::serialize_hex(&tx));
println!("this is mny tx id: {}", tx_id);
//Broadcast the transaction
blockchain.broadcast(&tx)?;
Drukowanie txid i transmisja transakcji
Przypisanie i wydrukowanie transaction ID (txid) umożliwia monitorowanie na
platformach takich jak Mempool.space. Rozgłaszanie transakcji można wykonać
za pomocą metody Blockchain.broadcast, a weryfikacja szczegółów
i statusu transakcji ma kluczowe znaczenie dla zapewnienia pomyślnej
propagacji.
Uwagi dotyczące użyteczności i prywatności BDK
BDK jest nieoceniony dla uproszczenia rozwoju Bitcoin Wallet. W celu zwiększenia prywatności zalecane są narzędzia takie jak Electrum, Explora i osobiste węzły Bitcoin Core.
Języki programowania
Podczas opracowywania projektów Bitcoin często preferowany jest Rust ze względu na jego bezpieczeństwo i wydajność. Wybór języka może się jednak różnić w zależności od konkretnych wymagań projektu i doświadczenia dewelopera.
Zależności BDK
BDK opiera się na kilku kluczowych zależnościach, w tym Rust-Bitcoin i Rust-Miniscipt. Dodatkowe biblioteki mogą być wykorzystywane do zarządzania bazami danych i kryptografii.
Zrozumienie tych komponentów, od węzłów i portfeli Bitcoin po zestaw deweloperski Bitcoin (BDK), pozwala poruszać się po ekosystemie Bitcoin z większą pewnością i kompetencjami. Wiedza ta umożliwia tworzenie solidnych i bezpiecznych aplikacji Bitcoin, przyczyniając się do ciągłej ewolucji tej rewolucyjnej technologii.
Lightning Network
Historia kanałów płatności
Historia kanałów płatności
Witamy w naszym wykładzie na temat nowoczesnych rozwiązań płatniczych w technologii Blockchain. Dzisiaj zbadamy kontekst historyczny i kluczowe osiągnięcia blokad multi-hop (MHL) i Lightning Network.
Przegląd i kontekst historyczny
Multi-hop locks (MHL) i Lightning Network to zaawansowane koncepcje w technologii Blockchain, które ułatwiają wydajne i bezpieczne mikropłatności w całej sieci. Historycznie rzecz biorąc, potrzeba tych innowacji wynikała z nieefektywności i ograniczeń zaobserwowanych podczas początkowego wdrażania technologii Blockchain, w szczególności Bitcoin. Gdy zagłębimy się w temat, zrozumiesz, w jaki sposób struktury tematyczne i podejścia warstwowe zrewolucjonizowały transakcje Blockchain.
Struktura tematyczna
Wprowadzenie MHL i Lightning Network oznacza zmianę paradygmatu z tradycyjnych, liniowych transakcji Blockchain na bardziej wyrafinowane, wielowarstwowe systemy. Dzieląc transakcje na określone tematy lub segmenty, innowacje te umożliwiają bardziej skalowalną i bezpieczną infrastrukturę płatniczą, która rozwiązuje wiele nieodłącznych problemów związanych z wczesnymi wdrożeniami Blockchain.
Problemy z Bitcoin
Bitcoin, pionier technologii Blockchain, wprowadził zdecentralizowany system, w którym transakcje są transmitowane w całej sieci. Choć rewolucyjna, metoda ta jest z natury nieefektywna. Każdy węzeł w sieci musi zweryfikować każdą transakcję, co prowadzi do znacznych opóźnień i wąskich gardeł, zwłaszcza przy dużej liczbie transakcji.
Zdecentralizowany proces walidacji Bitcoin wymaga znacznych zasobów obliczeniowych. Każda transakcja musi zostać zweryfikowana i zarejestrowana przez wiele węzłów, zużywając ogromne ilości energii i mocy obliczeniowej. Nie tylko zwiększa to koszty operacyjne, ale także obciąża przepustowość sieci, prowadząc do zwiększenia opłat transakcyjnych i spowolnienia czasu przetwarzania.
Podczas gdy decentralizacja Bitcoin jest jedną z jego głównych zalet, stanowi ona również poważne wyzwanie. Publiczny charakter Blockchain oznacza, że wszystkie transakcje są widoczne dla wszystkich, co budzi obawy o prywatność. Co więcej, potrzeba konsensusu między licznymi węzłami może prowadzić do presji centralizacyjnej, ponieważ władza Mining staje się skoncentrowana w rękach kilku dużych podmiotów.
Kanały płatności jako rozwiązanie
Gold Standard Metaphor
Aby Address wyeliminować nieefektywność i kwestie prywatności Bitcoin, kanały płatności zostały zaproponowane jako realne rozwiązanie. Kanały mikropłatności umożliwiają dokonywanie transakcji off-chain, zmniejszając potrzebę ciągłego udostępniania danych w całej sieci. To znacznie odciąża Blockchain, pozwalając na szybsze i tańsze transakcje.
Podstawową zasadą kanałów płatności jest koncepcja przyjmowania transakcji off-chain. Zamiast transmitować każdą transakcję do całej sieci, strony mogą otworzyć kanał płatności i przeprowadzać liczne transakcje między sobą. Tylko otwarcie i zamknięcie kanału są rejestrowane w Blockchain, co znacznie poprawia wydajność i prywatność.
Pomimo off-chain charakteru kanałów płatności, pozostaje możliwość egzekwowania transakcji On-Chain. W przypadku sporu lub próby oszustwa przez jedną ze stron, najnowszy stan kanału może być transmitowany do Blockchain, zapewniając, że uzgodnione transakcje są honorowane, a środki są przydzielane prawidłowo.
Kanały płatności stanowią znaczący krok naprzód w technologii Blockchain, zapewniając skalowalną i bezpieczną metodę przeprowadzania transakcji, jednocześnie rozwiązując wiele podstawowych problemów związanych z Bitcoin. Ponieważ nadal wprowadzamy innowacje i budujemy na tych fundamentach, przyszłość Blockchain wygląda coraz bardziej obiecująco.
Podsumowując, zrozumienie kontekstu historycznego i wyzwań związanych z Bitcoin oraz innowacyjnych rozwiązań proponowanych za pośrednictwem MHL, Lightning Network i kanałów płatności zapewnia kompleksowy obraz obecnego krajobrazu i przyszłego potencjału technologii Blockchain.
Historia routingu atomowego
W naszych poprzednich dyskusjach omówiliśmy podstawy podstawowych kanałów płatności. Kanały te pozwalają dwóm uczestnikom, powiedzmy Alice i Bobowi, na dokonywanie transakcji bezpośrednio między sobą. Istnieje jednak rażące ograniczenie tego modelu: Alice może dokonywać transakcji tylko z Bobem, a nie z innymi uczestnikami, takimi jak Charlie, chyba że ustanowi oddzielne kanały z każdym z nich. Konieczność posiadania wielu kanałów prowadzi do nieefektywności i skalowalności, ponieważ niepraktyczne byłoby otwieranie przez Alice bezpośredniego kanału z każdym, z kim chce dokonać transakcji.
Scentralizowany chmiel
Aby Address te ograniczenia, Manny Rosenfeld zaproponował koncepcję scentralizowanych węzłów w 2012 roku. Model ten wprowadził scentralizowane procesory płatności, takie jak TrustPay, do kierowania płatności między użytkownikami. Chociaż metoda ta może zmniejszyć zapotrzebowanie na wiele bezpośrednich kanałów, wprowadza ona istotne wady. Scentralizowane węzły cierpią z powodu kwestii bezpieczeństwa, obaw o zaufanie, naruszeń prywatności, możliwości oszustw, cenzury i problemów z niezawodnością. Użytkownicy muszą ufać tym scentralizowanym podmiotom, aby ułatwić swoje transakcje, co jest sprzeczne z etosem decentralizacji.
Hashed Time Lock Contract (HTLC) i implementacja
Ograniczenia i wady scentralizowanych węzłów wymagały bardziej bezpiecznego i zdecentralizowanego rozwiązania. Potrzeba ta doprowadziła do opracowania Hashed Time Lock Contract (HTLC), zaproponowanego w 2015 roku przez Josepha Poona i Thaddeusa Dreijera jako część Lightning Network. HTLC łączą zasady blokad czasowych i blokad Hash, aby zapewnić atomowość i brak zaufania w transakcjach. Oznacza to, że transakcja albo zostanie w pełni zakończona, albo w ogóle nie dojdzie do skutku, łagodząc ryzyko związane z niekompletnymi płatnościami.
Przepływ pracy HTLC obejmuje wieloetapowy proces, który zapewnia bezpieczny routing przez wielu pośredników. Załóżmy, że Alice chce zapłacić Ericowi przez pośredników Boba, Carol i Dianę. Każdy krok w procesie obejmuje tworzenie transakcji Commitment z malejącymi blokadami czasowymi i kwotami. Jeśli to konieczne, ostatni krok może być transmitowany do sieci Bitcoin w celu sfinalizowania transakcji.
W HTLC Alice blokuje płatność za pomocą Hash tajnego "R" Bob, Carol i Diana tworzą podobne umowy ze swoimi kolejnymi pośrednikami, zapewniając, że mogą odebrać swoje środki tylko wtedy, gdy przedstawią prawidłowy sekret "R" Mechanizm ten zapewnia atomowość; płatność kończy się w pełni lub kończy się niepowodzeniem, chroniąc przed częściową utratą środków.
Hash lock function
Rozważania praktyczne i dynamika sieci
W praktycznym scenariuszu przepływ płatności Alice obejmuje płacenie Ericowi przez wielu pośredników, takich jak Bob, Carol i Diana. Każdy uczestnik tego łańcucha jest odpowiedzialny za pobieranie środków od poprzedniego uczestnika.
Aktualizacje stanu kanału
Kanały aktualizują swój stan w oparciu o wzajemne porozumienia i podpisy między uczestnikami. Na przykład, Alice i Bob mogą aktualizować swój stan kanału bez konieczności używania tajnego "R", pod warunkiem, że zgadzają się co do warunków transakcji.
Zapewniona atomowość
Mechanizm HTLC zapewnia atomowość poprzez zastosowanie blokad czasowych i podpisów. Zabezpieczenie to gwarantuje, że protokół płatności gwarantuje całkowity sukces lub niepowodzenie, chroniąc przed częściowymi stratami środków.
Combine restrictions
Zachęty i obowiązki
Pośrednicy tacy jak Diana i Carol są zachęcani do prawidłowego działania w sieci. Jeśli tego nie zrobią, konsekwencje zazwyczaj wpływają tylko na samego pośrednika, promując w ten sposób odpowiedzialne zachowanie.
Uwagi praktyczne
Jednak więcej przeskoków na trasie płatności może zwiększyć opóźnienia, opłaty i potencjalną zawodność. Otwarcie wielu kanałów może pomóc zmniejszyć liczbę przeskoków wymaganych do routingu, zwiększając ogólną wydajność.
Wykres kanału i płynność
Węzły w sieci mogą być częścią publicznie ogłoszonego grafu kanałów lub pozostać niezapowiedziane. Płynność tych kanałów odgrywa kluczową rolę w skutecznym routingu, ponieważ węzły potrzebują wystarczających sald, aby skutecznie przekazywać płatności.
Routing źródłowy i prywatność
Alicja musi znać topologię sieci, aby zdecydować o trasie płatności. Routing źródłowy jest stosowany w celu zachowania prywatności pomimo złożoności routingu płatności przez wielu pośredników.
Source Routing Path
Wnioski
Podsumowując, prawidłowe działanie węzła zapewnia płatności atomowe, a Lightning Network ma na celu Address wiele problemów, z którymi borykają się tradycyjne systemy płatności, takie jak Ripple. Wykorzystując HTLC i strategiczny routing, Lightning Network zapewnia bardziej skalowalne, wydajne i bezpieczne rozwiązanie dla zdecentralizowanych płatności.
Recenzja Bolt
Sieć Bitcoin działa jako system Trustless o wartości Exchange, służąc głównie jako Layer rozliczeniowy, w którym transakcje są rejestrowane na publicznym Ledger. Zapewnia to bezpieczeństwo i niezmienność, ale wiąże się z ograniczeniami, szczególnie pod względem szybkości transakcji i opłat. W rezultacie Bitcoin może być nieefektywny dla codziennych małych transakcji.
Wprowadź Lightning Network, który działa jako drugi Layer na szczycie Bitcoin Blockchain. Ta sieć płatności została zaprojektowana w celu ułatwienia szybkich i tanich transakcji. Otwierając kanał płatności między dwiema stronami, mogą one dokonywać transakcji off-chain, rejestrując jedynie salda początkowe i końcowe na Bitcoin Blockchain. To znacznie zmniejsza obciążenie głównej sieci, zwiększając skalowalność i umożliwiając mikrotransakcje.
Aby lepiej zrozumieć tę koncepcję, rozważ analogię do karty barowej. Kiedy otwierasz kartę w barze, możesz stale zamawiać drinki bez płacenia za każdy z nich. Na koniec rozliczasz całkowitą kwotę na koniec wieczoru. Podobnie, kanał Lightning umożliwia wiele transakcji off-chain, które są rozliczane On-Chain dopiero po zamknięciu kanału. Inną analogią jest lotnisko, gdzie przekierowanie płatności przez wiele węzłów jest podobne do korzystania z lotów z przesiadkami, aby dotrzeć do miejsca docelowego. Każdy węzeł (lub "lot") pomaga skierować płatność tam, gdzie powinna dotrzeć, zapewniając efektywne przekierowanie.
The airport analogy of LN
Zasadniczo Lightning Network uzupełnia sieć Bitcoin, eliminując jej ograniczenia, przekształcając ją ze zwykłego rozliczeniowego Layer we wszechstronny system zdolny do wydajnej obsługi codziennych transakcji.
**Specyfikacja Lightning Network
Protokół Lightning Network jest skrupulatnie zdefiniowany przez 10 BOLT (Basis of Lightning Technology). Te BOLT zostały uzgodnione podczas konferencji w Mediolanie i służą jako podstawa dla różnych implementacji Lightning Network.
_BOLT Diagram _
Bolt 1 (protokół podstawowy)
Bolt 1 określa formatowanie komunikatów przy użyciu struktury Type-Length-Value (TLV), która zapewnia, że komunikaty są jednolicie rozumiane w różnych implementacjach. Komunikacja jest zwykle prowadzona za pośrednictwem określonego portu TCP, a komunikaty można podzielić na kategorie:
- Komunikaty**: Obejmują one komunikaty
Init,Error,Warning,PingiPong, które ustanawiają połączenia, obsługują błędy, sondują status połączenia i zaciemniają ruch. - Komunikaty konfiguracji kanału**: Są one kluczowe podczas fazy ustanawiania kanału.
- Komunikaty o stanie kanału**: Komunikaty te obsługują aktualizacje w aktywnych kanałach, zapewniając synchronizację obu stron.
- Wiadomości plotkarskie**: Są one używane do wykrywania i aktualizacji topologii sieci.
- Wiadomości eksperymentalne**: Umożliwiają one testowanie nowych funkcji bez zakłócania działania sieci.
Bolt 2 (cykl życia kanału)
Bolt 2 zagłębia się w cykl życia kanału, począwszy od jego utworzenia do normalnej pracy i ostatecznie rozliczenia. Kluczowe procesy obejmują:
- Ustanowienie kanału**: W tej fazie strony otwierają kanał, podpisują Exchange i tworzą transakcję finansowania.
- Normalne działanie**: W tym przypadku stan kanału jest stale aktualizowany za pomocą Hash Time-Locked Contracts (HTLC). Komunikaty Commitment i odwołania zapewniają, że obie strony zgadzają się co do bieżącego stanu.
- Rozliczenie**: Obejmuje zamknięcie kanału, zwykle poprzez wzajemne porozumienie i negocjacje opłat, w celu sfinalizowania transakcji bez wchodzenia w nieokreśloną pętlę zamknięcia.
Mechanizm aktualizacji
HTLC odgrywają kluczową rolę w routingu płatności w sieci, umożliwiając bezpieczne transakcje bez zaufania. Komunikaty Commitment i odwołania zapewniają wzajemne porozumienie w sprawie stanu kanału i zapobiegają oszustwom.
Wiadomości specjalne
Konkretne komunikaty, takie jak Update Fee, dostosowują opłaty
Miner do transakcji Commitment, podczas gdy komunikaty Channel Reestablish zapewniają, że oba peery pozostają zsynchronizowane
po rozłączeniu.
Zamykanie kanałów
Kanały mogą być zamykane za obopólną zgodą, jednostronnym działaniem lub karą w przypadku wykrycia oszustwa. Prawidłowe zamknięcie bezpiecznie finalizuje transakcje.
Swapy na potrzeby zarządzania płynnością
Swapy umożliwiają wypłaty On-Chain i efektywne zarządzanie płynnością bez zamykania kanałów. Przyszłe rozwiązania, takie jak splicing, są opracowywane w celu usprawnienia tego procesu.
Środki bezpieczeństwa
Transakcje Commitment obejmują mechanizmy takie jak nLockTime, OPCheckSequenceVerify i klucze odwołania w celu zabezpieczenia środków i zapobiegania kradzieży.
Routing i Onion Routing
_Onion
Routing diagram _
Płatności są kierowane przy użyciu routingu Onion, który obejmuje tworzenie zaszyfrowanych pakietów wysyłanych przez wiele węzłów. HTLC zabezpieczają transakcję, zapewniając prywatność i bezpieczeństwo.
Struktura Invoice
Faktury Lightning Network (Bolt 11) są kodowane w Bech32 i zawierają szczegóły, takie jak płatność Hash, opis i wygaśnięcie. Każdy Invoice musi być użyty tylko raz, aby zapobiec ponownemu użyciu.
BOLT11 Invoice
Szyfrowanie i uwierzytelnianie
Procedury Handshake i szyfrowanie (Chacha20) z uwierzytelnianiem (Poly1305) zapewniają integralność wiadomości i prywatność w transakcjach Lightning.
Alternatywy
Inne metody żądania płatności, takie jak LNURL, KeySend i Bolt 12, oferują różne funkcje i poziomy przyjęcia, zapewniając elastyczność w sieci.
Wykrywanie sieci
Wykrywanie sieci w Lightning Network ewoluowało od początkowego wykorzystania IRC (Internet Relay Communication) do bardziej wyrafinowanego protokołu zdefiniowanego przez Bolt 7. Protokół ten wykorzystuje określone komunikaty Lightning - powszechnie określane jako komunikaty plotkarskie - do wykrywania i utrzymywania topologii sieci.
Wiadomości Bolt7
Kluczowe komunikaty Bolt 7 obejmują:
- Ogłoszenie węzła**: Ta wiadomość informuje o istnieniu węzła.
- Ogłoszenie o kanale**: Ten komunikat informuje sieć o utworzeniu nowego kanału.
- Podpis ogłoszenia**: Zapewnia autentyczność nadawanych wiadomości.
- Aktualizacja kanału**: Ten komunikat przekazuje aktualizacje dotyczące kanału, takie jak struktury opłat i maksymalne kwoty HTLC.
Proces ogłaszania kanału
Proces rozpoczyna się od wymiany tożsamości i szczegółów kanału przez lokalnych użytkowników. Po zweryfikowaniu podpisów i sfinansowaniu transakcji, ogłaszają oni kanał swoim partnerom w sieci, zapewniając, że cała sieć pozostaje na bieżąco z najnowszymi zmianami topologii.
DNS Bootstrap
Odkrywanie sieci równorzędnych Lightning jest ułatwione dzięki zapytaniom DNS i Bitcoin DNS seed, które dostarczają informacji o adresie IP i węźle. Ten początkowy mechanizm wykrywania pomaga węzłom szybko połączyć się z siecią.
Ogłoszenia dotyczące funkcji
Węzły mogą rozgłaszać swoje obsługiwane funkcje, zapewniając kompatybilność wsteczną, jednocześnie umożliwiając opcjonalne ulepszenia. Ta elastyczność zapewnia, że wszystkie węzły mogą płynnie współdziałać, nawet gdy protokół ewoluuje.
Obsługa faktur Bolt11
Sieć zapewnia unikalność faktur Bolt 11, aby uniknąć wielokrotnych płatności za ten sam Invoice. Jeśli Invoice zostanie ponownie użyty, węzły sieci przechwytują i zapobiegają podwójnym płatnościom, zachowując integralność transakcji.
Głosowa transmisja danych
Chociaż jest to możliwe, przesyłanie danych głosowych za pośrednictwem Lightning Network jest mocno skompresowane i ograniczone rozmiarem wiadomości. Przykładową aplikacją jest Sphinx, która bada innowacyjne wykorzystanie Lightning do transmisji danych.
Przypadki użycia i debaty
Przeznaczenie Lightning Network jest tematem toczącej się debaty. Chociaż został zaprojektowany głównie do płatności, inne przypadki użycia, takie jak transmisja danych, są badane, choć nie są powszechnie akceptowane. Społeczność nieustannie omawia potencjalne aplikacje sieciowe i ulepszenia protokołu.
Dyskusje społeczności
Społeczność Lightning Network tętni życiem, angażując się w ciągłą debatę i dyskusję na temat przypadków użycia, zastosowań protokołu i potencjalnych ulepszeń. To oparte na współpracy środowisko sprzyja innowacjom, zapewniając jednocześnie ewolucję sieci w celu zaspokojenia potrzeb użytkowników.
Podsumowując, zrozumienie drugiego znaczenia Layer, specyfikacji Lightning Network i mechanizmów wykrywania sieci jest kluczowe dla każdego, kto chce zagłębić się w zawiłości Lightning Network. Jest to złożona, ale bardzo satysfakcjonująca dziedzina, która obiecuje zmienić przyszłość transakcji cyfrowych.
Główni klienci LN
Lightning Network (LN) stanowi znaczący przełom w skalowalności Bitcoin i szybkości transakcji. Klienci LN, zwykle określani jako portfele Lightning, to wyspecjalizowane oprogramowanie lub aplikacje, które umożliwiają użytkownikom przeprowadzanie transakcji za pośrednictwem Lightning Network. Portfele te służą jako kluczowy Interface między użytkownikiem a LN, ułatwiając natychmiastowo rozliczane, niskopłatne transakcje poprzez wykorzystanie ścieżek off-chain.
Portfele Lightning zostały zaprojektowane tak, aby proces ten był przyjazny dla użytkownika, umożliwiając nawet osobom o minimalnej wiedzy technicznej korzystanie z zaawansowanych funkcji Bitcoin. Umożliwiając szybkie i opłacalne mikrotransakcje, portfele te znacząco przyczyniają się do szerszego zastosowania Bitcoin w codziennych transakcjach.
Lightning Wallets
Portfele Bitcoin vs. portfele Lightning
Portfele Bitcoin i Lightning różnią się zasadniczo pod względem architektury i przypadków użycia, chociaż mają wspólną cechę zarządzania kluczami prywatnymi:
Portfele Bitcoin:
- Klucz prywatny**: Głównym celem portfeli Bitcoin jest to, kto posiada klucz prywatny. Określa to bezpieczeństwo i kontrolę środków użytkownika.
- Złożoność transakcji**: Portfele Bitcoin obsługują różne skrypty transakcyjne, takie jak Segregated Witness (SegWit) i Taproot, które optymalizują rozmiary transakcji oraz zwiększają prywatność i bezpieczeństwo.
Lightning Wallets:
- Zarządzanie kluczami prywatnymi**: Podobnie jak w przypadku portfeli Bitcoin, kontrola kluczy prywatnych pozostaje kluczowa.
- Zarządzanie płynnością**: Charakterystyczną cechą portfeli Lightning jest potrzeba zarządzania płynnością, która obejmuje równoważenie płynności lokalnej (wychodzącej) i zdalnej (przychodzącej) w celu zapewnienia płynnego przekierowywania transakcji. Wymaga to od użytkowników zrozumienia i zoptymalizowania swoich kanałów w celu ułatwienia skutecznego przekazywania płatności.
Zarządzanie płynnością w Lightning Wallets
Skuteczne zarządzanie płynnością jest kamieniem węgielnym udanych operacji Lightning Network. Obejmuje ono strategiczną równowagę dwóch podstawowych rodzajów płynności:
Płynność lokalna (wychodząca):
- Reprezentuje to ilość Bitcoin, które użytkownik może wysłać ze swoich kanałów Lightning. Ma to kluczowe znaczenie dla inicjowania płatności i zapewnienia, że transakcje mogą być kierowane do odbiorcy.
Płynność zdalna (przychodząca):
- Reprezentuje on kwotę Bitcoin, którą użytkownik może otrzymać za pośrednictwem swoich kanałów. Jest to równie ważne, ponieważ zapewnia, że inni mogą wysyłać płatności do użytkownika.
Przykład zarządzania płynnością:
Lightning Liquidity
Rozważmy scenariusz z udziałem Alice, Boba, Charliego i Dana - typowych użytkowników LN połączonych różnymi kanałami:
- Alice chce zapłacić Danowi, ale nie ma wystarczającej lokalnej płynności w swoim kanale z Bobem.
- Jeśli Bob ma odpowiednie saldo i kanał z Charliem, a Charlie ma kanał z Danem, płatność Alicji może zostać przekierowana przez Boba i Charliego, aby dotrzeć do Dana.
Lightning Liquidity
Jeśli jednak którykolwiek z tych kanałów zostanie wyczerpany lub wystąpią problemy z łącznością, transakcja może zakończyć się niepowodzeniem. Ilustruje to znaczenie utrzymania zrównoważonej płynności w całej sieci.
Wyzwania związane z Lightning Network:
- Wyczerpywanie się kanałów**: Z biegiem czasu kanały mogą stać się niezrównoważone, z funduszami skoncentrowanymi po jednej stronie, co ogranicza możliwości transakcyjne.
- Problemy z łącznością**: Wydajny routing transakcji wymaga solidnych połączeń sieciowych, których utrzymanie może być trudne.
Aby sprostać tym wyzwaniom, dostawcy usług płynności (LSP) oferują usługi pomagające zarządzać płynnością, często za opłatą, zapewniając użytkownikom utrzymanie optymalnych sald kanałów dla płynnych transakcji.
Różne portfele i ich cechy
Dostępne są różne portfele Lightning, z których każdy zaspokaja inne potrzeby i preferencje użytkowników. Oto kilka przykładów:
Wallet z Satoshi:
- Cechy**: W pełni nadzorowane, przyjazne dla użytkownika, ale zamknięte źródło z potencjalnymi obawami o prywatność.
Albi:
- Cechy**: Rozszerzenie przeglądarki, open-source, obsługuje zarówno modele powiernicze, jak i niepowiernicze, zwiększając wszechstronność.
Bryza:
- Cechy**: Lekki węzeł na telefonie, open-source, łączy samodzielną opiekę z zarządzaną płynnością, zapewniając równowagę między kontrolą a wygodą.
Phoenix:
- Cechy**: Podobny do Breeze, wykorzystuje model LSP dla płynności, open-source, koncentruje się na prostocie użytkownika i efektywnym zarządzaniu płynnością.
Otwórz Bitcoin Wallet (OBW):
- Cechy**: Integruje portfele On-Chain i Lightning, obsługuje hostowane kanały, open-source z zaawansowanymi funkcjami, odpowiedni dla zaawansowanych użytkowników.
Matryca zarządzania środkami pieniężnymi i płynnością
Portfele można klasyfikować na podstawie tego, kto posiada klucze prywatne i kto zarządza płynnością. Matryca ta pomaga użytkownikom wybrać portfele, które odpowiadają ich preferencjom w zakresie bezpieczeństwa i wygody:
- Portfele powiernicze**: Osoby trzecie przechowują klucze prywatne, zwykle oferują automatyczne zarządzanie płynnością. Przykłady obejmują Wallet i Satoshi.
- Portfele inne niż depozytowe**: Użytkownicy posiadają klucze prywatne, mogą wymagać ręcznego zarządzania płynnością. Przykłady obejmują Breeze i OBW.
2x2 Matrix of LN Clients
Krytyka i obszary poprawy
Pomimo swoich zalet, portfele Lightning napotykają kilka krytycznych uwag i obszarów wymagających poprawy:
- Prywatność**: Portfele o zamkniętym kodzie źródłowym i niektóre modele powiernicze budzą obawy dotyczące prywatności.
- Łatwość użytkowania**: Równoważenie zaawansowanych funkcji z łatwością obsługi pozostaje wyzwaniem.
- Rozwój open-source**: Różne poziomy wkładu open-source wpływają na zaufanie użytkowników i tempo innowacji.
Dodatkowe spostrzeżenia i przypadki użycia
Wyzwania związane z algorytmami:
Obecne algorytmy wyszukiwania optymalnej ścieżki w Lightning Network są często nieoptymalne i wymagają prób i błędów. Potrzebne są ulepszenia, aby zwiększyć wydajność routingu.
Płatności wieloczęściowe:
Podział większych płatności na mniejsze transakcje może złagodzić kwestie związane z płynnością i wyszukiwaniem ścieżek, zapewniając płynniejsze transakcje.
Zarobki z routingu:
Zyski z opłat za routing są zazwyczaj minimalne, co sprawia, że uruchamianie węzłów routingu w celach zarobkowych jest mniej atrakcyjne dla indywidualnych użytkowników.
Różne przykłady Wallet:
- Blink Wallet**: Z siedzibą w Salwadorze, wymaga numeru telefonu, posiada stabilne funkcje Sats, ale brakuje mu zaawansowanych funkcji Lightning Network.
- Blitz Wallet**: Open-source, self-custody, wymaga płynności zarządzanej przez użytkownika, oferuje obszerne informacje dla zaawansowanych użytkowników.
- SwissBitcoinPay**: Zaprojektowany dla sprzedawców, przechowywanie do 24 godzin, minimalne opłaty dla użytkowników o dużym wolumenie.
Przypadki użycia Wallet:
Różne portfele służą różnym celom, od łatwości użytkowania dla początkujących po zaawansowane funkcje dla zaawansowanych użytkowników. Nie ma jednego "najlepszego" Wallet; wybór zależy od indywidualnych potrzeb i preferencji.
Wkład Open Source:
Opinie użytkowników i wkład w projekty open-source są nieocenione dla rozwoju i rozwoju umiejętności osobistych, wspierając współpracę i innowacyjne środowisko.
Podsumowując, zrozumienie różnych aspektów klientów Lightning Network, ich różnic w stosunku do tradycyjnych portfeli Bitcoin oraz znaczenia skutecznego zarządzania płynnością ma kluczowe znaczenie dla wykorzystania pełnego potencjału Lightning Network. Wybierając odpowiedni Wallet i aktywnie uczestnicząc w ekosystemie, użytkownicy mogą znacznie poprawić swoje wrażenia z transakcji Bitcoin.
Wyzwania związane z LN
Praktyczne wyzwania związane z LN
(wideo będzie dostępne wkrótce)
W tej sesji Asi0 zajmuje się praktycznymi wyzwaniami napotykanymi podczas pracy z Lightning Network (LN). Pomimo rewolucyjnego podejścia do skalowania transakcji Bitcoin, Lightning Network stawia kilka praktycznych wyzwań, z którymi muszą sobie poradzić zarówno użytkownicy, jak i programiści. W szczególności przeanalizujemy cztery główne wyzwania: zarządzanie płynnością, abstrakcję Layer 1/Layer 2, odbieranie płatności offline i zarządzanie kopiami zapasowymi.
Każde z tych wyzwań jest postrzegane z dwóch perspektyw: użytkownika i dewelopera, ponieważ wyzwania i rozwiązania różnią się w zależności od roli, jaką odgrywasz w ekosystemie.
Wyzwanie 1: Zarządzanie płynnością
Z perspektywy użytkownika:
W Lightning Network płynność odnosi się do dostępności środków w kanałach płatności, które są niezbędne do dokonywania lub otrzymywania płatności. Użytkownicy muszą upewnić się, że mają wystarczającą płynność przychodzącą i wychodzącą dla udanych transakcji. Na przykład, jeśli chcesz otrzymywać płatności, musisz mieć dostępną płynność przychodzącą, co oznacza, że inny węzeł musi przydzielić część swojego salda do twojego kanału. Podobnie, jeśli chcesz wysyłać płatności, potrzebujesz płynności wychodzącej w swoim kanale.
- Kwestia praktyczna**: Użytkownicy często mają trudności ze zrównoważeniem swoich kanałów i utrzymaniem wystarczającej płynności. Ponadto, równoważenie kanałów może wiązać się z kosztami.
- Możliwe rozwiązania**: Niektóre portfele Lightning zaczęły integrować automatyczne równoważenie kanałów, ale ta funkcja jest wciąż w fazie rozwoju. Użytkownicy polegają również na dostawcach usług Lightning (LSP), którzy pomagają w zarządzaniu płynnością.
Z perspektywy dewelopera:
Deweloperzy stoją przed wyzwaniem wdrożenia płynnego zarządzania płynnością w aplikacjach. Muszą tworzyć narzędzia, które automatyzują równoważenie i zmniejszają tarcia dla użytkowników, jednocześnie optymalizując opłaty i unikając wąskich gardeł płynności.
- Kwestia praktyczna**: Wdrożenie skutecznych algorytmów routingu płatności w sieci o zmiennej płynności może być złożone i wymagać dużych nakładów obliczeniowych.
- Możliwe rozwiązania**: Deweloperzy badają zaawansowane algorytmy przekierowywania płynności i wykorzystują podwójnie finansowane kanały, aby zapewnić płynność po obu stronach transakcji.
Definicje:
- Płynność: Dostępność środków w kanale Lightning w celu dokonywania lub otrzymywania płatności.
- LSP (Lightning Service Provider): Usługa, która pomaga użytkownikom zarządzać płynnością i kanałami na Lightning Network.
Wyzwanie 2: Abstrakcja L1/L2
Z perspektywy użytkownika:
Interakcja między Layer 1 (L1) (Bitcoin bazowy Layer) i Layer 2 (L2) (Lightning Network) często nie jest w pełni abstrakcyjna dla użytkowników. Na przykład otwieranie i zamykanie kanałów wymaga transakcji On-Chain Bitcoin (L1), a użytkownicy muszą płacić opłaty On-Chain za te działania. Wprowadza to dodatkową złożoność i potencjalne opóźnienia, gdy sieć Bitcoin jest przeciążona.
- Kwestia praktyczna**: Użytkownicy często borykają się ze złożonością zrozumienia, kiedy wchodzą w interakcję z Bitcoin bazowym Layer, a kiedy z Lightning Layer. Może to prowadzić do nieporozumień dotyczących opłat, czasu transakcji i bezpieczeństwa.
- Możliwe rozwiązania**: Ulepszone projekty Wallet, które abstrahują interakcje L1/L2 i zarządzają otwieraniem/zamykaniem kanałów w tle. Niektóre portfele pozwalają już użytkownikom na płynne przełączanie się między transakcjami On-Chain i Lightning, w zależności od okoliczności.
Z perspektywy dewelopera:
Programiści mają za zadanie abstrahować złożoność L1 i L2 dla użytkowników, tworząc płynne i intuicyjne interfejsy, które skutecznie obsługują transakcje. Wyzwaniem jest optymalizacja doświadczenia użytkownika przy jednoczesnym zachowaniu integralności i bezpieczeństwa protokołu Lightning.
- Kwestia praktyczna**: Zapewnienie ochrony użytkownika przed technicznymi zawiłościami zarządzania kanałami i transakcjami On-Chain przy jednoczesnym zachowaniu przejrzystości w razie potrzeby.
- Możliwe rozwiązania**: Deweloperzy pracują nad funkcjami takimi jak splicing (który pozwala na dodawanie lub usuwanie środków z kanału bez jego zamykania) oraz narzędziami do automatycznego zarządzania kanałami.
Definicje:
- L1 (Layer 1): Bitcoin główny Blockchain Layer.
- L2 (Layer 2): Lightning Network, który działa na szczycie Bitcoin, aby umożliwić szybsze i tańsze transakcje.
- Splicing: Technika umożliwiająca modyfikację balansu kanału Lightning bez konieczności jego zamykania.
Wyzwanie 3: Otrzymywanie płatności offline
Z perspektywy użytkownika:
Jednym z wyzwań w Lightning Network jest otrzymywanie płatności, gdy użytkownik jest offline. W przeciwieństwie do bazowego Bitcoin, gdzie transakcje mogą być odbierane w dowolnym momencie, Lightning wymaga, aby zarówno płatnik, jak i odbiorca byli online, aby sfinalizować transakcję. Jest to znaczące ograniczenie dla wielu użytkowników, którzy chcą korzystać z płatności Lightning w codziennych sytuacjach.
- Problem praktyczny**: Użytkownicy nie mogą otrzymywać płatności, chyba że ich węzeł jest online i połączony z siecią, co sprawia, że jest to niewygodne dla tych, którzy chcą używać Lightning jako codziennej metody płatności.
- Możliwe rozwiązania**: Niektóre obejścia obejmują korzystanie z portfeli powierniczych lub poleganie na usługach stron trzecich, które działają jako pośrednicy płatności do czasu uruchomienia węzła odbiorcy.
Z perspektywy dewelopera:
Deweloperzy badają sposoby na umożliwienie użytkownikom otrzymywania płatności Lightning nawet wtedy, gdy ich węzły są offline. Wymaga to kreatywnych rozwiązań, aby utrzymać zdecentralizowany charakter Lightning, jednocześnie zajmując się praktyczną kwestią ciągłego połączenia.
- Kwestia praktyczna**: Opracowanie protokołu lub systemu, który umożliwia użytkownikom otrzymywanie płatności w trybie offline bez narażania bezpieczeństwa lub decentralizacji, stanowi poważne wyzwanie techniczne.
- Możliwe rozwiązania**: Trwają badania nad kuponami płatności offline, które umożliwiłyby odbiorcom ubieganie się o płatności po ponownym połączeniu się z siecią.
Definicje:
- Płatności offline: Płatności wysłane lub odebrane, gdy jedna ze stron nie jest połączona z Lightning Network.
- Portfele powiernicze: Portfele, w których strona trzecia kontroluje klucze prywatne i zarządza transakcjami w imieniu użytkownika.
Wyzwanie 4: Zarządzanie kopiami zapasowymi
Z perspektywy użytkownika:
Tworzenie kopii zapasowych kanałów Lightning ma kluczowe znaczenie dla użytkowników, aby mogli odzyskać swoje środki w przypadku awarii węzła lub utraty danych. Proces tworzenia kopii zapasowych kanałów Lightning jest jednak bardziej złożony niż w przypadku Bitcoin, ponieważ kanały są stanowe, co oznacza, że zmieniają się przy każdej transakcji.
- Kwestia praktyczna**: Użytkownicy muszą upewnić się, że ich kopie zapasowe kanałów są aktualne, ponieważ korzystanie z nieaktualnej kopii zapasowej może spowodować utratę środków lub karę ze strony sieci.
- Możliwe rozwiązania**: Portfele takie jak Phoenix i inne wdrożyły automatyczne tworzenie kopii zapasowych kanałów, ale funkcje te nie są jeszcze wszechobecne we wszystkich portfelach Lightning.
Z perspektywy dewelopera:
Deweloperzy muszą wdrożyć rozwiązania do tworzenia kopii zapasowych, które pozwolą użytkownikom bezpiecznie i niezawodnie odzyskać swoje środki, nawet po katastrofalnych awariach. Wyzwaniem jest zapewnienie, że rozwiązania te są bezpieczne i łatwe w użyciu, przy jednoczesnym zachowaniu integralności protokołu Lightning.
- Kwestia praktyczna**: Projektowanie systemów kopii zapasowych, które są bezpieczne, zdecentralizowane i przyjazne dla użytkownika, stanowi poważne wyzwanie, ponieważ kopie zapasowe muszą być aktualizowane przy każdej zmianie stanu kanału.
- Możliwe rozwiązania**: Statyczne kanałowe kopie zapasowe (SCB) zostały opracowane w celu uproszczenia odzyskiwania danych, ale potrzebne są bardziej zaawansowane rozwiązania do w pełni zautomatyzowanego i bezpiecznego tworzenia kopii zapasowych.
Definicje:
- Statyczna kopia zapasowa kanału (SCB): Rodzaj kopii zapasowej, która umożliwia użytkownikom odzyskanie środków z kanału Lightning w przypadku awarii poprzez przywrócenie ostatniego stanu kanału.
Wnioski
Lightning Network oferuje ogromne korzyści pod względem szybkości i efektywności kosztowej dla transakcji Bitcoin, ale stawia również kilka praktycznych wyzwań. Wyzwania te - zarządzanie płynnością, abstrakcja L1/L2, odbieranie płatności offline i zarządzanie kopiami zapasowymi - wymagają innowacyjnych rozwiązań zarówno od użytkowników, jak i deweloperów. W miarę rozwoju sieci, pokonanie tych przeszkód będzie kluczem do osiągnięcia powszechnej akceptacji i poprawy ogólnego doświadczenia użytkownika.
Dzięki sprostaniu tym wyzwaniom, Lightning Network będzie nadal dojrzewać, stając się bardziej solidnym i niezawodnym rozwiązaniem do skalowania Bitcoin.
LN Future Evolution
Odporność i ewolucja Bitcoin
Maskotka Bitcoin: Honey Badger
Bitcoin jest często uosabiany przez borsuka, stworzenie znane ze swojej wytrwałości i odporności. Symbol ten trafnie reprezentuje solidną i nieugiętą naturę Bitcoin. Tak jak borsuk może wytrzymać jadowite ukąszenia i nadal się rozwijać, tak Bitcoin wykazał się niezwykłą odpornością na różne przeciwności losu, w tym wyzwania regulacyjne, zmienność rynku i ataki techniczne.
Natura Bitcoin: Ciągły rozwój
W przeciwieństwie do pojęcia bycia statycznym, Bitcoin jest w stanie ciągłej ewolucji. Jego protokół i ekosystem są stale udoskonalane i ulepszane przez globalną społeczność programistów i badaczy. Ten ewolucyjny proces jest napędzany potrzebą zwiększenia bezpieczeństwa, skalowalności i funkcjonalności, zapewniając, że Bitcoin pozostaje w czołówce kryptowalut.
Innowacje w Lightning Network
Lightning Network: Szybki rozwój
Lightning Network, drugie rozwiązanie Bitcoin do skalowania i przyspieszania transakcji, jest w fazie szybkiego rozwoju. Ten Layer pozwala na szybkie, tanie transakcje poprzez włączenie kanałów płatności off-chain. Wprowadzane są znaczące innowacje w celu zwiększenia jego wydajności i użyteczności.
Podwójnie finansowane kanały
Tradycyjnie kanał Lightning jest finansowany przez jedną stronę. Jednak kanały z podwójnym finansowaniem pozwalają obu stronom (np. Alice i Bob) przyczynić się do płynności kanału. To ulepszenie ułatwia większą elastyczność zarówno w zakresie wysyłania, jak i odbierania przepustowości i wymaga wcześniejszej komunikacji oraz nowych protokołów do zarządzania wspólnym finansowaniem.
Splicing
Splicing to funkcja, która pozwala użytkownikom modyfikować rozmiar kanału Lightning bez jego zamykania. Funkcja ta umożliwia dodawanie lub usuwanie środków z istniejącego kanału, zapewniając płynny sposób zarządzania płynnością kanału. Splicing wspiera interoperacyjność między transakcjami On-Chain i kanałami Lightning, zwiększając ogólną wydajność sieci.
Mechanizm L2
Mechanizm L2 wprowadza nową metodę unieważniania starych stanów kanału bez polegania na mechanizmie kar. Ta aktualizacja zależy od SIGHASH_ANYPREVOUT, funkcji wymagającej Bitcoin Soft Fork. Mechanizm L2 ma uprościć zarządzanie kanałami i poprawić bezpieczeństwo.
Bolt 12
Bolt 12 rozwiązuje ograniczenia obecnych faktur Bolt 11 używanych w Lightning Network. Wprowadza faktury wielokrotnego użytku i automatyzuje procesy, eliminując potrzebę HTTP i serwerów internetowych, działając wyłącznie w Lightning Network. Ta innowacja usprawnia transakcje i poprawia komfort użytkowania.
Zwiększenie prywatności i wydajności w transakcjach Bitcoin
Podpisy Taproot, MuSig i Schnorr
Taproot to znacząca aktualizacja, która konsoliduje złożoność transakcji i zwiększa prywatność. W połączeniu z MuSig (protokołem dla transakcji z wieloma podpisami) i Schnorr Signatures, Taproot poprawia wydajność transakcji. Te ulepszenia pozwalają transakcjom Lightning przypominać zwykłe transakcje Bitcoin, upraszczając proces i wzmacniając prywatność.
PTLC Routing
Point Time Locked Contracts (PTLC) stanowią ulepszenie w stosunku do istniejących Hash Time Lock Contracts (HTLC). PTLC wykorzystują podpisy Schnorra i poprawiają prywatność, zastępując wspólne tajemnice kluczami publicznymi, zmniejszając potencjał korelacji płatności i nadużyć.
Fabryki kanałów
Fabryki kanałów umożliwiają tworzenie kanałów wielostronnych (np. 4 z 4 Multisig), które mogą tworzyć nowe kanały płatności 2 z 2 off-chain. System ten pozwala na szybkie, bezpłatne tworzenie i zamykanie kanałów, choć wymaga współpracy wszystkich uczestników. Fabryki kanałów zwiększają ogólną skalowalność i elastyczność Lightning Network.
Watchtowers
Wieże strażnicze to podmioty zewnętrzne, które monitorują Blockchain pod kątem starych stanów kanałów. W przypadku wykrycia naruszenia publikują one transakcje karne w celu zapewnienia bezpieczeństwa sieci. Chociaż wieże strażnicze zwiększają bezpieczeństwo poprzez powstrzymywanie niewłaściwego zachowania, wprowadzają również obawy dotyczące prywatności związane z monitorowaniem transakcji.
blinded Paths
Ścieżki blinded zostały zaprojektowane w celu zwiększenia prywatności odbiorcy w Lightning Network. Zasłaniają one Address odbiorcy końcowego, zapewniając, że tylko nadawca zna węzeł pośredni, a każdy węzeł zna tylko sąsiednie węzły. Metoda ta chroni tożsamość odbiorcy i zwiększa ogólną prywatność.
Dostawcy usług oświetleniowych (LSP)
Dostawcy usług Lightning (LSP), opracowani przez Breeze Wallet, mają na celu poprawę komfortu użytkowania poprzez umożliwienie natychmiastowego odbioru. LSP otwierają kanały dla użytkowników, podobnie jak dostawcy usług internetowych oferują usługi łączności. Ta innowacja upraszcza proces wdrażania użytkownika i zapewnia płynne interakcje na Lightning Network.
Zasoby umożliwiające bycie na bieżąco
Aby być na bieżąco z najnowszymi innowacjami technicznymi w Bitcoin i Lightning Network, konieczne jest wykorzystanie cennych zasobów. Biuletyn Bitcoin OpTec, lista mailingowa Lightning Dev i materiały od ekspertów branżowych, takich jak Jason Lopp, zapewniają wgląd i aktualizacje dotyczące bieżących postępów i badań w tej szybko rozwijającej się dziedzinie.
Rozumiejąc i doceniając te zmiany, możemy dostrzec wieloaspektowy postęp i potencjał, jaki Bitcoin i Lightning Network mają dla przyszłości transakcji cyfrowych.
Protokoły na szczycie LN
Rozszerzanie i integracja Lightning Payments
Zrozumienie płatności Lightning
Przed zagłębieniem się w rozszerzenia i integracje płatności Lightning, ważne jest, aby zrozumieć podstawowe działanie płatności Lightning. Konwencjonalna płatność Lightning obejmuje kilka kluczowych elementów: płatnika, odbiorcę i sam Lightning Network. Płatnik inicjuje płatność na rzecz odbiorcy, generując Invoice, który zawiera krytyczne informacje, takie jak kwota do zapłaty i miejsce docelowe (węzeł odbiorcy).
Proces ten opiera się na Hash umowach z blokadą czasową (HTLC), które zapewniają, że płatności mogą być odebrane tylko przez prawowitego odbiorcę w określonych ramach czasowych. Dwa ważne Elements w tym mechanizmie to Onion Routing i HTLC Chain:
- Onion Routing**: Zapewnia prywatność poprzez hermetyzację danych transakcji w warstwach, zapewniając, że każdy pośrednik zna tylko swoje poprzednie i następne węzły, ale nie całą trasę.
- HTLC Chain**: Seria kontraktów, które blokują środki do czasu zakończenia płatności lub jej wycofania.
Nowszym protokołem zwiększającym możliwości Lightning Network jest Keysend. W przeciwieństwie do tradycyjnych metod, które wymagają wcześniejszej komunikacji między nadawcą a odbiorcą generate i Invoice, Keysend umożliwia płatności inicjowane przez nadawcę, usprawniając proces i poprawiając wrażenia użytkownika.
Tradycyjne faktury mają jednak swoje ograniczenia. Na przykład:
- Jednorazowe**: Faktury są zwykle używane tylko do jednej transakcji, co może być niewygodne.
- Ograniczenia rozmiaru**: Duże faktury mogą być trudne w obsłudze w formie kodu QR, co czyni je niepraktycznymi dla niektórych aplikacji.
Definicje:
- Invoice: Wniosek o płatność w Lightning Network, zazwyczaj zawierający kwotę i dane odbiorcy.
- ** HTLC (Hash z blokadą czasową Contract)**: Rodzaj Smart contract używany do zapewnienia warunkowych płatności w określonym czasie.
- Onion Routing: Technika prywatności, w której dane transakcji są ułożone warstwowo jak cebula w celu ochrony tożsamości nadawcy i odbiorcy.
Protokoły i przypadki użycia
Modele biznesowe i zaawansowane protokoły
pomimo ograniczeń tradycyjnych faktur, pojawiło się kilka protokołów rozszerzających i usprawniających płatności Lightning.
LNURL**: Protokół, który upraszcza generowanie Invoice, umożliwiając dynamiczne tworzenie faktur, obsługując nominały fiat i umożliwiając korzystanie z adresów Lightning. Takie podejście znacznie poprawia komfort użytkowania, oferując bardziej elastyczne metody płatności i integrację z różnymi przypadkami użycia.
Bolt 12 ofert**: Ten protokół jest podobny do LNURL, ale wykorzystuje komunikację cebulową w celu zwiększenia prywatności. Bolt 12 umożliwia użytkownikom automatyczne pobieranie faktur bez ręcznej interwencji, poprawiając zarówno prywatność, jak i użyteczność.
Jedną z godnych uwagi integracji płatności Lightning jest Nostr, zdecentralizowana platforma mediów społecznościowych. Nostr integruje płatności Lightning, aby umożliwić napiwki i mikrotransakcje, pokazując, jak Lightning może być osadzony w różnych aplikacjach.
Kolejny protokół, RGB, dodatkowo rozszerza funkcjonalność Lightning, umożliwiając przekazywanie aktywów za pośrednictwem Lightning Network. RGB umożliwia transfer różnych aktywów, w tym tokenów, za pośrednictwem kanałów Lightning, poszerzając zakres transakcji.
Dostawcy usług płynności Lightning (LSP) również odgrywają kluczową rolę w rozszerzaniu płatności Lightning. Dostawcy LSP zapewniają płynność w zakresie otrzymywania płatności, pomagają otwierać kanały podwójnie finansowane i zapewniają płynne transakcje poprzez przechwytywanie płatności i otwieranie kanałów w locie.
Definicje:
- LNURL: Protokół umożliwiający dynamiczne tworzenie Invoice, dzięki czemu płatności stają się łatwiejsze i bardziej elastyczne.
- Bolt 12: Rozszerzenie Lightning, które wykorzystuje przesyłanie wiadomości Onion w celu zapewnienia prywatności przy jednoczesnej automatyzacji pobierania Invoice.
- Nostr: Zdecentralizowana platforma integrująca LProtocols i Use Cases błyskawiczne płatności za mikrotransakcje.
- Protokół RGB: Protokół umożliwiający transfer aktywów, takich jak tokeny, za pośrednictwem Lightning Network.
- LSP (Lightning Service Provider): Podmiot, który zapewnia płynność i otwiera kanały dla transakcji Lightning, czyniąc sieć bardziej dostępną dla użytkowników.
Modele biznesowe i zaawansowane protokoły
Postępy w płatnościach Lightning utorowały drogę dla nowych modeli biznesowych, w szczególności dla dostawców usług Lightning (LSP). Dostawcy usług LSP zwiększają wygodę użytkownika, otwierając kanały tylko po wykryciu płatności, zmniejszając w ten sposób złożoność wstępnej konfiguracji.
Jednym z przykładów modelu biznesowego ułatwionego przez Lightning jest model aukcyjny. W tym przypadku serwer przechowuje najwyższą ofertę i odrzuca niższe oferty, utrzymując płatności w toku do czasu zakończenia aukcji. Pozwala to uniknąć konieczności zwrotów i usprawnia proces aukcyjny.
Innym praktycznym przykładem są gry pokerowe, w których serwer zarządza płatnościami poprzez wstrzymywanie zakładów do czasu zakończenia gry, zapewniając płynny proces obstawiania.
Płatności Lightning są również integrowane z platformami takimi jak Nostr i usługami podcastingu, demonstrując wszechstronność tych protokołów. Ponadto, pre-obrazy płatności mogą być używane jako klucze dostępu do odblokowywania treści lub usług, zwiększając użyteczność Lightning Network.
Zaawansowane protokoły, takie jak Point Time-Locked Contracts (PTLC), posuwają Lightning jeszcze dalej, umożliwiając bardziej złożone operacje kryptograficzne. PTLC oferują ulepszenia w zakresie routingu i podziału płatności, zwiększając zarówno bezpieczeństwo, jak i wydajność.
Protokoły takie jak LNURL i Bolt 12 usprawniają płatności poprzez redukcję ręcznych interakcji, zapewniając, że Lightning Network stanie się bardziej przyjazny dla użytkownika i szeroko przyjęty.
Definicje:
- PTLC (Point Time-Locked Contract): Prymityw kryptograficzny, który ulepsza HTLC, umożliwiając bardziej elastyczne i bezpieczne płatności.
- Pre-image: Wartość używana do odblokowania HTLC, która może również służyć jako klucz dostępu do usług.
- Model aukcyjny: Model płatności, w którym płatności są wstrzymywane podczas aukcji i zwalniane dopiero po zaakceptowaniu najwyższej oferty.
Wnioski
Rozszerzenie i integracja płatności Lightning poprzez różne protokoły i przypadki użycia pokazują dynamiczną ewolucję Lightning Network. Od poprawy podstawowej funkcjonalności płatności po wprowadzenie zaawansowanych modeli biznesowych i protokołów kryptograficznych, przyszłość Lightning niesie ze sobą znaczące nadzieje na innowacje i powszechne przyjęcie.
Bonus
Bitcoin Mining Essentials
Wprowadzenie
Ajelex koncentruje się na biznesowym aspekcie Bitcoin Mining, badając strategie utrzymania rentowności na konkurencyjnym rynku. Dyskusja obejmuje analizę kosztów operacyjnych, środków efektywności i ekonomii napędzających branżę Mining.
1. Mining Czynniki złożoności i rentowności
Czynniki techniczne i strategiczne
Złożoność Mining w kontekście Bitcoin obejmuje przede wszystkim techniczne i strategiczne Elements, które określają rentowność operacji Mining. Kluczowe jest zrozumienie, że Mining to nie tylko gra losowa, ale wyrafinowany proces, który wymaga starannego planowania i ciągłej optymalizacji.
Kluczowe czynniki rentowności
Koszty energii elektrycznej: Jednym z najważniejszych czynników wpływających na rentowność Mining jest koszt energii elektrycznej. W regionach takich jak Francja, energia elektryczna może być stosunkowo droga w porównaniu do krajów takich jak Salwador, gdzie niższe koszty zapewniają górnikom przewagę konkurencyjną.
Wydajność sprzętu: Wydajność sprzętu Mining, mierzona szybkością Hash i zużyciem energii, odgrywa kluczową rolę. Zaawansowane koparki ASIC, takie jak S19J Pro, są znacznie bardziej wydajne niż starsze modele, takie jak Antminer S9.
Okres: Bitcoin Mining zachęca do planowania długoterminowego.
Cena BTC: Cena BTC jest niezbędna do określenia rentowności Mining.
Trudność sieci: Trudność sieci reprezentuje średnią ilość Hashrate potrzebną do wydobycia bloku w ciągu 10 minut.
Narzędzia strategiczne: Narzędzia takie jak braiins.com są nieocenione w obliczaniu rentowności i pomaganiu górnikom w podejmowaniu decyzji opartych na danych.
Praktyczne zastosowanie
Z własnego doświadczenia wiem, że używałem Mining nawet do ogrzewania mojego mieszkania we Francji, kreatywnie kompensując koszty energii elektrycznej podczas Mining Bitcoin. Przykład ten podkreśla praktyczność integracji Mining z codziennym życiem w celu uzyskania dodatkowych korzyści.
Wąskie gardła w Mining
Górnicy napotykają trzy główne wąskie gardła: dostępność sprzętu, dostęp do energii i kapitał wymagany do utrzymania działalności. Niedobór układów ASIC spowodowany wysokim popytem często prowadzi do długiego czasu oczekiwania i zawyżonych cen, co dodatkowo komplikuje krajobraz Mining.
- Przykład wąskiego gardła energetycznego.
W 2021 r. chiński rząd zakazał stosowania Mining na swoim terytorium, co spowodowało, że firmy Mining w Chinach straciły dostęp do energii. Spowodowało to 50% spadek Hashrate w ciągu dwóch tygodni.
2. Ewolucja i wydajność sprzętu Mining
Ewolucja historyczna
Podróż sprzętu Mining była monumentalna, począwszy od prostego procesora Mining po wysoce wyspecjalizowane koparki ASIC, których używamy dzisiaj.
CPU Mining: Na początku Mining był wykonywany przy użyciu zwykłych procesorów komputerowych (CPU). Metoda ta została szybko prześcignięta wraz z rozwojem sieci.
GPU Mining: Jednostki przetwarzania grafiki (GPU) zapewniły znaczny wzrost wydajności Mining, czyniąc procesory CPU przestarzałymi dla celów Mining.
FPGA Mining: Układy FPGA (Field-Programmable Gate Arrays) oferowały jeszcze lepszą wydajność i energooszczędność niż procesory graficzne.
ASIC Mining: Układy ASIC (Application-Specific Integrated Circuits) reprezentują szczyt wydajności sprzętowej Mining, zaprojektowane specjalnie dla operacji Mining z niezrównaną wydajnością.
Szczegółowe porównanie: S19J Pro vs. Antminer S9
- S19J Pro**: Znany ze swojej wysokiej wydajności i niezawodności, S19J Pro oferuje doskonałą szybkość Hash przy niższym zużyciu energii, dzięki czemu idealnie nadaje się do operacji na dużą skalę.
- Antminer S9**: Choć starszy i mniej wydajny, Antminer S9 pozostaje popularny wśród mniejszych konfiguracji i hobbystów ze względu na przystępną cenę i przyzwoitą wydajność.
Mining Wydajność i uczenie się
Mining zapewnia nie tylko nagrody finansowe, ale także cenne praktyczne doświadczenie. Pozyskiwanie bitcoinów bez KYC za pośrednictwem Mining może być atrakcyjną propozycją dla osób dbających o prywatność.
Zaawansowane narzędzia i techniki
Oprogramowanie na rynku wtórnym może zwiększyć wydajność i funkcjonalność sprzętu Mining. Narzędzia oferujące funkcje optymalizacji i automatycznego dostrajania zapewniają, że każdy układ działa z maksymalną wydajnością, skutecznie równoważąc szybkość Hash i zużycie energii.
3. Dynamika regulacyjna i rynkowa w operacjach Mining
Skutki regulacyjne
Regulacje odgrywają znaczącą rolę w kształtowaniu krajobrazu Mining. Na przykład chiński zakaz Mining miał głęboki wpływ na globalne operacje Mining, powodując znaczny spadek wskaźnika Hash w sieci i prowadząc do redystrybucji mocy Mining w różnych regionach.
Dynamika rynku
** Dostępność i koszt sprzętu**: Cena i dostępność koparek ASIC zależy od ceny rynkowej Bitcoin. Wysoki popyt podczas hossy skutkuje niedoborem i zawyżonymi cenami.
Wartość Hash i cena Hash: Zrozumienie różnicy między wartością Hash (satoshis zarobione za terahash dziennie) a ceną Hash (wartość pieniężna stawki Hash) jest niezbędne. Oba te czynniki zależą od trudności sieci i ceny rynkowej Bitcoin.
Pule Mining i mechanizmy nagradzania
Pule Mining: Łącząc zasoby, pule Mining zapewniają bardziej stabilne nagrody, zmniejszając wariancję i ryzyko związane z solo Mining.
Schematy nagród: Różne mechanizmy wynagradzania, takie jak Pay-Per-Share (PPS) i proporcjonalne nagrody, oferują różne profile ryzyka i nagród dla górników.
- Płać za udział**: Pay-Per-Share nagradza górników za każdy przesłany ważny udział, niezależnie od tego, czy pula znajdzie blok. Udziały są jednostkami potwierdzającymi, że górnicy wykonali wymaganą pracę, a pula weryfikuje te udziały.
- Proporcjonalny**: Zależy od puli Mining bloku, aby rozdzielić nagrodę równo do wkładu Miner do całkowitej Hashrate puli.
Przyszłość Mining
W miarę zmniejszania się nagród za bloki, górnicy będą w coraz większym stopniu polegać na opłatach transakcyjnych. Zmiana ta rodzi obawy o to, czy same opłaty transakcyjne będą wystarczającą zachętą dla górników do dalszego zabezpieczania sieci.
Hosted Mining
Hostowane usługi Mining mogą oferować niższe koszty operacyjne, ale wiążą się z ryzykiem, takim jak brak kontroli i możliwość oszustwa. Aby zminimalizować to ryzyko, konieczne jest zachowanie należytej staranności.
Bezpieczeństwo i wydajność
Zaawansowane protokoły bezpieczeństwa i wykorzystanie energii odnawialnej nie tylko zwiększają rentowność, ale także przyczyniają się do zrównoważonego rozwoju ekosystemu Mining.
Podsumowując, świat Bitcoin Mining jest złożoną, wieloaspektową domeną, która wymaga głębokiego zrozumienia dynamiki technicznej, strategicznej, regulacyjnej i rynkowej. Niezależnie od tego, czy jesteś doświadczonym Miner, czy dopiero zaczynasz, bycie poinformowanym i elastycznym jest kluczem do rozwoju w tej stale ewoluującej dziedzinie. Dziękuję za uwagę i czekam na pytania i dyskusje.
Zrozumienie Joinmarket
Adam Gibson oferuje wgląd w Joinmarket, szczegółowo opisując, w jaki sposób ta implementacja CoinJoin zwiększa prywatność i zamienność Bitcoin. Omawia, w jaki sposób Joinmarket ułatwia współpracę, Trustless i anonimowe transakcje w ekosystemie Bitcoin. Następnie w drugiej części pokazuje, jak uruchomić Joinmarket w Signet.
Hackathon pierwszego roku Cubo+
Hackathon Groupe 1 - Dziedzictwo Satoshi
Grupa Satoshi Legacy prezentuje swoją pracę nad budową Lightning e-commerce z Shopify, React JS i Hydrogen oraz bramką płatności IBEX.
Groupe 2 Hackathon - Honey Badger
Grupa Honey Badger prezentuje swoje rozwiązanie dla bloga z wbudowanymi mikropłatnościami Lightning Powered z wykorzystaniem LnBits oraz Next.js, Node.js i Hydrogen.
Groupe 3 Hackathon
Trzecia grupa prezentuje Lightning Network Node Dashboard za pośrednictwem niestandardowego API, LND, vue.js, node.js, Bootstrap.
Groupe 4 Hackathon - Stypendium Satoshi
Grupa Satoshi's Fellowship prezentuje aplikację do gier LN wykorzystującą LnBits i MongoDB, Poetry, Node.js.
Groupe 5 Hackathon - Lighting Walker
Grupa Lightning Walker prezentuje swoje rozwiązanie dla usługi przekazów pieniężnych przy użyciu MySQL, JavaScript i ZDB API.
Sekcja końcowa
Recenzje i oceny
true
Wnioski
true