Vytvorenie a overenie časovej pečiatky a dešifrovanie informácie

Paralelná Polis občas publikuje informácie o podozreniach z korupcie, prípadne iných informácií, kedy je dôležité overiť čas dostupnosti informácie. Aby sme nikomu neuškodili, ale zároveň boli schopní dokázať, že napríklad uchádzač vo výberovom konaní bol dopredu jasný, publikujeme tieto informácie pomocou siete memo.cash, ktorá využíva časové pečiatky blockchain siete BCH.

Nakoľko počet znakov je obmedzený, spôsob overenia je nasledovný:

Paralelná Polis odkazuje na konkrétny príspevok. Postup si ukážeme na konkrétnom príklade.

Paralelná Polis má oficiálny účet na sieti memo.cash. Kliknutím naň môžete vidieť všetky príspevky. Niektoré z nich sú zašifrované. Ak Paralelná Polis publikuje nejakú informáciu, napríklad na svojom blogu, odkáže na konkrétny zašifrovaný príspevok. My sa konkrétne budeme zaoberať týmto príspevkom. Jeho plné znenie je:

jA0ECQMC6ECFkYZkL5Hl0ocBWlVHiItoTM9kRTJxzoICodXNV9ckWoxEmxym7oyr
URwPDw+KZ3P02JCIhCAnAFbkoZftrrAuhMFwitP/o//NPYTg7LXN7pAiYwp2w73N
YvKjR3n3c25QO0RG7pJh3dgmb59gVSczH7nz58gdvbY0hVVDZLV0d3xTtJcN9Io9
JfvA525iIgY=
=ZzJc

V adrese tohto príspevku https://memo.cash/post/e2209fe9e08d33056dbbf995c091097f59d5480b42f1fde5fe02600eb4d9394c sa nachádza dlhší reťazec e2209fe9e08d33056dbbf995c091097f59d5480b42f1fde5fe02600eb4d9394c. Ten je identifikátorom transakcie. Ak ho zadáme do ľubovoľného prehliadača transakcií na sieti Bitcoin Cash, napríklad blockchair.com, dostaneme informáciu o tom, kedy bol tento prostriedok zaradený do blockchainu. Informácia pre túto konkrétnu transakciu je tu. Jedná sa o časovú pečiatku bloku a vidíme, že tento príspevok bol minerom vložený do blockchainu 9. júna 2018, to znamená, že táto informácia vznikla najneskôr v tento deň.

Informácia je zašifrovaná. Keď príde čas a rozhodneme sa informáciu zverejniť (resp. potvrdiť, že bola dostupná už v skoršom čase ako by mala byť), zverejníme dešifrovací kľúč. Pre túto transakciu je dešifrovacím kľúčom heslo:

LuhajmoosAishyarHips

Ako dešifrujeme túto transakciu? Na šifrovanie sme použili nástroj GNU Privacy Guard (GPG). Zašifrovanú informáciu musíme dostať do podoby, ktorá je zrozumiteľná pre gpg, teda musíme pridať riadok pred a za samotnú správu, ktorý hovorí o tom, že sa jedná o šifrovanú PGP správu (tieto riadky nie sú súčasťou správy preto, lebo memo.cash podobne ako Twitter má obmedzenú dĺžku správ). Všimnite si, že za prvým riadkom je ešte jeden prázdny riadok navyše, ale pred posledným riadkom nie je žiadny nový prázdny riadok.

Celá správa vyzerá takto:

-----BEGIN PGP MESSAGE-----

jA0ECQMC6ECFkYZkL5Hl0ocBWlVHiItoTM9kRTJxzoICodXNV9ckWoxEmxym7oyr
URwPDw+KZ3P02JCIhCAnAFbkoZftrrAuhMFwitP/o//NPYTg7LXN7pAiYwp2w73N
YvKjR3n3c25QO0RG7pJh3dgmb59gVSczH7nz58gdvbY0hVVDZLV0d3xTtJcN9Io9
JfvA525iIgY=
=ZzJc
-----END PGP MESSAGE-----

Správu uložíme do súboru testovaci-prispevok.txt.asc a dešifrujeme pomocou príkazu:

gpg -d testovaci-prispevok.txt.asc

Po zadaní hesla LuhajmoosAishyarHips dostaneme výstup:

Testovacie tvrdenie ktorého čas vypublikovania môžete overiť

