Rand Protocol
Расширение для браузера

Rand Wallet для Firefox

То же расширение, что и сборка для Chrome, из того же кода, упакованное для Firefox. В нём ничего не минифицировано и не объединено в бандл, поэтому код, который проверяет Mozilla, и есть код, который вы запускаете.

Публикация в Firefox Add-ons ожидается. Пока она не прошла проверку, установите версию 0.8.0 по ссылке для скачивания ниже или соберите её из исходного кода.

Значок Rand Wallet
Технологии
JavaScript · Manifest V3
Распространяется через
addons.mozilla.org
Требуется
Firefox 140 или новее
Отправка
Отправляет через prover RandProtocol или ваш собственный
Скачать

Версия 0.8.0

Файлы прикреплены к релизу v0.8.0 на GitHub; кнопки здесь — это ссылки на них, и с этого сайта ничего не раздаётся.

  1. Откройте about:debugging, выберите This Firefox → Load Temporary Add-on… и укажите zip-файл.
  2. Временное дополнение удаляется при перезапуске Firefox. Релизный Firefox устанавливает навсегда только то, что подписано addons.mozilla.org, поэтому до выхода публикации всё работает именно так.
  3. Firefox выдаёт расширению разрешения на сайты при установке. Если вы отклонили randbridge.org там, предоставьте разрешение позже на панели разрешений расширения.
Дополнение для Firefox (.zip)
Firefox 140 или новее · 2.7 MB
Скачать
rand-wallet-firefox-0.8.0.zip
SHA-256 2982e605ba06dfac9de02e67652e3afc6d8b4d4ce20cb17225fe5c8335a503c6
Проверьте скачанный файл
SHA256SUMS
# с файлом SHA256SUMS, скачанным в ту же папку, что и сам файл
shasum -a 256 -c SHA256SUMS --ignore-missing     # macOS
sha256sum -c SHA256SUMS --ignore-missing         # Linux

# или выведите сумму одного файла и сравните её с указанной выше
shasum -a 256 rand-wallet-firefox-0.8.0.zip

Совпадение суммы означает, что файл — тот, который был опубликован. Оно не означает, что файл собран из исходного кода: сборки пока не воспроизводятся бит в бит, поэтому, если вам нужно это знать, соберите его сами.

Отправка

Отправляет через prover RandProtocol или ваш собственный

Доказательство для bundle требует около 6.2 GB памяти в пике, а браузер выделяет WebAssembly 4 GiB, поэтому расширение никогда не строит доказательство само. Оно формирует перевод, поручает prover построить доказательство (по умолчанию prover RandProtocol или тот, который вы подключили), проверяет доказательство локально и отправляет его.

Из коробки используется prover RandProtocol, после однократного уведомления. Чтобы скрыть от него свою историю, подключите настольное приложение Rand Wallet на том же компьютере (в его Settings → Prove for my other devices, затем вставьте ссылку в Settings → Prover расширения) или собственный rand-prover на сервере.

