Как видите, тема self-moderated, а это значит, что шитпостинга со стороны баунтистов я здесь не потерплю. Хотите поблагодарить за мануал, тогда подумайте обо мне, и скажите вслух «Спасибо», этого будет достаточно.
Всем привет.
Недавно мне понадобился мультисиг кошелек для ЕТН, и я пошел гуглить… Первое на что наткнулся, статья «
Эволюция кошельков Эфириума», самих обзоров кошельков там нет, но чуть теории никому не помешает, рекомендую ознакомиться.
Потом нашел статью «
Краткий обзор multisig кошельков для Ethereum», заинтересовал кошелек Gnosis – возможность держать «лёгкий» кошелек, норм UI-йка и пока что без сюрпризов в стиле Parity (if you know what I mean?

).
Есть два варианта использования Gnosis кошелька:
- онлайн (в паре с Metamask, Mist или Parity):
https://wallet.gnosis.pm/#/wallets- локально:
https://github.com/gnosis/MultiSigWallet/releasesЯ не пользуюсь онлайн кошельками и кошельками-расширениями для браузера. Параноик, зато у меня никогда не пропало ни цента.
В данном мануале рассмотрим локальное использование кошелька Gnosis, и принцип работы мультиподписи.
Процесс установки не буду скринить и описывать. Все просто, заходите сюда:
https://github.com/gnosis/MultiSigWallet/releases и качаете кошелек под свою систему. У меня Debian-based дистрибутив, поэтому я скачал deb-пакет. Установка прошла гладко и без сюрпризов.
Запускаем кошелек, видим главное окно, ставим галочки и нажимаем
Continue:
В следующем окне я выбрал Light Wallet (если у вас есть Ledger или вы хотите подключится к конкретной ноде, тогда выберите соответствующие варианты):
Чтобы не играться с настоящими деньгами, можно выбрать тестовую сеть, что я и сделал. Тестовые ЕТН взял
отсюда. Зашел в
Settings и сменил в
Ethereum Node на
Remote Rinkeby и нажал
Update Settings, после чего перезапустил кошелек:
***Примечание.
Wallet factory contract -->
AutomaticПосле перезапуска кошелька, идем в
Accounts и создаем или импортируем аккаунт. У меня уже есть тестовые аккаунты, поэтому нажимаю на
Import, выбираю
keystore file и указываю его пароль:
Так как все кошельки установлены на одном компе, повторяю все эти шаги для каждого кошелька. В итоге, три кошелька – Покупателя (
Buyer_wallet), Гаранта (
Escrow_wallet) и Продавца (
Seller_wallet):
Создание мультисиг-кошелькаДавайте представим самую простую ситуацию – ЕТН выступит в качестве платежного средства, Покупатель хочет купить товар у Продавца через Гаранта, используя мультисиг-кошелек.
Чтобы создать новый кошелек (не путать с
Accounts), идем в
Wallets и добавляем новый кошелек:
Выбираем
Create new wallet:
*
Name – имя кошелька (все стороны сделки могут назвать по своему);
*
Required confirmations – сколько нужно подтверждений (подписей) чтобы произвести операцию с данным кошельком;
*
Daily limit (ETH) – дневной лимит вывода ЕТН с данного кошелька;
*
Owners – владельцы кошелька (общее количество владельцев);
Ок, с этим разобрались. На следующем скрине вы увидите мои параметры создания мультисиг-кошелька:
Количество подписей как видите 2, а общее количество подписантов – 3: My account (Гарант), Buyer_wallet (Покупатель), Seller_wallet (продавец). Значит, имеем схему 2-из-3. Нажимаем
Deploy и потом
Send transaction:
***Примечание. В аккаунте создающего мультисиг-кошелек должно быть немного ЕТН для оплаты газа.
Заходим в
Wallets и видим наш Multisig_wallet:
Чтобы увидеть подробную информацию по кошельку, нажмите по его названию:
Кошелек пока что пустой (0.00 ЕТН).
В
Owners мы видим всех кто управляет данным кошельком.
В
Tokens можно добавлять токены.
***
Важное примечание. В данном случае мультисиг кошелек создавал Гарант (Escrow). Теперь он (Гарант) должен «раздать» мультисиг-кошелек двум другим подписантам (владельцам) – Покупателю и Продавцу.
Не имеет значения кто создаст мультисиг-кошелек, главное:
- правильно указать адреса владельцев (другие владельцы должны внимательно проверить свои адреса, которые указал человек создающий мультсиг-кошелек);
- для создания/подписи нужно иметь ЕТН на балансе чтобы оплатить стоимость газа (мониторить можно здесь);
- после создания самого мультисиг кошелька, создающий обязательно должен поделиться им с другими владельцами, которым НЕ нужно по новой создавать мультисиг-кошелек, а всего лишь импортировать уже созданный
Делиться мультисиг-кошельком очень просто. Тот кто его создал должен зайти в
Settings и выбрать
Export Wallets. Код который увидите
НЕ содержит приватных данных, и им можно открыто делиться с другими подписантами, которые соответственно должны зайти в
Settings, выбрать
Import Wallets, вставить полученный код от создателя мультисиг-кошелька и нажать
Save. Сложно? Вряд ли.

