Zajęcia
Informacje o przebiegu zajęć

Laboratorium informatyczne

Data Opis
1 Idea "niezniszczalnego", idealneg rejestru zdarzeń.
  • Zagadnienia i materiały
    • Overview
    • Piotr Fulmański, Blockchain. Simple introduction series, Rozdział 1: The need (link)
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Idea rejestru/księgi i uzasadnienie potrzeby jego istnienia.
2 Co będzie potrzebne aby zaimplementować idealny rejestr zdarzeń.
  • Zagadnienia i materiały
    • Piotr Fulmański, Blockchain. Simple introduction series, Rozdział 2: The tools (link)
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Wady i zalety systemów rozproszonych.
    • Identyfikacja, uwierzytelnienie, autoryzacja.
    • Dlaczego architektura peer-to-peer (wisdom of the crowd).
    • Czym jest Blockchain.
3 Niepodważalne znakowanie danych
  • Zagadnienia i materiały
    • Piotr Fulmański, Blockchain. Simple introduction series, Rozdział 3: Data fingerprinting (link)
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Czym jest odcisk danych.
    • Czym jest hash kryptograficzny i co powinno go charakteryzować.
    • Python: przekształcanie danych w ciąg binarny i z powrotem.
    • Wysyłanie wiadomości wraz z ich skrótem.
4 Zagadka kryptograficzna
  • Zagadnienia i materiały
    • Piotr Fulmański, Blockchain. Simple introduction series, Rozdział 3: Data fingerprinting (link)
  • Zadania
    • Zaimplementować Pow i zrobić po 10 testów dla trudności od 1 do 6. Otrzymane wyniki przesłać na mail.
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Czym jest PoW.
    • Jaką rolę pełni 'sól' w procesie liczenia hash-y.
5 Sposoby hashowania danych
  • Zagadnienia i materiały
    • Piotr Fulmański, Blockchain. Simple introduction series, Rozdział 3: Data fingerprinting (link)
  • Zadania
    • Zaimplementować co najmniej jeden z modeli liczenia hashy z grupy: sekwencyjne, hierarchiczne.
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Różne modele liczenia hash-y.
6 Podstawy kryptografii – teoria i praktyka (szyfrowanie)
  • Zagadnienia i materiały
    • Piotr Fulmański, Blockchain. Simple introduction series, Rozdział 4: Cryptography (link)
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Podstawowe wiadomości z kryptografii (co odróżnia szyfry symetryczne od asymetrycznych)
    • Praktycznie stosować krytptografię w aplikacji (Python)
7 Podstawy kryptografii – teoria i praktyka (podpis cyfrowy)
  • Zagadnienia i materiały
    • Piotr Fulmański, Blockchain. Simple introduction series, Chapter 5: Digital signatures (link)
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Implementować podpis cyfrowy wykorzystując istniejącą platformę kryptograficzną (Python)
8, 9 Łańcuch bloków - implementujemy podstawową strukturę łańcucha bloków
  • Zagadnienia i materiały
    • Piotr Fulmański, Blockchain. Simple introduction series, Chapter 6: Chain of blocks (link)
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Opisać budowę łańcucha bloków.
10 Wyjaśniamy czym jest difficulty i target
  • Zagadnienia i materiały
    • Piotr Fulmański, Blockchain. Simple introduction series, Chapter 8: Difficulty and target (link)
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Omówić czym jest difficulty i target oraz umieć podać na przykładach sposób ich obliczania.
11 Omawiamy mechanizm konsensusu
  • Zagadnienia i materiały
    • Piotr Fulmański, Blockchain. Simple introduction series, Chapter 10: Searching consensus (link)
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Wyjaśnić dlaczego blockchain, łańcuch bloków, raczej powinien być postrzegany jako blocktree – drzewo bloków.
    • Wyjaśnić na czym polega kryterium najdłuższego łańcucha (Longest Chain Criterion) i dlaczego w praktyce kryterium to zastąpione jest przez kryterium najcięższego łańcucha (Heaviest Chain Criterion).
    • W jakich okolicznościach powstaje w łańcuchu bloków rozgałęzienie łańcucha (fork).
    • Jak liczyny chainwork.