Устройство, которое не может построить доказательство, по умолчанию использует provers RandProtocol: несколько машин, которыми управляют валидаторы (сегодня четыре, по адресу https://prover.randprotocol.org), без комиссии. Начиная с версии 0.6.9 у каждого свой ключ, который кошелёк закрепляет, и кошелёк сообщает об этом перед первой отправкой. Машина, доказывающая отправку, получает ключ просмотра кошелька и одноразовую соль: её оператор может прочитать всю историю кошелька, каждый полученный и отправленный платёж, но не может тратить средства. Ключ траты никогда не покидает ваше устройство, которое само строит небольшое доказательство авторизации. Для большей приватности выберите собственный prover в Настройки → Prover, который тогда всегда имеет приоритет; кошелёк проверяет каждое доказательство перед тем, как отправить его в сеть.

Подключение prover шаг за шагом: docs/prover.md.

Ваши ключи

Где хранится ключ

Ключ траты — единственный секрет кошелька. Нет ни учётной записи, ни сервера, хранящего его копию: потеряв ключ, его не сможет восстановить никто, поэтому сохраните его, когда кошелёк его покажет.

Ключ траты
Генерируется внутри ядра кошелька из случайности операционной системы и хранится только в виде хранилища AES-256-GCM под PBKDF2-SHA256. Пока кошелёк разблокирован, ключ находится в session storage браузера, которое очищается при закрытии браузера и недоступно веб-страницам.
Ключи на экране
Ключ просмотра и экспорт ключа траты защищены повторной проверкой пароля, которая обходится так же дорого, как и разблокировка. Ни один ключ никогда не попадает в URL, консоль или постоянное хранилище расширения.
Автоблокировка
Будильник браузера, а не таймер страницы, поэтому кошелёк блокируется вовремя, даже когда всплывающее окно закрыто, а фоновый обработчик усыплён.
Сеть
Только RPC URL в настройках. Если указать новый адрес, расширение запрашивает разрешение на доступ к этому единственному хосту. Никакой аналитики и никакого удалённого кода: расширение запускает только те скрипты, с которыми было установлено.
Также

Swap и window.rand для сайтов Rand

Собственный экран Swap кошелька обменивает RAND и токены через пулы durian.market: он запрашивает точную сумму из пула в сети, затем сам строит доказательство и отправляет обмен, а durian.market может запросить тот же обмен через window.rand.invoke.

randbridge.org находит расширение как window.rand и может запросить подключение. Для подключения нужны разблокированный кошелёк и ваше одобрение для этого сайта, а подключённый сайт узнаёт ваш адрес и хеш получателя в мосту, и ничего больше.

Сборка из исходного кода

Или соберите сами

  1. Соберите и упакуйте расширение из репозитория clients, ниже.
  2. Откройте about:debugging, выберите This Firefox → Load Temporary Add-on… и укажите dist/firefox/manifest.json.

Набор инструментов: Rust 1.98.1, зафиксирован в репозитории и устанавливается через rustup. Руководство по сборке охватывает каждый клиент на чистой машине. Каталоги с исходным кодом: firefox/, extension/, ui/, core/.

Rand Wallet для Firefox
bash
git clone --recurse-submodules https://github.com/randprotocol/clients.git && cd clients
git checkout v0.8.0 && git submodule update --init   # релиз; core/vendor/fullnode @ v0.8.0 (c0878c3)
core/scripts/build-wasm.sh   # → extension/shared/core/ (устанавливает wasm-bindgen-cli)
firefox/pack.sh   # → dist/firefox/ и dist/rand-wallet-firefox-<version>.zip
npx web-ext lint --source-dir dist/firefox
Каждый клиент

Что он делает на любой платформе

Создание кошелька
Ключ расходования генерируется на устройстве и показывается один раз, чтобы вы его сохранили; из него выводится адрес rand1…. Импортируйте существующий ключ или файл wallet.key.json из CLI rand; каждый клиент экспортирует один и тот же файл.
Получение и отправка
Ваш баланс — это набор нот, которые может открыть только ваш ключ; чтобы найти их, кошелёк сканирует дерево обязательств. Перевод RAND или любого токена RPL из списка — это один пакет 4-in-4-out, авторизованный доказательством. Никто не узнаёт ни отправителя, ни получателя, ни сумму, ни то, какой актив перемещался.
Faucet
В testnet с открытым faucet одно нажатие чеканит 100 RAND в ноту, которую может открыть только вы.
Раскрывайте только то, что выберете
Скопируйте свой ключ просмотра и откройте My history в RandScan, чтобы увидеть каждую ноту, которую вы отправили или получили, либо скопируйте ключ транзакции одного платежа, чтобы раскрыть именно этот платёж и ничего больше. Обозреватель расшифровывает данные в вашем браузере и никуда не отправляет ключ.

Ключи просмотра и ключи транзакций открываются на randscan.org.

Заметки о testnet

Прежде чем что-либо отправлять

Цепочка
Публичная конечная точка обслуживает chain 21, работающую с 12 Oct 2026 10:31 UTC (выпущена на fullnode v0.8.0). Ядро кошелька включает fullnode v0.8.0 (c0878c3) и отвергает любую другую цепочку: chain 21 работает на constraint set 9, поэтому кошелёк 0.7.x не может отправлять в ней транзакции, а этот релиз не может отправлять в chain 20. Ключи и адреса сохраняются; кошелёк, сканировавший chain 20, один раз показывает баннер о другой цепочке и заново сканирует с генезиса chain 21. Пополнения и выводы через мост по-прежнему облагаются комиссией 0,1% в zUSD, которую кошелёк показывает до вывода средств.
RPC-endpoint
Settings → Network. По умолчанию https://rpc.randprotocol.org; подойдёт любой RPC rand-node, до которого вы можете достучаться, а сохранённый URL проверяется до того, как будет сохранён
Построение доказательств
Пик памяти при доказательстве пакета составляет около 6,2 GB, на процессоре ноутбука это занимает около минуты
Статус
Экспериментальное программное обеспечение для testnet. Не проходило аудит. RAND в testnet не имеет реальной стоимости
Лицензия
GPL-3.0-only, как и крейты полного узла, с которыми компонуется каждый клиент
Другие клиенты

Один кошелёк, все платформы

Один и тот же файл ключа, формат адреса и правила везде: кошелёк, созданный здесь, импортируется в любой другой клиент и в CLI rand.