Technologia Multisig, wychodzi z założenia, że trzymanie środków na jednym kluczu to niezbyt bezpieczne rozwiązanie. Multisig zamiast jednego klucza prywatnego, proponuje kilka jednocześnie. Aby wypłacić środki z multisiga potrzeba podpisów z kilku walletów (w zależności ile dodaliśmy podczas otwierania multisiga). Przykład *- tworzymy *multisiga 3/5 oznacza to, że aby wypłacić assety potrzeba 3 z 5 podpisów.W tym przypadku gdy w jakiś sposób utracimy 1 lub 2 klucze, nadal będziemy w stanie odzyskać środki, ponieważ mamy dostęp do 3 pozostałych kluczy a w naszej konfiguracji to (3/5) to wystarczy na dokonanie transakcji. Zastosowań jest tutaj dużo. Opiszę kilka z nich. Najpopularniejszy i moim zdaniem najbezpieczniejszy Multisig to GnosisSafe. Co nie oznacza, że nie ma innych. Jest i to całkiem sporo. BitGo, Coinbase, Armory, DarkWallet & GreenAddress.
Zastosowań jest wiele. Dziś opiszę #4 najpopularniejsze:
1️⃣ Fundusze VC & Grupy wspólnie inwestujące w private sale czy seedy.Ten przykład będzie bardziej przyziemny z większym utility jeżeli chodzi o moją grupę docelową, dla której piszę ten artykuł. Wyobraź sobie, że masz grupę discordową. Nikt nikogo nie zna w realu, znacie się tylko z avatarów. Chcecie zainwestować w projekt, jednak próg wejścia to $25K, a więc trzeba połączyć siły i zainwestować wspólnie. Problemem jest kto będzie posiadaczem głównego walletu, na który będą wpadać tokeny z inwestycji czy środki ze zbiórki. I tutaj rozwiązaniem jest multisig. Przykładu chyba nie muszę opisywać co? W skrócie macie np 20osób w grupie. Tworzycie multisig 7/12 i podpisy należą dla najbardziej zaufanych i zasłużonych członków grupy. Tutaj opcji jest wiele. W tym temacie jest jedno zagrożenie. Więc żeby nie było HOPIUM to opiszę nasz własny case. Zainwestowaliśmy w projekt poprzez multisig. Podczas dystrybucji tokenów - zonk! Gnosis Multisig nie jest kompatybilny z metamaskiem jeżeli chodzi o główny kontrakt multisig. Adres ten był podany w umowie jako ‘odbiór tokenów’. Same wallety do podpisów multisiga są jak najbardziej kompatybilne z metamask. Można nimi podpisywać transakcje jednak sam kontrakt multisig tej kompatybilności z metamask nie ma. Po listingu, dostaliśmy stronę, na której był claim zakupionych tokenów. I tu pojawił się problem, ponieważ na stronie do claimowania był tylko metamask, którego nie obsługiwał gnosis 🤯 Długo szukaliśmy rozwiązania i docelowo się udało. Claimu dokonałem poprzez wywołanie transakcji manualnie. Tutaj jednak potrzebna wiedza techniczna i kod od twórców projektu. Śliski temat, ale mi się udało! 👏 Z wysłaniem tokenów z multisiga na giełdę czy inny wallet już nie było problemu, do tego są potrzebne podpisy (metamask). Jaką lekcje z tego wyciągneliśmy ? Przed inwestycją w projekt poprzez multisig należy pytać projektu, czy tokeny będą do nas wysłane, czy będziemy musieli je sami claimować. Jeśli opcja numer 2 to słabo i tutaj raczej nie używałbym multisiga!
2️⃣ Cyber-ataki na giełdy. Potencjalny haker, łamiąc zabezpieczenia np. CEXA, wejdzie w posiadanie tylko pojedynczego klucza. Do wyciągnięcia środków giełdy często stosują kilka podpisów, więc wyciągnięcie środków często jest niemożliwe. Dodatkowo istnieje możliwość zabezpieczenia multisiga poprzez 2FA co czyni atak jeszcze bardziej trudnym.
3️⃣ Zabezpieczenie płatności w darknecie [escrow] . Wiadomo na darknecie bardzo ciężko o zaufanie płacąc za towar/usugę osobie, której nie znamy. A więc dzięki multisigowi można ograniczyć ryzyko z tym związane. Serwisy czy marketplace oferują swojego zaufanego depozytariusza, który jest pośrednikiem w tranacakcji. Z jednej strony jesteś ty jako kupujący. Po drugiej stronie jest sprzedający, a pomiędzy depozytariusz, który rozwiązuje dany spór jeśli do takiego by doszło. Jeśli transakcja odbywa się bez żadnych komplikacji, obie jej strony kupujący i sprzedający realizują płatność z wykorzystaniem posiadanych przez siebie kluczy. Tutaj najpopularniejszą konfiguracją jest 3 z 3 kluczy. W przypadku problemów z realizacją transakcji depozytariusz rozstrzyga, kto ma racje. Gdy obie strony dochodzą do porozumienia i są happy z transakcji to stroną trzecia dokonuje dostatniego podpisu, po czym transakcja przechodzi.
Posłużę się tutaj prostym przykładem. W transakcji biorą udział 3 strony: sprzedający, kupujący i depozytariusz. W momencie dokonywania deala, system generuje adres multisigowy. Każda ze stron dodaje swój klucz prywatny po czym otrzymuje fragment klucza. Kupujący wysyła np ETH na wygenerowany adres multisig. Sprzedający posiadając tylko 1/3 wymaganych kluczy nie może claimować tego assetu. Potwierdzenie przez stronę kupującą, że otrzymał towar/usługę powoduje 2 podpis. W przypadku sporu (np. sprzedawca twierdzi, że wysłał towar, lecz kupujący nie potwierdza otrzymania towaru) to depozytariusz decyduje komu przekazać swój klucz. Jeżeli depozytariusz uzna, że sprzedawca nie wysłał towaru. Nie ma potwierdzenia wysyłki lub wysłał kupe, to klucz przekazywany jest kupującemu i odzyskuje on swoje pieniądze. Tacy depozytariusze dbają też o swoją renomę, zbierają feedbacki i trust. W przeciwnym wypadku klucz trafia do sprzedającego i otrzymuje on asset za tą usługę. Ma to sens co? Tyle teorii, na koniec dodam, że w praktyce działa to bardzo fajnie. Chociażby na naszej polskiej cebuli.
4️⃣ Bezpieczna przystań dla assetów w longterm. Na koniec jeszcze jeden przykład użycia multisig. Wyobraź sobie, że trzymasz ETH, wBTC, sporo stabli i inne assety. Chcesz to trzymać w longterm i nic z tym nie robić. Jeśli wartość assetów jest spora tutaj też przychodzi z rozwiązaniem multisig. Trzymając te wszystkie assety na jednym wallecie, tracąc dostęp czy padając ofiarą hacku tracimy wszystko. Wystarczy, że ktoś wykradnie twój klucz prywatny czy seed. Aby się zabezpieczyć, można tutaj użyć multisig np 2/3 gdzie jednym kluczem byłby wallet z ledgera, drugim z trezora, a trzecim jeszcze coś innego. Aby wypłacić assety z multisiga potrzebujemy w tym przypadku 2z3 kluczy. Więc nawet jak by ktoś zdobył jeden klucz - nie będzie w stanie wypłacić środków!
Przykładów użycia jest dużo więcej, ale na tym zakończę. Celem tego wpisu jest nie tylko opisanie tego czym jest i jak działa multisig, ale również potencjalna spekulacja. Pamiętasz #airdrop Optimism? Jednym z punktów dla osób, które dostały tego dropa był właśnie multisig. Ci co podpisali jakąś transakcje poprzez multisig dostali 1190 $OP. Dzisiejsza wartość to około $1666. Jako, że z multisiga korzystałem wcześniej, to i udało mi się zakwalifikować! 🦾
Czy inne projekty, mogą pójść podobną drogą i sypnąć tokenami dla userów, którzy korzystają z tego rozwiązania? Jest na to duża szansa. Multisig na chwilę obecną to nadal wąska grupa, a więc i potencjał na sytego dropa jest wyższy (drop rozmyty na mniejszą ilość wosób)
🚩 Tutaj też, aby nie było tak wesoło — widzę zagrożenie 🧐Wyobraź sobie, że masz hmm 5 walletów, z których korzystasz na co dzień. Robisz więc multisig 3/5 lub 4/5, po czym dokonujesz transakcji, aby zaszła interakcja z kontraktem. Wystawiasz się tym na potencjalnego dropa - super!
Z drugiej strony jednak, adresy te poprzez multisig są w jakimś stopniu ze sobą powiązane. Wiecie, sybil i te sprawy 🙃I tutaj rozkmina. @0xKubi & @TomKowalczyk będziemy bardzo wdzięczni za wasz feedback w tym temacie! 🙏
Pamiętaj, wszyscy jesteśmy tutaj for tech, yeees ser? Zanim zaczniemy tworzyć i korzystać fajnie by było to dobrze rozkminić. Pomysłów jest kilka. Jeden z nich to stworzenie nowych walletów pod multisiga + jeden z którego korzystamy na co dzień, aby nie linkować. Kolejny to użyć adresy, które używamy na codzień, ale to kwestia do przegadania z bardziej technicznymi osobami. Osobiście będę tworzył kolejnego multisiga, ale nad strukturą cały czas pracuje. Czekam też na tańszy gaz u Vitalika. Fajnie jak by się rozkręciła dyskusja/burza mózgów w tym temacie pod tweetem.
🗣 I na koniec instrukcja jak stworzyć multisiga 💭
1️⃣ Łączymy portfel na gnosis-safe.io/app
2️⃣ Łączymy portfel podpisujący (np.Metamask). Będzie to też wallet z pierwszym podpisem.
3️⃣ Wybieramy wallety do podpisów multisiga. Ten krok jest mega ważny, ponieważ są to adresy, które mają uprawnienia do przesyłania i zatwierdzania transakcji (możesz później usunąć lub zastąpić te adresy). Twój połączony portfel został już dodany jako pierwszy signer, ale możesz go również zmienić. Dodaj dowolną liczbę walletów, wklejając adres Ethereum lub wpisując nazwę ENS.
4️⃣ Zdefiniuj liczbę potrzebnych walletów do podpisania transakcji zanim zostanie potwierdzona. Pamiętaj, aby dokładnie przemyśleć strukturę! Jeśli nie będziesz mieć dostępu do zdefiniowanej liczby podpisów — nie będziesz w stanie odzyskać swoich zasobów! 🚩
5️⃣ Na koniec przejrzyj na spokojnie swoje wallety i parametry multisiga. Jeśli wszystko jest tak jak sobie tego życzysz - postępuj zgodnie z instrukcją i zatwierdź transakcje tworzenia kontraktu multisig.
6️⃣ Po stworzeniu multisiga możesz TUTAJ się do niego zalogować swoim walletem podpisującym. Po zalogowaniu zostaniesz przeniesiony do dappsa gdzie możesz zarządzać swoim multisigiem. A wygląda to tak 👇
👉 Gnosis oferuje multisig nie tylko na mainecie ale i Polygon, BNB, EnergyWebChain, GnosisChain, Arbitrum, Aurora, Avax, Optimism no i testnety Goerli & Rinkeby 👈
To by było na tyle. Zapraszam na moje social media po więcej:
👇 Dyskusja 👇
https://twitter.com/popek1990crypto/status/1532731802573582337
Moje inne publikacje
https://mirror.xyz/popek1990.eth/A1be_RbJ-woP5iozC6NMOCBCsX3Qw0BPl6fqU--QpNE
https://mirror.xyz/popek1990.eth/WGxXhaa11g-30zxOxjxTDnVdUX3jm8UeXqqonxz1CcM