Skip to content

TECH TALK 5 BITCOIN I ETHEREUM PODSTAWY I POROWNANIE

Kamil Śliwak edited this page Jun 28, 2018 · 1 revision

Tech Talk 5. Bitcoin i Ethereum: podstawy i porównanie

Coin v1 - blokzupa

Bloki i sieć P2P

Blok

  • Blok jest po prostu ciągiem bitów.
  • Nie ma ustalonego rozmiaru.

Sieć P2P

  • Komputery połączone w sieć P2P (overlay).
  • Klienci rozgłaszają znane im bloki reszcie sieci.
  • Wspólne, publicznie znane zasady mówiące o tym, który blok jest poprawny.
Bitcoin

Własny protokół, Bitcoin Developer Reference > P2P Network

Ethereum

ÐΞVp2p Wire Protocol

Coin v2 - bloki

Bloki

Sumy kontrolne

  • Wszyscy klienci znają wspólny blok początkowy.
  • Każdy blok zawiera sumę kontrolną wyliczoną z poprzedniego bloku.
  • Zmiana jednego bloku wymagałaby przeliczenia sum kontrolnych we wszystkich blokach, które przyszły po nim.

Nasz przykładowy algorytm sumy kontrolnej

  • Diagram: prosty algorytm tylko dla ilustracji
checksum(n) = sum(nonce(n-1) + content(n-1) + checksum(n-1)) modulo 10000

Orphans

  • Można wygenerować wiele różnych ciągów bloków spełniających warunki.
  • Klient wybiera jeden z łańcuchów.
    • Najczęstsze kryterium: najdłuższy łańcuch wygrywa.

Block height

  • Bloki dodawane są jeden za drugim. Numer bloku to block height.

Proof of Work

  • Klienci mogą łatwo spamować sieć poprawnymi blokami.
  • Dodatkowe wymaganie na sumę kontrolną.
    • Każdą sumę możemy intepretować po prostu jako dużą liczbę.
    • Załóżmy, że maksymalna wartość to S.
    • Wymagamy, aby suma była mniejsza niż pewna arbitralnie ustalona wartość S_min.
    • Wybieramy mocny kryptograficznie algorytm sumy kontrolnej. Oznacza to, że bardzo trudno znaleźć dane, które dają konkretną wartość sumy.
    • Jedyny sposób to próbować po kolei różne wartości aż trafimy na jakąś spełniającą warunek.
      • Nonce: blok zawiera pole, w które miner wstawia kolejne wartości i przelicza od nowa sumę aż znajdzie taką, która spełnia warunek.
    • Prawdopodobieństwo znalezienia odpowiedniej sumy to S_min / S.
    • Łatwo ustawić taką wartość S_min, aby przy ustalonej mocy obliczeniowej sieci prawdopodobieństwo znalezienia nowego bloku.
  • Potwierdzenia bloku
Bitcoin

Sha-256

  • Łatwe do liczenia równolegle: GPU, ASIC.
Ethereum

KECCAK-256

  • Nie SHA-3. Wybrane przed standaryzacją.
  • Ethash: algorytm bierze pod uwagę więcej niż pojedynczy blok aby uczynić obliczenia bardziej intensywnymi pamięciowo.
    • Konstrukcja ASICów jest mocno utrudniona.

Dostosowanie trudności

  • Moc obliczeniowa sieci się zmienia.
  • Co określoną liczbę bloków klient ustala nowe S_min.
Bitcoin
Ethereum

Konsensus wśrod klientów

  • Wpólne zasady, pojedynczy klient, który się wyłamie, traci.
  • 51%-attack.
  • Forki.

Coin v3 - transakcje

Transakcje

Nagroda za wykopanie bloku

Transakcje

  • Budowa transakcji
  • Bitcoin: UTXO
  • Ethereum: adresy kont

Rozgłaszanie transakcji w sieci P2P (mempool)

Podpisywanie transakcji

Stan początkowy

Double spending