Kryptografia jest najważniejszym komponentem blockchain. Jest to z pewnością dziedzina badawcza sama w sobie i opiera się na zaawansowanych technikach matematycznych, które są dość skomplikowane do zrozumienia. Spróbujemy rozwinąć solidne zrozumienie niektórych pojęć kryptograficznych w tej sekcji, ponieważ różne problemy mogą wymagać różnych rozwiązań kryptograficznych; jeden rozmiar nigdy nie pasuje do wszystkich. Możesz pominąć niektóre szczegóły lub odwołać się do nich w razie potrzeby, ale jest to najważniejszy element zapewniający bezpieczeństwo w systemie. W portfelach i wymianach odnotowano wiele hacków ze względu na słabszy projekt lub słabe implementacje kryptograficzne. Kryptografia istnieje już od ponad dwóch tysięcy lat. To nauka o zachowaniu poufności przy użyciu technik szyfrowania. Jednak poufność nie jest jedynym celem. Istnieje wiele innych zastosowań kryptografii wymienionych na poniższej liście, które zbadamy później:
- Poufność: tylko zamierzony lub upoważniony odbiorca może zrozumieć wiadomość. Można to również nazwać prywatnością lub tajemnicą.
- Integralność danych: Dane nie mogą być sfałszowane lub modyfikowane przez przeciwnika celowo lub przez niezamierzone / przypadkowe błędy. Chociaż integralność danych nie może zapobiec zmianie danych, może zapewnić sposób wykrywania, czy dane zostały zmodyfikowane.
- Uwierzytelnianie: Odbiorca zapewnia i weryfikuje autentyczność nadawcy.
- Niezaprzeczalność: nadawca po wysłaniu wiadomości nie może później odmówić wysłania wiadomości. Oznacza to, że jednostka (osoba lub system) nie może odmówić własności poprzedniego zobowiązania lub działania.
Wszelkie informacje w postaci wiadomości tekstowej, danych numerycznych lub programu komputerowego można nazwać tekstem jawnym. Chodzi o to, aby zaszyfrować zwykły tekst za pomocą algorytmu szyfrowania i klucza, który wytwarza kod tekstu zaszyfrowanego. Tekst zaszyfrowany może być następnie przesłany do zamierzonego odbiorcy, który odszyfrowuje go za pomocą algorytmu deszyfrowania i klucza, aby uzyskać tekst jawny. Weźmy przykład. Alice chce wysłać wiadomość (m) do Boba. Jeśli wysyła wiadomość tak jak jest, każdy przeciwnik, powiedzmy, Ewa może łatwo przechwycić wiadomość i poufność zostanie naruszona. Alice chce zaszyfrować wiadomość za pomocą algorytmu szyfrowania (E) i tajnego klucza (k), aby wygenerować zaszyfrowaną wiadomość o nazwie „tekst szyfrowany”. Przeciwnik musi być świadomy zarówno algorytmu (E), jak i klucza (k) aby przechwycić wiadomość. Im silniejszy algorytm i klucz, tym trudniej atakować przeciwnika. Należy zauważyć, że zawsze pożądane byłoby zaprojektowanie systemów blockchain, które są przynajmniej w bezpieczny sposób zabezpieczone. Oznacza to, że system musi opierać się pewnym typom ataków wykonywanych przez przeciwników. Wspólny zestaw kroków dla tego podejścia można przedstawić w sposób pokazany na rysunku
Ogólnie, istnieją dwa rodzaje kryptografii: kryptografia klucza symetrycznego i klucza asymetrycznego (a.k.a. klucz publiczny). Przyjrzyjmy się im osobno w kolejnych sekcjach.