(50/50) Различия Multisig и что это такое
Multisig - это технология, позволяющая управлять счётом при участии нескольких людей. Например, у Вас и Вашего партнёра хранятся средства в общей ячейке в банке с двумя замками, и у каждого есть по одному ключу. Соответственно, чтобы получить деньги, Вам обязательно нужно будет встретиться в одном месте в одно время.
Multisig в блокчейне Bitcoin - это общий адрес, который генерируется, используя публичные ключи владельцев, при этом указывается количество владельцев, и количество необходимых подписей для проведения транзакции. Чаще всего используется конфигурация «2 из 3», где у кошелька есть 3 владельца, но для вывода средств необходимо 2 ключа. Для вывода средств с такого кошелька один из подписантов формирует транзакцию вывода, и ставит свою подпись.
{
"from": "MultisigWallet",
"to": "JohnWallet",
"amount": 1,
"signatures": ["sig1"]
}
Затем сформированная транзакция будет передана второму подписанту на подпись. Он увидит, какое количество BTC и куда хочет перевести первый подписант. Если он согласен с выводом, он ставит свою подпись.
{
"from": "MultisigWallet",
"to": "JohnWallet",
"amount": 1,
"signatures": ["sig1", "sig2"]
}
После этого транзакция загружается в блокчейн. Майнеры сверяют подписи, количество необходимых подписей с количеством фактических, и, если всё верно, транзакция проходит успешно
Multisig в блокчейне Ethereum - это смарт-контракт.
Смарт-контракт - это программа, которая выполняется децентрализованно в блокчейне. В связи с этим невозможно изменить код смарт-контракта и повлиять на его работу.
Смарт-контракты помимо указания любого количества подписантов позволяют ограничить сумму вывода конкретному подписанту, передать право подписи, изменить количество подписантов, и множество других возможностей. Подписанты могут влиять не только на перевод средств из кошелька, но и на любые действия, связанные с изменением конфигурации кошелька.
Для вывода средств из смарт-контракта каждому из подписантов необходимо будет отправить запрос в блокчейн по адресу смарт-контракта на выполнение определённой функции. Для этого участникам не обязательно связываться друг с другом.