Současné blockchainové platformy, jako je Ethereum, čelí omezením při zpracování složitých dat kvůli rigidnímu ukládání klíč-hodnota, což brání pokročilým aplikacím. Inteligentní smlouvy SQL zavádějí flexibilitu a umožňují vývojářům provádět dynamické dotazy a efektivně spravovat složité datové modely v decentralizované síti.
Inteligentní smlouvy SQL odemykají potenciál pro výkonnější decentralizované aplikace, což přináší revoluci v blockchainu nad rámec kryptoměn.
Zvláštní poděkování patří Junu Jiangovi z DePHY Network a Ryanu Sourymu z Usher Labs za zpětnou vazbu a postřehy.
V roce 2008 zazvonil alarm na Wall Street, když sofistikovaní obchodníci upadli do prvotního šílenství. Nadměrně zadlužené finanční instituce, které se zhroutily pod tíhou cenných papírů krytých rizikovými hypotékami, zanechaly chamtivé bankéře odhalené a prosící o záchranu. Centrální banky, které se zoufale snažily udržet si moc, zaplatily za hříchy bankéřů ze šekové knížky obyčejného člověka. Tato zrada odhalila nedostatky centralizovaného měnového systému a odhalila potřebu novějšího, svobodnějšího a spravedlivějšího finančního systému. Stejně jako americká revoluce a následná ústava oddělily církev od státu, objevila se nová revoluce zvaná bitcoin, která oddělila peníze a stát a umožnila mnoho stejných svobod a svobod, které jsou zásadní pro sebeurčení.
Technologie blockchain je technologie svobody. Umožňuje nám budovat finanční, identitní, informační a sociální koordinační systémy, které nevyžadují důvěru v centralizovaného zprostředkovatele. Individuálním svobodám se daří ve světě, kde centrální banka nekontroluje tok peněz, jediná platforma nekontroluje společenský diskurz a jediná společnost nekontroluje digitální identity.
Mnoho rozdílů mezi tímto novým světem a tím, kde jsme dnes, spočívá v technických možnostech blockchainových platforem. První generace chytrých kontraktů byla špičkou ledovce, který umožnil tyto systémy svobody; jsou však zásadně omezeny ve svých možnostech. V tomto článku vysvětluji některá kritická omezení současných chytrých kontraktů a jak nový systém „SQL Smart Contracts“ poskytuje technicky schopnější základ pro odblokování lidských svobod a realizaci potenciálu blockchainu jako nové výpočetní platformy.
Smart Contracts: Programming The Truth Machine
"Kořenový problém... je veškerá důvěra, která je potřeba k tomu, aby to fungovalo." - Satoshi Nakamoto
Počáteční základní vlastností blockchainu je neměnnost; jakmile se určitý práh zúčastněných stran (nebo „uzlů“) v síti dohodne, že je něco pravdivé, blockchain si tuto pravdu uchová trvale. Blockchainy využívají různé „důkazové“ mechanismy, ve kterých uzly vynakládají velké množství hodnoty ve formě výpočetního výkonu, finančního podílu nebo pověsti, aby zajistily, že zákeřní aktéři nemohou manipulovat s pravdou.
Pokud je bitcoin „strojem pravdy“ pro digitální měnu, Ethereum je „strojem pravdy“ pro složitější finanční produkty. Ethereum rozšiřuje možnosti bitcoinu vytvořením programovatelného designového prostoru, kde mohou vývojáři implementovat libovolnou logiku, která má být nasazena, ověřena a spuštěna napříč řadou uzlů. To znamená, že nyní můžeme vytvářet systémy, které odstraňují potřebu důvěry v centrální autoritu, která není jen měnou! Jakýkoli systém vyžadující centrální orgány – jako jsou půjčky, realitní listiny, informace o identitě, sociální média, ekonomické metriky atd. – nyní může fungovat bez centrálních zprostředkovatelů. Tohle je úplně nový svět!
Inteligentní smlouva je program, který vývojáři píší a nasazují na blockchain, plátno pro vývojáře k vytváření decentralizovaných aplikací. Pojem „chytrá smlouva“ neznamená právní smlouvu, kde jsou dvě strany vázány určitými právy a povinnostmi. Místo toho „inteligentní smlouva“ jednoduše znamená, že aplikace bude zaručeně fungovat přesně tak, jak je napsán kód, na dobu neurčitou. Úvěrové smlouvy zaručují, že dlužníci a věřitelé mohou vždy provádět transakce. Smlouvy o nemovitostech zaručují, že si lidé mohou vždy ověřit a převést vlastnictví nemovitosti. Inteligentní smlouva je aplikace, kde se kód stává zákonem.
Steve Jobs nazval počítač „kolem pro mysl“. Chytré smlouvy zaručují, že kola nikdy nespadnou.
Ethereum Smart Contracts: Tip of the Iceberg
"Crypto není jen o obchodování s tokeny, je to součást širšího étosu ochrany svobody a soukromí a udržení moci v rukou malého kluka." - Vitalik Buterin
Přestože chytré kontrakty Ethereum představily zcela nový svět decentralizovaných produktů, zásadní omezení v jejich designu a možnostech manipulace s daty jim brání být efektivní v mnoha aplikacích mimo kryptoměny.
V Solidity (programovací jazyk pro Ethereum) jsou smluvní data uložena v párech klíč-hodnota. Ačkoli (seskupení proměnných) a (sbírka párů klíč-hodnota) představují užitečné způsoby organizace dat, všechna data lze získat pouze pomocí jejich klíče. Zvažte teoretickou smlouvu o ukládání údajů o identitě uživatele:
contract IdentityStorage { // Struct to store KYC details struct identity { string fullName; string dateOfBirth; string residentialAddress; } // mapping a country to its citizens to their info // "Canada" => 0x123… => {Vitalik Buterin, 01/31/1994, ...} mapping(string => mapping(address => identity)) public idData; //...rest of contract }
V této smlouvě lze záznam identity uživatele získat pouze na základě znalosti země uživatele a adresy peněženky. Pokud poskytovatel smlouvy nepřepracuje inteligentní smlouvu tak, aby umožňovala manipulaci s daty s vysokými náklady na plyn, neexistují žádné jiné způsoby, jak může smluvní uživatel získat záznam identity. Ukládání dat v párech klíč-hodnota v konečném důsledku omezuje přístup k datům a manipulaci s nimi.
Zejména správa dat v chytrých kontraktech Ethereum představuje dva zásadní problémy: závislost na indexu a závislost na přístupové cestě.
Indexová závislost
Závislost na indexu znamená, že pro přístup k určité části dat musí být data dostupná v indexu. Index je datová struktura, která efektivně hledá jedinečný identifikátor v rámci kolekce. Ve výše uvedeném příkladu smlouvy KYC jsou záznamy přístupné pouze přes přesnou adresu Ethereum použitou pro klíč. Tato rigidní struktura indexování brání smluvním uživatelům dotazovat se na data na základě jiných kritérií, jako je například „Kteří uživatelé mají tuto adresu bydliště?“ nebo „Jaké procento uživatelů s tímto občanským průkazem se narodilo po 1. lednu 1970?“ Bez schopnosti provádět takové dotazy vývojářům chybí flexibilita pro agregaci, analýzu a vytváření aplikační logiky kolem smluvních dat. Když vývojáři potřebují tuto dodatečnou flexibilitu, jako je získání záznamu identity podle celého jména, je třeba restrukturalizovat celou smlouvu. V Ethereu mohou restrukturalizační indexy také zvýšit náklady smlouvy na plyn, což dále omezuje použitelnost smlouvy.
Závislost na přístupové cestě
Závislost přístupové cesty se vztahuje k datům, která jsou přístupná a srozumitelná pouze prostřednictvím specifické cesty získávání. Ve vzorové smlouvě by znalost Vitalikovy země a adresy peněženky umožnila vývojáři získat jeho identifikační záznam. Znalost pouze adresy peněženky by však vývojáři neumožnila získat Vitalikovu zemi původu. Navíc, i když má vývojář Vitalikovu adresu peněženky, nemůže získat jeho identifikační záznam, pokud nezná také zemi původu (klíč „Kanada“). Přístupová cesta k Vitalikově identifikačnímu záznamu je pevná; pokud by se vývojář potřeboval pokusit získat svůj záznam pouze podle adresy peněženky, musela by být restrukturalizována celá smlouva. Závislost na přístupové cestě znamená, že data jsou přístupná a smysluplná pouze v jednom směru, což omezuje možnost dotazovat se nebo interpretovat data z různých perspektiv.
Závislost indexu a přístupové cesty představuje významné výzvy pro aplikace vyžadující komplexní nebo vyvíjející se datový model. Zatímco kryptoměny mají jednoduché datové struktury, které lze implementovat na Ethereum (ERC20 tokeny jsou v podstatě jen mapováním adres na zůstatky), tyto výzvy se stávají problematické pro datově náročnější aplikace. Když aplikace potřebuje ukládat, dotazovat se a manipulovat s komplexním datovým modelem, základní úložiště klíč-hodnota Ethereum výrazně omezuje správu dat, takže je náročné vytvářet a udržovat aplikace vyžadující komplexní správu dat.
Stručná lekce historie: Relační model
„Historie se neopakuje, ale často se rýmuje“ – Mark Twain
V roce 1970 Edgar F. Codd, počítačový vědec z IBM, publikoval článek nazvaný „Relační model dat pro velké sdílené datové banky“. V té době byla nejoblíbenějším typem aplikační databáze „hierarchická databáze“, která používala pevnou stromovou strukturu, kde byla každá část dat uložena v nadřazeném adresáři, podobně jako jsou organizovány soubory v počítači. Codd argumentoval proti hierarchické databázi a navrhl novější, jednodušší, mnohem schopnější relační databázi s tabulkovou strukturou.
Stromová struktura hierarchické databáze znamená, že k datům lze přistupovat pouze prostřednictvím pevného systému porozumění vztahu rodiče a potomka každého kusu dat. Konkrétně Codd identifikoval tři klíčové problémy s hierarchickým systémem:
Závislost na řazení: Výsledek dotazu často závisí na tom, jak jsou data uspořádána v úložišti. Pokud je aplikace vytvořena za předpokladu, že data budou dotazována ve stejném pořadí, v jakém jsou uložena, nelze pořadí v budoucnu změnit.
Závislost na indexu: Pro přístup ke konkrétní části dat musí aplikace znát rodiče (tj. index). V opačném případě není možné získat požadovaná data.
Závislost na přístupové cestě: Přístup k datům nebo jejich pochopení vyžaduje sledování konkrétní cesty načítání. Pokud je aplikace navržena tak, aby získávala data pomocí jednoho konkrétního přístupového vzoru, nemůže načíst nebo interpretovat stejná data pomocí alternativních cest.
Zní vám to povědomě? I když chytré smlouvy Ethereum nemají závislost na objednávání (mapy jsou neuspořádané), stejná omezení závislosti indexu a přístupové cesty, která držela databáze v 60. a 70. letech minulého století, brzdí platformy inteligentních smluv i dnes.
Omezení na úrovni databáze jsou více než triviální překážkou; zásadně omezují vývojáře a omezují typy aplikací postavených na platformě. Spíše než se zaměřovat na implementaci nových funkcí, vývojáři bojující se závislostí na indexu a přístupové cestě musí vynaložit mimořádné množství úsilí na udržení funkčnosti stávající aplikace. Během 60. a 70. let bylo používání databáze primárně vyhrazeno pro nepružné obchodní úkoly, jako je správa zásob, účetnictví a obecné zpracování dat; vývojáři neměli datovou flexibilitu, aby mohli vytvářet sofistikovanější aplikace. Po zavedení relačních databází se však objevily výrazně výraznější a datově náročnější aplikace, což vedlo k vzestupu ERP systémů, CRM a nástrojů business intelligence. Navíc s příchodem internetu tyto pokroky vydláždily cestu pro platformy elektronického obchodování a aplikace sociálních médií. Vývojáři mohli implementovat funkce, které by dříve vyžadovaly restrukturalizaci celé databáze pomocí několika řádků SQL. Relační databáze byla víc než jen změna paradigmatu; byla to platforma vytvářející kategorie, která umožnila vznik zásadně nových aplikací.
Dnes jsou blockchainové platformy podobné počítačům a databázím v 70. letech minulého století. Nedostatek schopného zpracování dat na úrovni blockchainu znamená, že vývojáři nemohou implementovat sofistikovanější decentralizované aplikace náročné na data. Pokud se primární případ použití pro blockchainy někdy rozšíří za hranice kryptoměn, potřebujeme blockchainové platformy s schopnějšími funkcemi zpracování dat.
SQL Smart Contracts: Flexibilnější paradigma
"Měřítkem inteligence je schopnost měnit se." - Albert Einstein
Stejně jako komercializace relační databáze v 80. letech 20. století vedla k šíření nových aplikací, integrace relačních databází do blockchainových platforem má stejný potenciál přetvořit typy decentralizovaných aplikací, které lze vytvořit.
Ve společnosti Kwil budujeme blockchainovou platformu a inteligentní smluvní jazyk, který umožňuje vývojářům vytvářet decentralizované aplikace využívající plnou expresivitu SQL. S Kwil mohou vývojáři využít flexibilitu relačního modelu k vytváření schopnějších, datově náročných decentralizovaných aplikací.
Zvažte stejný příklad úložiště identity jako dříve. Namísto ukládání záznamů identity do mapy, kde je každý záznam přístupný pouze pomocí svého klíče, umožňuje Kwil vývojářům ukládat záznamy do tabulky a využívat flexibilní syntaxi SQL k dotazování přes tabulku:
database user_registry; table identities { address uuid primary key, name text notnull, date_of_birth int notnull, residential_address text notnull, national_id int notnull, #country_index index(national_id) } action query_by_national_id ($id) public view { SELECT * FROM identities WHERE national_id = $id; } action query_by_dob ($dob) public view { SELECT * FROM identities WHERE date_of_birth > $dob; }
V původní smart smlouvě Ethereum neexistoval způsob, jak prohledat identity a vrátit všechny uživatele s určitou podmínkou (jako je národní ID) nebo přidružit peněženku na základě konkrétního atributu (jako je datum narození). Umožnění takové funkce by vyžadovalo restrukturalizaci smlouvy, aby byly přidány nákladné funkce náročné na plyn. S relačním modelem však mohou vývojáři provádět tyto dotazy bez nutnosti jakékoli restrukturalizace, čímž získají větší flexibilitu manipulace s daty bez dalších nákladů.
Například je suverénní blockchain vytvořený pomocí Kwil, který umožňuje uživatelům a dApps ukládat informace o uživatelích. Využití SQL přes síť idOS umožňuje:
Uživatelé, kteří mají být přidruženi a získávaní pomocí více peněženek, přihlašovacích údajů a atributů.
Protokoly DeFi k provádění souhrnných analýz toho, odkud jejich uživatelé pocházejí.
Stablecoinové protokoly k posouzení toho, kteří uživatelé pocházejí z vysoce rizikových oblastí.
Povolení relačního modelu a SQL na decentralizované blockchainové platformě nám umožňuje vytvářet zásadně nové aplikace, které nemohou existovat na stávajících Ethereum smart kontraktech.
Závěr
Relační model, který před 40 lety způsobil revoluci v počítačovém průmyslu, má stejné schopnosti, aby způsobil revoluci v blockchainovém průmyslu dnes. V 60. a 70. letech minulého století závislost indexu a přístupové cesty omezovala užitečnost hierarchické databáze v aplikacích náročných na data. Dnes stejná závislost indexu a přístupové cesty omezuje chytré smlouvy Ethereum a jejich schopnost pohánět decentralizované platformy komplexními datovými modely. Nicméně integrací relačního modelu do blockchainu a poskytnutím stejného expresivního SQL dialektu vývojářům můžeme odemknout nové typy aplikací. Stejně jako relační databáze zrychlila obchodní poptávku a pomohla počítačům dosáhnout mainstreamového přijetí, může pomoci blockchainovým platformám udělat totéž, čímž odemkne svobodnější, decentralizovanější a důvěryhodnější digitální svět.