Вот содержимое данного кошелька, которым Гарант делится с другими двумя сторонами сделки:
{"wallets":{"0x7D179E7d4793210bd9a3CA1CfbF916Fd4f1A763E":{"name":"Multisig_wallet","owners":{"0x3f14bea302d3fc4cb678bf42781b666418023cf6":"My account","0xd33b1c69810a9223ad8aa6a2ab76b841d9392083":"Buyer_wallet","0x437b8dfc954e96bc1518febfff08c371c487096b":"Seller_wallet"},"tokens":{}}}}
Продолжим…
Покупатель пополняет мультисиг-кошелек на 2 ЕТН:
Припустим что после пополнения мультисиг-кошелька Покупателем, Продавец исчез и не выходит на связь. Покупатель хочет вернуть ЕТН на свой личный адрес кошелька. Так как в данном случае схема
2-из-3, значит, кто то должен создать транзакцию, а кто то просто её подписать.
Не имеет значения кто будет создавать, а кто подписывать. Но логичнее будет, если Покупатель будет создавать транзакцию, так как ему нужно указать свой личный адрес кошелька.
Покупатель идет в
Wallets, открывает подробную информацию о мультисиг-кошельке и нажимает на
Send a multisig transaction now:
После чего указывает личный адрес кошелька, количество ЕТН и комментарий (опционально):
Все тот же покупатель открывает подробную информацию о мультисиг-кошельке и видит:
-
Destination – на какой адрес уйдут ЕТН (при наведении мышкой вы увидите адрес кошелька ЕТН);
-
Value – количество отправляемых ЕТН;
-
Confirmations – кто на данный момент подписал транзакцию (в данном примере видно что Покупатель уже подписал транзакцию) а также кнопку
Revoke confirmation для отмены подписи;
-
Executed – была ли транзакция отправлена в сеть;
Ну что ж, Покупатель создал мультисиг-транзакцию, указал личный адрес кошелька, Гаранту осталось только подписать.
Гарант открывает свой кошелек, идет в
Wallets, открывает мультисиг-кошелек, смотрит подробности и видит почти тоже самое, что и Покупатель (куда и сколько будет отправлено ЕТН). В
Confirmations он видит что транзакция уже подписана Покупателем, а также видит кнопку
Confirm, для подписания транзакции со своей стороны:
Вот как теперь выглядит мультисиг-кошелек со стороны Покупателя, Гаранта и Продавца:
Покупатель не получил товар/услугу со стороны продавца и вернул свои ЕТН. Продавец получил негативный отзыв.
Пользуйтесь мультиподписью, и берегите свои ЕТН.
Неплохой
видео-мануал на английском.
Спасибо за внимание.
Если эта статья была вам полезна, поддержите написание следующей.

: 48asCffTPEMeqbxAf2XkP16qeuRTh7vxkQDhfXfbG5LgJ8YJeJEaUsrQ86dKyuyot2KfthhPuzFFRRq
L7cFi2TCV1gBSLiF

: 1MRDrYQfE6Vy1rqrWL6aN3iVCKofvvNA3w

: https://tippin.me/@thefuzzstone

: 0x0c30f1De9B30C9872d920200BB03aA3b67b7E300