Гаманець без власника. Кожен учасник тримає свій ключ на своєму пристрої, і гроші рухаються, коли підписало достатньо з них — будь-які двоє з трьох, будь-які п’ятеро з дев’яти, як група вирішила, коли робила гаманець.
Нижче немає жодної нашої вигадки. У кожної мережі вже є спосіб, яким кілька людей тримають одну адресу, і ми користуємося саме ним: P2WSH у Bitcoin, Safe в мережах EVM, власна система permission акаунта в Tron, Squads V4 у Solana. Адреси на наступних сторінках — це ті розгортання, з якими говорить цей застосунок.
ЯК ЦЕ ПРАЦЮЄ
Чотири кроки, і лише останній — у мережі
Платіж — це розмова, перш ніж стати транзакцією. І це не метафора: він відбувається в листуванні, повідомленнями, а мережа бачить його лише тоді, коли група вже погодилася.
1
Група фіксує правило
Хто підписує і скільки підписів потрібно. Це записується в гаманець у момент його створення — і записується в мережу, а не в цей застосунок.
Правило тут потім не редагують: інше правило — це інший гаманець, зі своєю адресою, яку треба поповнити і на яку треба переїхати. Деякі мережі таку зміну дозволили б, а цей застосунок її не робить — і екран каже про це, перш ніж попросити другий дотик.
2
Хтось пропонує платіж
Він приходить у розмову повідомленням, від того, хто його зробив, і каже, що оплачує і кому. Поки він не підписаний, це запит і нічого більше.
Пропозицію несе та сама зашифрована група, що й листування, тож сервер переносить її, не читаючи.
3
Кожен підписант підписує на своєму пристрої
Прочитав, натиснув один раз — і підписано ключем, який ніколи не покидав телефон, де його створили. Лічильник рухається в усіх на очах.
Жоден пристрій не тримає ключа другої людини, тож немає пристрою, втрата якого віддає комусь гаманець.
4
На порозі він іде в мережу
Підписи збираються і розсилаються. Далі правило дотримує мережа, а не цей застосунок — заради цього правило туди й кладуть.
Якби цей застосунок завтра зник, гаманець лишився б гаманцем, а правило — правилом.
П’ЯТЬ МЕРЕЖ
Уніфікований інтерфейс
П’ять мереж і чотири різні механізми під капотом: Bitcoin, Ethereum, BNB Smart Chain, Tron і Solana тримають спільну адресу кожна по-своєму. До екрана ця різниця не доходить: запропонувати платіж, підписати його й надіслати — у всіх п’яти мережах однаково.
Bitcoin
P2WSH multisig · BIP 67 · PSBT
Скрипт-свідок, який читається як «m із цих n ключів», і адреса, що є його хешем. Ключі відсортовані лексикографічно, тож кожен, хто збирає скрипт із того самого набору ключів, приходить до тієї самої адреси, а не до n! різних.
Платіж їде як PSBT: один файл, який обходить підписантів, збираючи підписи, і фіналізується, коли їх достатньо.
Скрипт
OP_m <key>… OP_n OP_CHECKMULTISIG
Підписанти
до 15, поріг — будь-де в цих межах
Дані мережі
сервер Electrum
Ethereum
Safe · canonical deployment
Той контракт, у якому вже лежить більша частина грошей, що групи тримають в Ethereum. Проксі створює канонічна фабрика, і воно вказує на канонічний сінглтон; власники й поріг задаються тим самим викликом, який його створює.
Нічого не форкнуто і нічого не розгорнуто заново. Версія читається з контракту, а не припускається, бо Safe, зроблений кимось іншим, — це Safe, який тут відкриється.
Сінглтон
0x41675C099F32341bf84BFc5382aF534df5C7461a
Фабрика
0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67
Пакетування
MultiSend — кілька переказів, одне підтвердження
BNB Smart Chain
Safe · the same addresses
Ті самі контракти за тими самими адресами. Розгортання Safe детерміновані в усіх мережах EVM, тож тут немає нічого специфічного для мережі — ні для вивчення, ні в коді.
Через це ж акаунт в Ethereum — це той самий акаунт у BNB Smart Chain: один тип монети, один ключ, дві мережі.
Контракти
ті самі, що в Ethereum вище
Тип монети
60 — спільний з Ethereum
Tron
Account permissions · no contract
У Tron правило вбудоване в акаунти. Permission несе список ключів, вагу для кожного і поріг, і записується в сам акаунт — немає контракту, який треба розгортати, і немає контракту, якому треба довіряти.
Ваги означають, що правило може бути не просто підрахунком голів: один ключ на два голоси, три ключі по одному.
Ким записується
AccountPermissionUpdate
Правило
зважені ключі, один поріг
Зауваження
оновлення замінює список, а не править його
Solana
Squads Protocol V4
Програма для мультипідпису, якою користується більшість казначейств Solana. Пропозиція — це акаунт у мережі: учасники голосують за неї, і вона виконується, коли голоси доходять до порога.
Ідентифікатор програми вирішує, звідки виводиться кожен акаунт гаманця, тож він прибитий до опублікованого розгортання, а інший відхиляється, а не приймається на віру.
Програма
SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf
Пропозиція
у мережі, голосують за неї
ЧОМУ СТАНДАРТНІ
Гаманець, який відкривається лише тут, — це гаманець, яким володіє хтось інший
Є простіший шлях: свій контракт у кожній мережі, свій формат, один застосунок, який його розуміє. Коду було б менше, а вийшло б гірше, бо гроші групи залежали б від того, чи цей застосунок далі існуватиме.
Що дає використання стандартних
Кожен пункт — наслідок цього вибору, а не додана можливість.
Перевірено більшою кількістю людей, ніж ми. Safe і Squads тримають між собою мільярди, і дивилися на них відповідно. P2WSH і permissions у Tron — правила консенсусу.
Читається іншими інструментами. Адреса — це звичайний Safe, звичайний мультисиг Squads, звичайна адреса P2WSH, звичайний permission у Tron: оглядачі блоків і власні інтерфейси цих протоколів читають їх, не знаючи, що цей застосунок існує.
Немає з чого мігрувати. Немає свого формату, у якому можна застрягнути, тож немає й моменту, коли відхід чогось коштує.
Правило переживе нас. Поріг дотримує мережа. Цей застосунок — це місце, де група говорить про платіж, а не те, що його дозволяє.
AUDITS
Read by people who are not us
This is the argument for using each chain’s own multisig rather than writing one: the reports below exist, they were paid for by somebody else, and they are about exactly the contracts a wallet made here is made of. Every address and every program id on this page was checked against the projects’ own published deployment records while this section was written.
Safe
Ethereum · BNB Smart Chain
2 reports
The four contracts this application talks to are the canonical v1.4.1 deployments — singleton, proxy factory, fallback handler and MultiSend — each one matching the address in Safe’s own deployment registry.
Four reports, three firms and a formal verification. The program id this application pins is the one the program declares for itself in its own source.
There is nothing here for an auditor to be hired for, and that is the point: a multisig on Bitcoin is not a deployed program but a script the network’s own rules evaluate. What is worth reading instead is the specification.
The same again: the rule is a property of the account, enforced by the nodes rather than by code somebody deployed. There is no contract to audit because there is no contract.
Nothing to link, and that is the honest answer
An audit is a reading of a codebase at a commit, not a guarantee about the money in it — and none of these reports is about this application. They are about the contracts underneath it, which is exactly why they are worth more than a report we commissioned about ourselves would be.
КОЛИ ПРИНОСЯТЬ ФРАЗУ
Двадцять чотири слова, якими ти вже користувався
Фраза відновлення — це не одна домовленість, а кілька, і розходяться вони в одному: який елемент шляху зсувається, коли просиш «рахунок 2». Кожна з них правильна, а фраза, прочитана не за тією, показує нульовий баланс для грошей, до яких рівно один рядок арифметики. Тому домовленість тут не вгадують — це налаштування, окреме для кожної мережі, і пропонує воно список застосунків, а не список специфікацій. Гроші, які здаються зниклими, — це гроші на шляху, куди застосунок не дивився.
Bitcoin
Native SegWitза замовчуванням
m/84'/0'/{account}'/0/0
Electrum
BlueWallet
Sparrow
Exodus
Індекс адреси
m/84'/0'/0'/0/{account}
Trust Wallet
Muun
Phoenix
Ethereum & BNB Smart Chain
Індекс адресиза замовчуванням
m/44'/60'/0'/0/{account}
MetaMask
Rabby
Trust Wallet
Rainbow
Phantom
Посилений акаунт
m/44'/60'/{account}'/0/0
Ledger Live
Trezor Suite
Exodus
Чотири елементи
m/44'/60'/0'/{account}
MyEtherWallet (legacy)
Ledger (legacy)
Tron
Індекс адресиза замовчуванням
m/44'/195'/0'/0/{account}
TronLink
Trust Wallet
Посилений акаунт
m/44'/195'/{account}'/0/0
Ledger Live
Trezor Suite
Solana
Чотири елементиза замовчуванням
m/44'/501'/{account}'/0'
Phantom
Solflare
Backpack
Лише акаунт
m/44'/501'/{account}'
Ledger Live
Solflare (hardware)
Застарілий
m/501'/{account}'/0/0
Sollet (legacy)
Застарілі та вкладені схеми Bitcoin відсутні навмисно. Збирач адрес виводить лише native SegWit, тож m/44'/0'/… тут дав би bc1… там, де будь-який інший гаманець показує 1… або 3… — рядок, який виглядає правильним, належить твоїй фразі й не є тією адресою, яку за цим шляхом прочитає хто завгодно інший. Вибір, який тихо означає не те, що каже, гірший за відсутність вибору.
КОЛИ ПРИНОСЯТЬ ГАМАНЕЦЬ
Якщо ти приходиш звідкись іще
Два шляхи всередину, і вони на різних стадіях
Сказано прямо, бо сторінка, яка описує задумане тим самим голосом, що й зроблене, — це сторінка, за якою нічого не можна вирішити.
Твоя фраза відновлення — уже є. Двадцять чотири слова і питання про те, у якому гаманці ти ними користувався. Кожна адреса, яку описує таблиця вище, виводиться з фрази на твоєму пристрої й ніде не зберігається; акаунт EVM, акаунт Tron і акаунт Solana — це одна й та сама адреса в усіх мережах свого ланцюга.
Мультисиг, який уже існує, — поки ні. Читання готове: бібліотека під цим відкриває Safe за адресою і повідомляє його власників, поріг і версію; читає учасників і поріг мультисига Squads, підписантів і ваги permission у Tron і розбирає witness-скрипт Bitcoin назад на адресу, поріг і ключі. Чого немає — то це екрана, який проведе тебе через це і причепить його до розмови. Поки його немає, ця сторінка не вдаватиме, що він є.
Тим часом тобі ніщо не заважає: Safe або мультисиг Squads, які в тебе вже є, працюють далі в тому інтерфейсі, де ти їх зробив, бо вони ніколи й не були нічим іншим, окрім Safe або мультисига Squads.
Нічого на цьому сайті не є фінансовою порадою: приклади — це приклади, а гроші й ризик — ваші. Дисклеймери.