Teechan: Řešení škálovatelnosti?

Jak jsme si naznačili v minulém článku, systém Teechan vyvinutý ve spolupráci Cornell University a London Imperial College může být elegantním řešením problému škálovatelnosti Bitcoinu (nejbližším správným překladem asi bude „rozšiřitelnost kapacit systému v případě náhlé, nebo trvalé vysoké zátěže“ – zjednodušeně se dá tento problém shrnout do diskuze o velikosti bloku v blockchainu). Ta je jedním z nejdiskutovanějších problémů bitcoinové komunity již minimálně rok.

Mezi nejslibnějšími vyvíjenými inovacemi jsou například dvoucestné platební kanály. Tyto kanály mohou být rozšířeny do tzv. Lightning Network, která umožní bezpečné provádění transakcí s minimálním množstvím zápisů do blockchainu. Toto řešení může být ještě zefektivněno pomocí tzv. Segregated Witness, upgradem protokolu, který navrhl tým jádrových vývojářů Bitcoinu. Nicméně toto řešení nebylo ještě do protokolu implementováno a asi ještě chvíli nebude.

Minulý týden oznámili čtyři výzkumníci z Imperial College LondonCornell University – Joshua Lind, Ittay Eyal, Peter Pietzuch a Emin Gün Sirer – že našli jiné řešení platebních kanálů. Zveřejnili také pracovní návrh, kde nastínili detaily řešení, které nazývají „Teechan“, a úspěšně otestovali ranou alfaverzi daného softwaru.

Podle vyjádření Eyala pro server Bitcoin Magazine, je jejich řešení mnohem elegantnější, než výše zmíněné Lightning Network a Segregated Witness.

„Teechan je efektivnější, než ostatní platební kanály. Rychleji vyřizuje platby a umožňuje vyšší počet plateb za sekundu“, dodal tento výzkumný pracovník Cornellovy univerzity. „A navíc nevyžaduje žádné změny současného protokolu Bitcoinu“, dodává Eyal.

Staré dobré platební kanály

Ve své podstatě byly dosud platební kanály jen adresy s vícenásobným podepisováním (multisig), ale chytře rozšířené. Řekněme, že Alice a Bob chtějí mezi sebou otevřít platební kanál. K tomu musí vytvořit multisig adresu, která bude vyžadovat 2 ze 2 podpisů, aby platba odešla. Toto umožňuje již stávající bitcoinový protokol. Každý z nich si pak vygeneruje vlastní soukromý klíč. Bitcoiny na této adrese tedy budou moci odejít pouze v případě, kdy Alice i Bob transakci podepíší svými soukromými klíči. Pak Alice i Bob pošlou na danou adresu dejme tomu po jednom Bitcoinu. Tato transakce je po validaci zapsána do blockchainu a dojde tak k „uzamčení“ těchto mincí na dané multisig adrese.

Stav tohoto platebního kanálu je nyní 1:1 – oba dva mají na dané adrese po jednom BTC. Alice si ale chce koupit od Boba třeba nové boty za cenu 0,1 BTC. Namísto posílání Bitcoinu na jinou adresu pomocí zápisu v blockchainu se Alice a Bob prostě dohodli, že na dané adrese patří Alici 0,9 a Bobovi 1,1 BTC. Stav platebního kanálu se tak posunul k 0,9:1,1. Takto Alice Bobovi efektivně zaplatila požadovanou cenu.

Pokud bude chtít Alice, nebo Bob daný platební kanál uzavřít, pak oba použijí své soukromé klíče a na definované adresy tak odejde poslední stav platebního kanálu – v tomto případě 0,9 Alici a 1,1 Bobovi.

Eyal uvádí, že krása tohoto řešení je v tom, že mezi vytvořením a uzavřením platebního kanálu mohlo mezi Alicí a Bobem proběhnout tisíc transakcí. Dokud nedojde k uzavření kanálu a vyslání transakce do blockchainu, můžou Alice a Bob updatovat stav svého kanálu donekonečna. Takto tedy mezi nimi probíhají platební transakce, aniž by byl zatěžován blockchain. (Ten má v současnosti velikost cca 96GB, pozn.překl.).

Nicméně zbývají ještě některé věci k dopracování. Nejdůležitější je to, že platební kanály vyžadují jistý druh řešení, které zajistí, že se platební kanál ukončí v posledním aktualizovaném stavu a ten musí být stejný na obou stranách. Kdyby byl kanál ukončen v různých stádiích, mohlo by to vést k velkým problémům. Kdyby například Alice odeslala Bobovi stav před koupí bot a Bob odeslal stav po koupi bot, pak by Alice mohla žádat celý původní Bitcoin, jakoby se transakce nikdy nestala.

Typické dvoucestné kanály řeší tyto problémy způsobem, který vyžaduje čas, trezory a podobné triky. Řešení je funkční, ale v některých případech bude vyžadovat trochu flexibility (Segregated Witness) – ten ale stále na svou aktivaci v protokolu čeká.

Copak je v krabici?

Teechan, což je zkratka Trusted Execution Environment Channel (kanál prostředí s důvěryhodným spouštěním kódu), je nový protokol platebních kanálů. Stejně, jako Bitcoin sám, je toto řešení založeno na otevřeném zdrojovém kódu – což je transparentní a prověřitelné kýmkoli.

Teechan tedy přidává funkcionalitu, kdy bude naprosto nemožné, aby Alice a Bob byli schopni odeslat zastaralý stav kanálu. K tomu používá „trusted execution environment“ (TEE), zabezpečenou část hardwaru, kterou obsahují nejnovější komponenty, jako jsou procesory Intel se Software Guard Extensions (SGX). Plný seznam takového hardwaru naleznete například zde.

