Wpis dotyczący technologii księgi rozproszonej i mechanizmów konsensusu pojawił się jako pierwszy w Coinpedia Fintech News
Wstęp
Blockchain rozwija się jak nigdy dotąd, podobnie jak ekosystem programistów. Zrozumienie podstawowych koncepcji blockchain jest koniecznością dla wszystkich związanych z tą dziedziną. Jednym z takich tematów, któremu należy poświęcić szczególną uwagę, aby zapewnić mocne podstawy, jest technologia księgi rozproszonej i mechanizm konsensusu. W tym artykule zbadamy różne aspekty DLT i kompleksowo przeanalizujemy mechanizm konsensusu. Powinniśmy zaczynać?
Co to jest technologia księgi rozproszonej (DLT)?
Distributed Ledger Technology (DLT) to zdecentralizowany cyfrowy system przechowywania danych, który rejestruje transakcje i wszystkie informacje na ich temat w wielu miejscach jednocześnie. Jak sama nazwa wskazuje, księga rozproszona to księga współdzielona, która jest replikowana przez wszystkie węzły uczestniczące w sieci. Jest to niekonwencjonalna baza danych, która nie wykorzystuje klasycznej metody klient-serwer, polegającej na przechowywaniu danych na centralnym urządzeniu lub administracji.
Cechy charakterystyczne
Decentralizacja:
Nie ma centralnego organu przechowującego wszystkie niezbędne dane lub zatwierdzającego transakcje, a wszystko jest rozproszone w sieci. Jak wiemy w blockchainie, każdy węzeł przechowuje kopię księgi, co gwarantuje, że nie ma żadnych rozbieżności wynikających z jednego punktu kontroli.
Przezroczystość:
Wszystkie węzły i uczestnicy mogą przeglądać księgę, zapewniając przejrzystość w całej sieci. W Ethrerneum transakcje są widoczne w eksploratorze blockchain.
Niezmienność:
Należy zachować szczególną ostrożność przed wykonaniem jakiejkolwiek transakcji, ponieważ po jej wykonaniu nie można jej już zmienić. Ta właściwość jest bardzo pomocna w zapobieganiu oszustwom i podwójnym wydatkom.
Porównanie z tradycyjnymi bazami danych
Tradycyjne bazy danych, takie jak SQL i MongoDB, korzystają ze scentralizowanych mechanizmów konserwacji i kontroli, dzięki czemu wszystkie uprawnienia znajdują się w jednym źródle punktowym. Ogólnie rzecz biorąc, CRUD (tworzenie, odczytywanie, aktualizowanie i usuwanie) służy do wykonywania wszelkich operacji na danych. Metoda ta jest podatna na manipulacje, uszkodzenia i straty. Z drugiej strony, technologie DLT wykorzystują słynne algorytmy konsensusu, aby zapewnić przejrzystość, integralność, bezpieczeństwo i decentralizację w zakresie utrzymywania i sprawdzania poprawności zapisów.
Rodzaje ksiąg rozproszonych
Łańcuch bloków:
Struktura techniczna: W Blockchain dane są szczególnie przechowywane w blokach, które są następnie łączone ze sobą za pomocą zasad kryptograficznych, tworząc łańcuch bloków, przechowywanych liniowo i chronologicznie.
Narzędzia programistyczne: Niektóre narzędzia programistyczne to Geth, który uruchamia i wdraża kontrakty i kod Ethereum. Parity to klient Ethereum, który jest szybki, bezpieczny i niezawodny. Truffle Suite to środowisko programistyczne dla Ethereum. W ostatnim czasie znaczącym wkładem było wdrożenie dApps.
Skierowany graf acykliczny (DAG):
Wyjaśnienie techniczne: Jeśli mówimy o sieciach, nie sposób nie wspomnieć o wykresach; jedną z takich struktur jest DAG. Tutaj transakcje są ze sobą powiązane, tworząc skierowany wykres, który nie tworzy cyklu. Zapewnia to skalowalność i wydajność.
Narzędzia programistyczne: IOTA SDK zapewnia zestaw narzędzi dla sieci IOTA, która wykorzystuje DAG o nazwie Tangle.
Hashgraf:
Wyjaśnienie techniczne: Hashgraph opiera się na systemie plotkarskim. Węzły rozmawiają z innymi węzłami, aby wymieniać się szczegółami (zdarzeniami). Następnie wirtualne głosowanie pomaga w osiągnięciu porozumienia.
Narzędzia programistyczne: Hedera Hashgraph SDK Zawiera mnóstwo gadżetów do tworzenia zdecentralizowanych aplikacji w sieci Hedera.
Znaczenie mechanizmów konsensusu
Mechanizmy konsensusu to zestaw protokołów, których powinny przestrzegać węzły w sieci, aby uzgodnić stan księgi. Mechanizmy te służą do walidacji i uwierzytelniania transakcji. Mechanizmy te zapewniają, że wszystkie węzły w DLT zgadzają się co do stanu księgi. Mechanizmy konsensusu oznaczają niezawodność i wiarygodność systemów DLT.
Problemy rozwiązywane przez mechanizmy konsensusu:
Podwójne wydatki: Jest to kwestia wydawania tego samego zasobu więcej niż raz.
Problem generałów bizantyjskich: osiągnięcie porozumienia stwarza przeszkody, gdy istnieją wadliwe lub wrogie węzły.
Oto przykład znanej metody PoW:
zaimportuj hashlib
czas importu
def proof_of_work(blok, trudność=4):
przedrostek = „0” * trudność
podczas gdy prawda:
blok[‘nonce’] += 1
hash_result = hashlib.sha256(str(block).encode()).hexdigest()
if hash_result.startswith(przedrostek):
blok zwrotny, hash_result
blok = {‘transakcje’: [], ‘nonce’: 0}
czas_początkowy = czas.czas()
nowy_blok, blok_hash = dowód_pracy(blok)
czas_końca = czas.czas()
print(f”Wydobyty blok: {block_hash}”)
print(f”Czas potrzebny: {end_time – start_time} sekund”)
Wspólne mechanizmy konsensusu
Dowód pracy (PoW):
Wyjaśnienie techniczne: Dowód pracy jest również znany jako wydobywanie. W tym mechanizmie konsensusu użytkownicy muszą rozwiązywać zagadki kryptograficzne, które ich nagradzają. Jest to konkurs, w którym pierwszy rozwiązany przechodzi przez nowy blok. Algorytm ten wykorzystuje haszowanie do zabezpieczenia łańcucha bloków.
Implementacja programisty: Narzędzia do wdrażania PoW są dostarczane przez środowisko programistyczne Bitcoin, takie jak Bitcoin Core.
Dowód stawki (PoS):
Wyjaśnienie techniczne: Proof of Stake wybiera walidatorów na podstawie liczby posiadanych przez nich monet i stawki jako zabezpieczenia. Proces selekcji nie zależy tylko od stawki, ale także od czynników takich jak wiek monety i losowość. Do dodania nowego bloku wybierani są walidatorzy posiadający najniższą wartość skrótu i najwyższą kwotę stawki
Implementacja programisty: Narzędzia i biblioteki dla PoS są dostarczane przez Ethereum 2.0 SDK
Delegowany dowód stawki (DPoS):
Wyjaśnienie techniczne: Wykorzystuje głosowanie i delegatów do zatwierdzania transakcji i tworzenia nowych bloków.
Implementacja programisty: Narzędzia i biblioteki dla DPoS są dostarczane przez EOSIO SDK.
Praktyczna tolerancja błędów bizantyjskich (PBFT):
Wyjaśnienie techniczne: PBFT wymienia komunikaty między węzłami w celu osiągnięcia konsensusu. Może zarządzać i tolerować do jednej trzeciej węzłów.
Implementacja dla programistów: narzędzia i biblioteki dla PBFT są dostarczane przez zestaw SDK Hyperledger Fabric.
Wdrażanie mechanizmów konsensusu
Przykłady kodu
Oto przykładowy fragment kodu Pos:
Walidator klasy:
def __init__(samodzielność, stawka):
self.stawka = stawka
własna reputacja = 0
walidatory = [Walidator(stawka) dla stawki w [100, 50, 30]]
wybrany_walidator = max(walidatory, klucz=lambda v: v.stawka + v.reputacja)
print(f”Wybrany walidator ze stawką: {selected_validator.stake}”)
Narzędzia i struktury programistyczne
Niektóre z narzędzi programistycznych są następujące:
Truffle Suite: obsługuje rozwój Ethereum
EOSIO SDK: używany w aplikacjach DPos
Zestaw SDK Hyperledger Fabric: używany w korporacyjnym łańcuchu bloków przy użyciu PBFT.
Rozważania dotyczące wydajności:
Mechanizmy konsensusu są dość skalowalne i dobrze radzą sobie z rosnącą liczbą transakcji. Niektóre popularne mechanizmy, takie jak Pos, chronią przed atakami Sybil. Dzięki temu są w większym stopniu bezpieczne. PoS jest bardziej energooszczędny niż PoW.
Wybór odpowiedniego mechanizmu konsensusu dla Twojego projektu
Czynniki do rozważenia:
Wymagania techniczne: Upewnij się, że mechanizmy odpowiadają niestandardowym wymaganiom, np. wolumenowi i szybkości transakcji.
Potrzeby bezpieczeństwa: Upewnij się, że bezpieczeństwo i integralność danych nie są zagrożone.
Skalowalność: jak dobrze wybrany przez Ciebie mechanizm jest w stanie obsłużyć wzrost liczby transakcji?
Efektywność energetyczna: Przed wyborem upewnij się, że wydajność i dostępność zasobów są dostępne.
Przypadków użycia:
dApps: Pos służy do bezpiecznych zdecentralizowanych aplikacji.
Inteligentne kontrakty: PoS można używać do inteligentnych kontraktów Ethereum.
Łańcuch dostaw: Hyperledger Fabric (PBFT) jest używany w rozwiązaniach dla przedsiębiorstw wymagających dużej przepustowości i bezpieczeństwa.
Przyszłe trendy w mechanizmach konsensusu
Innowacje
Proof of Authority (PoA): Mechanizm ten wykorzystuje do walidacji wstępnie wybrane podmioty. Używany w VeChain.
Mechanizmy hybrydowe: Kombinacja różnych elementów, takich jak PoS i PoW, służy do tworzenia wszechstronnych i niestandardowych mechanizmów konsensusu.
Rozwiązania skalowalne
Rozwiązania warstwy 2:
Lightning Network: Bitcoin korzysta z tej poprawki poza łańcuchem, aby zapewnić szybsze i tańsze przelewy. Konfiguruje ścieżki płatności pomiędzy użytkownikami. Plazma i Rollupy: Ethereum skaluje się za pomocą tych narzędzi. Zajmują się transakcjami poza łańcuchem i przedstawiają krótkie podsumowanie głównego łańcucha. Ogranicza to pracę dla głównego łańcucha bloków.
Fragmentowanie:
Partycjonowanie danych: Sharding dzieli łańcuch bloków na mniejsze, łatwiejsze w zarządzaniu bity, zwane również fragmentami. Każdy fragment zajmuje się transakcjami i inteligentnymi transakcjami. Odciąża to całą sieć.
Przetwarzanie równoległe: Odłamki mogą zajmować się transakcjami w tym samym czasie. To znacznie zwiększa liczbę transakcji, które sieć może obsłużyć.
Praktyczne przykłady i studia przypadków
Aplikacje w świecie rzeczywistym
Niektóre rzeczywiste zastosowania tych mechanizmów to Bitcoiny wykorzystujące Pow, Ethereum 2.0 korzystające z PoS i Hyoperledger Fabric używane przez IBM i różne inne przedsiębiorstwa na potrzeby prywatnych łańcuchów bloków.
Przewodniki po kodzie:
Poniżej znajduje się fragment kodu inteligentnej umowy Ethereum: (używana jest pozycja)
solidność pragmy ^0.8.0;
umowa SimpleStorage {
uint256 publiczne przechowywane dane;
zestaw funkcji (uint256 x) publiczny {
przechowywane dane = x;
}
funkcja get() widok publiczny zwraca (uint256) {
zwróć zapisane dane;
}
}
Wniosek
Przyjrzeliśmy się podstawowym ideom stojącym za DLT, różnymi rodzajami rozproszonych rejestrów i różnymi sposobami osiągania konsensusu. Rozmawialiśmy o tym, dlaczego te metody są ważne, aby zapewnić bezpieczeństwo i dokładność danych. Daliśmy też kilka przydatnych rad, jak zastosować je w praktyce. Dowiedz się więcej o DLT i konsensusie. Wypróbuj różne narzędzia i systemy i pomóż w rozwoju zdecentralizowanej technologii. Twój kolejny wielki pomysł już na Ciebie czeka!
Przeczytaj także: Dlaczego język programowania Rust jest najlepszym wyborem w przypadku innowacji Blockchain