Čo nám táto technológia umožní? Pozrime sa na to spätne.

  • V čase vytvorenia správy bola dostupná informácia (v tomto prípade sa jedná o text “Testovacie tvrdenie ktorého čas vypublikovania môžete overiť”)
  • Autor správy vytvoril zašifrovanú verziu a heslo si uložil, ale nikomu ho neodovzdal. Správa teda ostáva utajená až do termínu zverejnenia hesla.
  • Správa (v skrátenej podobe bez prvého a posledného riadku) bola vypublikovaná v blockchain-e a bolo teda overené, že táto správa existovala najneskôr v čase, kedy ju miner zaradil do bloku. To sa dá overiť priamo v blockchaine pomocou jedného z mnohých prehliadačov blockchainu siete Bitcoin Cash.
  • Správu zároveň zverejnil oficiálny účet Paralelnej Polis, ktorý je verejne známy. V prípade Paralelnej Polis sa jedná o adresu qqkdzm49858w4c34p8tjtlkg4985p0hulue5zfegau alebo 155yd3e7bvx2qCQrTHvVSme93WmQLXKQDs (v závislosti od služby, ktorou adresu prehliadate sa jedná o dva formáty tej istej adresy a sú medzi sebou zameniteľné pomocou konverzného nástroja). Táto správa je zároveň digitálne podpísaná, takže si môžete byť istí, že pochádza od nás.
  • Keď príde správny čas, zverejníme heslo a tak umožníme ľuďom správu dešifrovať a overiť, že bola dostupná najneskôr v čase zaradenia do blockchainu.
  • Na profile Paralelnej Polis zároveň napíšeme, ktorá správa sa týka akého prípadu, napríklad táto správa odkazuje na túto zašifrovanú informáciu. Ak si pozriete profil Paralelnej Polis, uvidíte všetky správy. Viac informácií v poslednej časti článku.

Ako takúto schému vytvoriť?

V prípade, že by ste chceli vytvoriť podobnú schému a odovzdávať tak časovo opečiatkované informácie verejnosti alebo ľubovoľnej tretej strane, potrebujete urobiť nasledovné kroky:

Zaregistrujte sa na službe memo.cash. Nabite si účet pomocou kryptomeny Bitcoin Cash alebo pomocou služby Shapeshift ľubovoľnou kryptomenou. Na vytvorenie krátkych správ vám stačí pár centov, nemusíte si nabiť viac ako euro.

Zverejnite na svojom webe oficiálnu memo.cash adresu, nastavte si profilový obrázok, meno a profil.

Ak zverejňujete informáciu, verejnú časť uverejnite na svojom blogu, do ktorého vložíte linku na zašifrovanú správu.

Tú vytvoríte pomocou nástroja GNU Privacy Guard. Ak máte zašifrovanú správu v súbore sprava.txt, môžete tak urobiť z príkazového riadku:

gpg -a -c sprava.txt

Po zadaní hesla (2x po sebe) vznikne súbor sprava.txt.asc. Z neho zoberte strednú časť (bez prvého a posledného riadku) a vložte ako správu do služby memo.cash.

Do blogu vložte link na túto správu.

Potom na memo.cash napíšete textovú správu o tom, čoho konkrétne sa daná zašifrovaná správa týka.

Ak a keď sa rozhodnete správu zverejniť, zverejnite heslo, ktoré ste zadali. Ktokoľvek s prístupom k tomuto heslu vie správu dešifrovať a zároveň overiť kedy ste ju vložili do blockchainu.

Záver

Veríme, že tieto nástroje vám umožnia publikovať informácie a overiť ich časovú platnosť. Predpokladáme, že tieto nástroje využijú novinári, neziskové organizácie a iné osoby, ktoré by chceli zvýšiť transparentnosť a zabezpečiť časovú pečiatku citlivej informácie. Blockchain je zároveň necenzúrovateľné médium, kde je možné publikovať informácie tak, aby ich nebolo možné neskôr odstrániť.

Často kladené otázky a odpovede

Prečo ste nepoužili opentimestamps alebo inú službu?

Existuje mnoho spôsobov, ako tento projekt urobiť. Konkrétne opentimestamps sme nepoužili  najmä preto, lebo môžeme dokázať, že sme vydali jednu verziu a uložili ju do blockchainu, takže informáciu samotnú by nemohol nikto scenzúrovať.

Pomocou opentimestamps by sme mohli vytvoriť 365 správ, ako napríklad:

“Vojna začne 1. januára”
“Vojna začne 2. januára”

Keď začne vojna, zverejníme časovú pečiatku len jedného z týchto súborov. Nepreukazuje to, že sme vedeli, kedy začne vojna, len že táto informácia bola k dispozícii v danom čase – spolu ako množstvo iných informácií. Ak chceme preukázať, že vieme presne, kedy začne vojna, vložíme šifrovanú informáciu do nášho profilu a prepojíme túto informáciu s nezašifrovanou správou ktorá hovorí čoho sa správa týka (Transakcia [číslo transakcie] je o dátume začiatku vojny). Môžete overiť, že neexistujú žiadne ďalšie správy o dátume začiatku vojny prezeraním profilu a zobrazením všetkých príspevkov. Takto vieme dokázať, že sme naozaj vedeli, kedy vojna začne, pretože sme vložili časovo opečiatkovanú informáciu o začiatku, ale zároveň sme nevložili k tejto téme žiadne iné zašifrované informácie.

Projekt opentimestamps máme veľmi radi a myslíme si, že je to veľmi užitočný a zaujímavý projekt, ale nie je vhodný pre tento účel.