TEE v kombinaci s SGX zamezí nepovolaným očím, aby šmírovaly, co nemají. Nezašifrovaná data nikdy neopustí čip a tak dokonce ani vlastník takového počítače nebude mít šanci zjistit, co se vlastně v takovém procesoru děje – uvidí jen konečný výsledek“ vysvětluje Eyal.

S Teechanem si nejprve Alice i Bob nechají vygenerovat veřejný a soukromý klíč svým vlastním TEE (tj. uzamčeným prostředím ve svém vlastním procesoru). Jelikož je klíč generován v uzamčeném prostředí, nevědí ani Bob, ani Alice, jaký je jejich soukromý klíč.

Poté se TEE Alice a Boba spojí a vymění si veřejné klíče. V tomto případě ale TEE komunikují po zašifrovaném kanálu, takže ani Alice, ani Bob nemohou zjistit, o čem se jejich TEE baví. Následně si oba dva nechají vygenerovat své bitcoinové privátní klíče. Ještě jednou: jejich privátní klíč je uložený v uzamčeném hardwarovém prostředí, takže ani Alice, ani Bob nemohou tušit, jaký je jejich privátní klíč. Potom si TEE Alice a Boba vymění privátní klíče po zašifrovaném kanálu. Teď tedy mají obě TEE oba privátní klíče – a Alice ani Bob vůbec netuší, jaké to jsou.

S těmito privátními klíči je tedy TEE schopno otevřít běžný platební kanál. Alice a Bob si vygenerují multisig adresu a pošlou tam každý svůj Bitcoin. Tato transakce je zapsána do blockchainu a dva Bitcoiny jsou tedy „uzamčeny“ na dané multisig adrese.

Kdykoli Alice a Bob zaplatí jeden druhému, aktualizují tím stav svého platebního kanálu, vše se však děje uvnitř jejich TEE. V praxi tedy stav kanálu monitorují jejich procesory. A jejich TEE aktualizují stav kanálu pouze tehdy, když souhlasí jak Alice, tak Bob.

Když se nakonec Alice rozhodne platební kanál uzavřít, její TEE použije oba privátní klíče k tomu, aby podepsalo transakci, která odpovídá poslednímu odsouhlasenému stavu platebního kanálu. Tato transakce se zanese do blockchainu a Alice i Bob budou mít prostředky, které odpovídají poslednímu stavu platebního kanálu. Tu samou transakci může udělat i Bobovo TEE, pokud se Bob rozhodne uzavřít kanál jako první.

TEE tímto způsobem elegantně řeší obě velké bolístky běžných platebních kanálů. Jelikož TEE Alice i Boba znají oba dva privátní klíče, jsou tak obě schopné kdykoli dostat mince zpět. A důvod, proč Alice ani Bob nemohou odeslat jiný, než platný stav kanálu, je ten, že jim to TEE nedovolí.

Vše je o důvěře

Toto vše má ale jeden háček: Alice může Bobovi lhát o tom, že používá TEE, nebo naopak. I když oba tvrdí, že tuto technologii používají, a i když si vymění šifrované zprávy, mohou to vše dělat na běžném čipu. Alice si může svůj soukromý klíč ponechat a získat ten Bobův, čímž se jí otevře cesta k získání všech mincí na platebním kanálu. A zde nastupuje trocha důvěry.

Procesem, který se nazývá „remote attestation“ (vzdálený test) Intel, tvůrce technologie SGX, kterou používá Alice i Bob, může vzdáleně ověřit, jestli oba dva zúčastnění mluví pravdu. Díky speciálnímu privátnímu klíči, který by měl mít pouze Intel, může tato společnost ověřit, zda prvotní zprávy, které si Alice s Bobem vyměnili, pochází skutečně z technologie Teechan a z TEE obou zúčastněných. Intel ovšem nemůže číst obsah takové zprávy, ten zůstává zašifrovaný.

Věří-li Alice s Bobem Intelu, že jim nelže, můžou si být oba jisti, že jejich protistrana skutečně vytvořila prvotní zprávu na hardware s technologií TEE. Tím si mohou být oba dva jisti, že jejich protistrana zná privátní klíč pro danou multisig adresu (tj. že tento klíč zná pouze jejich čip podporující technologii TEE).

Věříte-li Intelu, bude to fungovat. Nicméně právě díky tomu někteří zdrženlivější členové bitcoinové komunity nebudou tomuto řešení důvěřovat. Předně nebudou chtít důvěřovat nikomu, ani Intelu. A za druhé, tato technologie není zcela bez obtíží – je nutné získat licenci na remote attestation od Intelu, což doteď nebylo zrovna nejjednodušší.

Eyal nicméně věří, že tyto obavy nejsou opodstatněné.

„Každý, kdo svou softwarovou peněženku provozuje na platformě od Intelu, již Intelu musí dostatečně věřit. Věřit také technologii SGX se tudíž zdá přirozené.“, dodává. „A pokud Intelu nevěříte, existují také alternativní poskytovatelé takového hardware. Máte-li tedy pochybnosti o Intelu, nebo není jeho hardware pro vás dostupný, pak máte možnost náhrady. Navíc je vaše důvěra omezena jen na zúčastněné strany – účastníky platebního kanálu a prodejce hardware. Kdokoli mimo tento platební kanál, tj. doslova kdokoli jiný na planetě, nebude mít ani tušení, jak je tento kanál konstruován, nebo kdo jsou jeho účastníci.“

Související

PŘIDEJTE SE DO DISKUZE