[twitter-follow username="btctip_cz" scheme="dark"]
.
Mimblewimble, aneb tajemná zpráva Toma Raddla
Na úvod je třeba říct, že tento článek bude prošpikován mnoha odkazy na sérii o známém čarodějovi z Bradavické školy čar a kouzel a není to můj nápad ani snaha o glorifikaci této ságy. Článek se totiž týká nového protokolu, který se jmenuje Mimblewimble. A znalci Harryho Pottera jsou už na nohou. Jistě, to slovo totiž znamená zaklínadlo, které se pronáší, pokud chceme oběti zaklínadla zamotat jazyk tak, aby nebyl schopen vyslovit konkrétní sdělení, například tajemství. A tak místo prozrazení toho tajemství nebohá oběť pouze zamumlá něco nesrozumitelného.
Mimblewimble představuje protokol pro nový typ kryptoměny, který přináší zejména anonymitu a nevysledovatelnost transakcí a některé další zajímavé vlastnosti. Anonymita přitom není ve světě kryptoměn novinkou a celá záležitost by se dala odbýt větou “vždyť máme Monero (nebo ZCash)”. Přesto stojí za pozornost, zvlášť proto, že se o tomto projektu občas mluví i jako o možném nástupci Bitcoinu.
Nejprve ale o tom “kde se vzal Mimblewimble”, protože to samo o sobě je příběh zralý pro Hollywood. V roce 2016, konkrétně 2. srpna, se na IRC kanálu vývojářů Bitcoinu objevil příspěvek od uživatele, který se podepsal jako “Tom Elvis Jedusor”. Snadno zjistíme, že jde jen o francouzskou verzi jména postavy ze série Harryho Pottera: Tom Rojvol Raddle (v originále Tom Marvolo Riddle). A jak víme z dílu Harry Potter a tajemná komnata, jeho jméno je přesmyčkou vedoucí ke zprávě “Já Lord Voldemort” (v originále “jsem Lord Voldemort”).
V příspěvku tohoto uživatele byl pouze odkaz na dokument napsaný v prostém textu, ve kterém byl představen zcela nový protokol nazvaný Mimblewimble [1]. V kryptoměnovém světě se pro takové dokumenty vžilo označení whitepaper. Autor se tedy stejně jako kdysi tajemný Satoshi Nakamoto pokusil napodobit zavedení nové revoluční myšlenky a zůstat přitom v anonymitě. Tento uživatel totiž nikdy předtím žádný příspěvek pod tímto účtem neposlal a i potom zůstal v tajemném mlčení. Samotný dokument byl navíc umístěn v síti Tor (anonymní “darknet” na internetu).
Že jde opravdu o revoluční dokument potvrdilo mnoho čtenářů - odborníků na programování kryptoměn a na kryptografii. Někteří neskrývali nadšení, které by se dalo přirovnat například nadšení novináře, který našel téma na sólokapra. Nový protokol mění uspořádání blockchainu tak, aby umožňoval posílat anonymní nevysledovatelné transakce a přitom dokáže optimalizovat blockchain, aby při tomto procesu nenarůstal do olbřímých rozměrů. K dokumentu se navíc nikdo nehlásil (největší konspirátoři dokonce tvrdí, že byl poslán z budoucnosti).
Teď ale na chvíli romantiku stranou. Dost pravděpodobně je tím tajemným Tomem Raddlem jeden z uživatelů onoho kanálu a dost možná se aktivně podílí (spekulace) na vývoji jedné z implementací, byť stále anonymně pod některou přezdívkou postavy ze série o Harry Potterovi. Prvotní dokument nebyl zdaleka kompletní, pokud jde o popis kritických elementů protokolu, pouze nastiňoval cestu a též obsahoval nějaké chyby v popisu vlastní kryptografie.
Původně se také uvažovalo, že by nový protokol byl implementován v Bitcoinu, avšak protokol je od Bitcoinu tak odlišný, že se od tohoto nápadu upustilo. V říjnu roku 2016 pak Andrew Poelstra sepsal delší a podrobnější popis protokolu Mimblewimble, přičemž vyřešil většinu doposud nedořešených problémů, opravil chyby a vznikl tak plnohodnotný whitepaper. [2]. Záhy na to byl založen projekt s názvem Grin, který si kladl za cíl vytvořit na základě popisu zcela novou kryptomněnu (o tom ale dále).
Deferzo*) blockchainu a další vlastnosti Mimblewimble
Jak už bylo napsáno, Mimblewimble přináší anonymní a nevysledovatelné transakce, stejně jako třeba protokol CryptoNote, z něhož je odvozeno Monero a další kryptoměny nabízející anonymitu (například český projekt CitiCash). Je nutné ale dodat, že vlastností CryptoNote je mnohonásobné bobtnání blockchainu, mnohem rychleji se plní, než třeba u Bitcoinu. Pokud by Monero bylo ve stejné fázi adopce jako Bitcoin, měl by jeho blockchain velikost měřenou v jednotkách terabajtů.
Podobně lze Mimblewimble srovnat například se ZCash, což je kryptoměna postavena na systému zero-knowledge cryptography. Anonymní transakce v ZCash jsou co do velikosti srovnatelné s Monerem, ZCash ale nabízí i levnější “veřejné” transakce, jejichž formát vychází z formátu bitcoinových transakcí. Bohužel, využití ZCashe pro anonymní transakce je velice nízké, některé zdroje uvádí pouze 1% objemu transakcí, čímž ZCash degradují na úroveň Bitcoinu s 5x větším blockchainem.
Protokol Mimblewimble obsahuje mechanismus, jak prořezávat blockchain, aby nenarůstal tak rychle. Dokonce je spočítáno [3], že blockchain u Mimblewimble poroste 3x pomaleji, než blockchain u Bitcoinu, který žádné prvky anonymity neobsahuje. Je doufám jasné, proč jde o revoluční návrh? Navíc, MimbleWimble obsahuje nástroje na eliminaci historie. Totiž k ověření stavu blockchainu není u tohoto protokolu historie potřeba. Optimalizace jde dokonce tak daleko, že není potřeba ukládat do blockchainu ani transakce mezi prostředníky. Například pokud Bob pošle coiny Alici a ta je přepošle Marii, pak Alice nakonec bude z blockchainu úplně vymazána (tedy její transakce) a bude to vypadat, jako kdyby Bob poslal coiny přímo Marii.
*) Zaklínadlo na zmenšení předmětu
Nevýhody protokolu Mimblewimble
Má ta věc nějaké nevýhody? Samozřejmě že má. Tou první je, že se nedá skriptovat. Bitcoin od začátku obsahuje skriptovací jazyk, kterým lze vytvářet různé podmíněné transakce a chytré kontrakty. Mimblewimble nic takového schopen není. Z tohoto pohledu se zdá, že je to dost zásadní rána v době, kdy chytré kontrakty začínají lákat i velké investory a kdy akcie bohatých společností jsou tokenizovány nad Etherem. Na druhou stranu, možná je to lepší, že není cílem protokolu vytvářet konkurenci Ethereu.
A co se týká skriptování Bitcoinu? Praxe ukázala, že to není až tak potřeba. Skripty se sice používají, ale v rámci běžného použití jsou povoleny asi čtyři typy s různými variacemi. Kdyby místo skriptů byly v Bitcoinu hardcoded typy transakcí, udělalo by to stejnou službu.
Další nevýhodou je, že v protokolu neexistuje nic jako adresa. Na vytvoření transakce spolupracují obě strany současně, tedy jak odesílatel, tak příjemce. Znamená to, že peněženky musí být online, v tom primitivním řešení dokonce musí mít i veřejnou IP adresu. Pokud nemohou být obě strany online současně, lze k výměně informaci použít například e-mail, nebo messenger. Uvidíme, jestli se na tento problém časem najde nějaké uživatelsky přívětivé řešení.
Dva princové jedné krve
Dva roky vývoje a na začátku roku 2019 byl spuštěn mainnet. Jenže místo jedné kryptoměny máme hned dvě. Tou první je Grin [4] - jméno bylo opět odvozeno jako odkaz do světa H.P. a to na Gringottovy, kteří v Příčné ulici vedou banku. Druhá kryptoměna se jmenuje Beam [5] (nezjistil jsem podle čeho). Ačkoliv se zdá, že jsou ve vzájemné konkurenci, oba týmy se ujišťují, že jde o spolupráci. Tak proč vznikají dvě kryptoměny?
Je to dáno mnoha rozdíly, které oba projekty mají. Sice staví na společném protokolu, ale liší se v cíli, který chtějí dosáhnout.
Projekt Grin si klade za cíl vytvořit plnohodnotnou a stoprocentní referenční implementaci původního Mimblewimble protokolu a nic navíc. Oproti tomu Beam používá Mimblewimble jen jako engine své kryptoměny, ale má s ní vlastní plány. Liší se i způsob financování. Grin je víceméně financován komunitou a sponzorskými dary, zatímco Beam vznikl jako Izraelský startup placených programátorů a jeho financování zajišťují investoři.
Na Grin lze nahlížet jako na komunitní otevřený projekt, zatímco Beam má blíž ke komerčnímu projektu. Jeho komerční cíl je patrný například v implementaci pravidla, že 20% vytěžených coinů jde automaticky vývojářům na podporu vývoje (a předpokládám, že investorům jako zisk). Grin nic takového nemá.
Podívejme se na další rozdíly: pro vývoj Grinu byl zvolen programovací jazyk Rust. oproti tomu Beam je naprogramován v C++. Rozdíly jsou také v těžbě: Oba coiny sice patří do POW, ale těžební funkce pro Grin je Cuckatoo, zatímco u Beam se těží v upraveném Equihash. Oba coiny však hledají takový způsob těžby, který je ASIC-rezistentní, cílem je tedy hlavně ochrana před monopolem Bitmainu.
Rozdíly najdeme i v distribuci nových coinů. Zatímco v ostatních tématech hraje tu kontroverzní stranu Beam, na poli distribuce je to Grin který zvolil kontroverzní cestu. Grin totiž definuje konstantní odměnu za blok od spuštění navždy. Žádný halving, žádný limit, stejně jako Ethereum, bude přibývat do nekonečna a to rychlostí 60 coinů za blok. Přesto podíl nových coinů bude časem klesat a tím klesat i inflace asymptoticky k nule. Oproti tomu Beam jde cestou snižování odměny za blok v dosti komplikovaném plánu, kdy emise nových coinů končí za 133 let na počtu 262.8 milionů Beamů. Oba coiny generují blok 1x za minutu.
A dále je tu hromada drobných rozdílů. Beam je rozhodně vyspělejší co se týká připravenosti k adopci. Má k dispozici peněženky s grafickým prostředím i peněženku pro telefony s operačním systémem Android. Grin spíš rozběhnete na Linuxu v konzoli a k posílání transakcí budete potřebovat zkompilovat plnohodnotný uzel ze zdrojových kódů. Zato se můžete těšit na rychlejší počáteční synchronizaci, protože Grin toto řeší lépe než Beam.
Většinu rozdílů najdete na stránce projektu Beam [6]
Celkově je z toho znát, jak Grin je vyvíjen spíš jako proof of concept, zatímco Beam je komerční produkt. Otázkou je, který z coinů podpořit a který má před sebou zářivější budoucnost.
Dá se očekávat, že Beam bude tlačit své komerční cíle do projektu a nebude chtít moc poslouchat komunitu. Byť by kryptoměna měla být nezávislá na svých tvůrcích, u Beamu mohou mít zásadnější hlas než vývojáři Grinu, kteří spíš budou plnit zadání komunity. Nedá se v tuto chvíli říct, která cesta je správnější.
A ještě odbočka k obchodování. V době psaní článku se Grin obchoduje na HotBit s cenou kolem 8 USD za 1 Grin. Beam lze pořídit levněji, v přepočtu kolem 0.5USD.
Odkazy:
[1] https://download.wpsoftware.net/bitcoin/wizardry/mimblewimble.txt
[2] https://download.wpsoftware.net/bitcoin/wizardry/mimblewimble.pdf
[3] https://medium.com/beam-mw/whats-the-difference-between-monero-zcash-and-beam-953eafd89354
[4] https://github.com/mimblewimble/grin/wiki
[5] https://www.beam.mw/
[6] https://www.beam.mw/faq/what-is-the-difference-between-beam-and-grin
[easy-social-share buttons="facebook,twitter,google,linkedin" counters=1 counter_pos="inside" hide_names="no" template="tiny-retina"]