Autor: The Mandalorian, Manta Network Protocol
Zhruba v posledním roce si stále více lidí uvědomuje sílu kryptografických nástrojů, jako je ZK (důkaz nulových znalostí), a také jsme byli svědky vzestupu mnoha aplikací odolných vůči nulovým znalostem, jako jsou soukromé sociální sítě, soukromé hlasování a soukromé DAO atd. Ve skutečnosti je použití důkazu s nulovými znalostmi velmi široké a jakákoli aplikace, která vyžaduje soukromí v řetězci, může používat důkaz s nulovými znalostmi.
Na akci ETHGlobal Hackathon během právě skončeného ETHSanFrancisco 2022 vytvořili přátelé vývojového týmu kryptografie Manta Network pokerovou hru na bázi zkSNARK za pouhých 36 hodin a úspěšně ji spustili na ApeCoinu, čtyřech soutěžních jednotkách organizovaných ENS, SKALE a Optimismus získal ocenění.
Dark Forest, který mnoho lidí zná, je real-time strategická (nedokonalá informační) hra založená na zkSNARK. Neúplné informační hry jsou hry, ve kterých hráč nezná všechny stavy. Například v pokeru jsou karty v ruce hráče soukromými informacemi a proces tažení karet je také zcela soukromý. Zajímavé na neúplných informacích je, že mohou vést k řadě komplexních herních strategií.
Na veřejném blockchainu je těžké postavit hru s neúplnými informacemi kvůli otevřenosti a transparentnosti dat v řetězci. Díky technologii důkazu nulových znalostí však mohou hráči veřejně předkládat ověřitelné platné akce při zachování soukromí.
V tomto hackathonu vytvořila společnost Manta Network systém míchání a rozdávání pokeru na základě zkSNARK. Tento systém řeší především dva problémy existující v on-chain pokerových hrách: jak spravedlivě zamíchat karty a jak skrytě rozdávat karty mezi hráče (jinak se hra nemusí hrát kvůli problémům s MEV).
V podstatě on-chain poker založený na důkazu nulových znalostí decentralizuje dealera karet a ten nemůže ovládat karetní hru tím, že ovládá dealera karet.
Při hraní Texas Hold'em v centralizovaném klientovi Web2 se setkáte se situací, kdy vám bude jen rozdána pravděpodobnost extrémně nízké karty. Je vysoká pravděpodobnost, že karty můžete získat, ale nemůžete je dostat ven.
Účelem je manipulovat hru rozdáváním karet, aby vás soupeř mohl porazit online, když je pravděpodobnost výhry offline extrémně nízká.
To je důvod, proč potřebujeme decentralizovaný poker.
Systém ZKShuffle má tři funkce:
ZKShuffle.setup: Každý hráč vygeneruje pár klíčů a poskládá odpovídající veřejné klíče každého hráče dohromady, aby vygeneroval souhrnný veřejný klíč.
ZKShuffle.shuffle_encrypt: Při míchání musí každý hráč postupně zavolat shuffle_encrypt.
Aby bylo zajištěno, že šifrování a dešifrování lze provádět v libovolném pořadí, používáme schéma homomorfního šifrování (Homomorphic Encryption scheme). Například, v této hře jsou tři hráči Po kole šifrování bude mít každá karta tři šifrovací zámky: Card{Alice, Bob, Charlie}.
ZKShuffle.decrypt: Pokud chcete rozdat karty konkrétnímu hráči, každý hráč musí zavolat funkci dešifrování. Pokud je například logikou hry rozdávat karty Charliemu, měla by správná sekvence znít takto: Alice dostane zašifrovanou kartu karty {Alice, Bob, Charlie}, použije svůj klíč k jejímu dešifrování a poté odešle dešifrovanou kartu. {Bob, Charlie} předloží na řetězu a předloží důkaz o nulových znalostech, aby ověřil platnost dešifrování.
Poté, co Bob získá částečně dešifrovanou kartu Card{Bob, Charlie} předloženou Alicí na řetěz, dešifruje ji svým vlastním klíčem a předloží kartu Card{Charlie} a klíč, aby ověřil platnost dešifrování na řetězu. Důkaz nulových znalostí. Nakonec Charlie získá Card{Charlie} a může si prohlížet své karty tak, že je dešifruje svým vlastním klíčem.
Tým vývoje kryptografie Manta Network vytvořil demo Texas Hold'em pomocí ZKShuffle, decentralizované aplikace založené na Solidity, React a Ether.js. V tomto demu, pokaždé, když začne nové kolo hry, musí všichni hráči provést kolo nastavení, aby se zajistilo, že hrací karty na řetězu jsou spravedlivě zamíchány. Poté musí každý hráč provést kolo dešifrování a získat dvě karty. S těmi mohou hráči hrát Texas Hold'em Poker na blockchainu EVM.
Manta aktuálně nasadila tuto DApp na blockchainy Optimism Goerli, Ethereum Goerli a Skale.
Princip implementace
Celý projekt se skládá ze 3 částí:
obvod ZK;
Inteligentní smlouvy pro ověřování dešifrování a míchání, včetně smlouvy ZKShuffle a smlouvy o herní logice DApp front-end, Demo vytvořené pomocí React a ether.js a knihovny Circomlib JS;
Circomlib kryptografický JS库.
V implementaci Circomu je přijato šifrovací schéma ElGamal a jsou použity existující knihovny Circom, jako jsou hash poseidon.
Šifrovací obvod má omezení 87308 R1CS a doba generování důkazu v DApp je 4,5 sekundy. Dešifrovací obvod má omezení 1522 R1CS a doba generování důkazu v DApp je 0,1 sekundy. Pomocí SnarkJs generujte důkazy s nulovými znalostmi v DApps.
Smart kontrakt se skládá ze dvou částí: rámcová smlouva ZKShuffle a smlouva o logice hry Poker. Smlouva ZKShuffle jednoduše zapouzdřuje ověřovací logiku ZKP a dva obvody. Logická smlouva nasadí stavový automat, aby získal aktuální fázi hry a pořadí, který hráč je na tahu z uzlu RPC.
DApp je implementován pomocí rámce React a Ether.js pro zobrazení pokerového stolu a animace akce každého hráče. Když je od hráče požadováno, aby provedl akci, hráč musí pouze kliknout na tlačítko v uživatelském rozhraní a použít metamasku k podpisu transakce.
Podívejte se na Demo
O Manta Network
Manta Network se zavázala budovat lepší svět Web3 prostřednictvím ochrany soukromí. Produktový design společnosti Manta začíná od prvních principů a poskytuje komplexní ochranu soukromí pro uživatele blockchainu prostřednictvím předních kryptografických architektur, jako je zkSNARK. Zatímco zajišťuje soukromí, Manta kombinuje interoperabilitu, pohodlí, vysoký výkon a auditovatelnost, což uživatelům umožňuje provádět soukromé převody a transakce mezi jakýmikoli parachainovými aktivy. Vizí Manta je poskytovat pohodlnější služby ochrany soukromí pro celý blockchainový svět.
Zakládající tým společnosti Manta se skládá z několika kryptoměnových veteránů, profesorů a akademiků, jejichž zkušenosti zahrnují Harvard University, MIT a Algorand. Mezi investiční instituce společnosti Manta patří Polychain, ParaFi, Binance Labs, Multicoin, CoinFund, Alameda, DeFiance a Hypersphere atd. Manta je také oficiálním příjemcem grantu Polkadot Web3 Foundation, členem Substrate Builder Program a členem Berkeley University Blockchain Accelerator.
