Документация

Мост

Мост между TUSD в Tint и USDT в Ethereum и BNB Chain: его строят и сначала пробуют в тестовых сетях Sepolia и BSC Testnet.

Тестовая сеть: монеты ничего не стоят

Как это работает

В каждой сети Ethereum-семейства живёт контракт моста. Он хранит токены и ничего не знает о сети Tint.

Ввод: из Ethereum или BNB Chain в Tint

  1. Вы вызываете deposit(token, amount, tintAddress) у моста, называя адрес в Tint, на который нужно заплатить. Токен остаётся в контракте.
  2. Контракт публикует событие ввода: токен, сумма, ваш адрес и адрес в Tint.
  3. Мост выплачивает такую же сумму TUSD в сети Tint на этот адрес.

Вывод: из Tint в Ethereum или BNB Chain

  1. Вы платите TUSD в Tint мосту и называете адрес в другой сети.
  2. Подписанты моста видят, что платёж пришёл, и подписывают выплату.
  3. Затем любой может передать release(token, to, amount, order, signatures) с подписями числом не меньше порога, по 65 байт каждая. Контракт проверяет их и выплачивает токены; подписи могут сделать только подписанты.

В каждой выплате есть номер order — хеш платежа в Tint. Контракт помнит все оплаченные номера, поэтому один платёж в Tint выплачивается один раз.

Что кастодиально сегодня

  • Контракт доверяет своим подписантам: они выпускают только то, что действительно пришло в Tint. Для выплаты нужен порог подписей (например, 2 из 3) под сводкой в стиле EIP-712.
  • Контракт доверяет своему владельцу: он называет честных подписантов. Владелец может менять правила, подписантов и ставить мост на паузу. Владение передаётся в два шага: сначала предлагается, потом принимается.
  • Сегодня владельца и подписантов выбирает команда Tint. Если они нечестны или потеряют ключи, внесённые токены можно потерять или заморозить. Это и значит «кастодиальный».

Ограничения контракта

Они ограничивают ущерб от ошибки или украденного ключа. У каждого токена своё правило:

ПравилоСмысл
ВключёнОткрыты ли вообще вводы и выплаты этого токена.
КратностьКаждая сумма должна делиться на это число, чтобы не терялась «пыль» между знаками токена (6 у USDT в Ethereum, 18 в BNB Chain) и 8 знаками Tint.
МинимумНаименьшее, что может двигать один ввод или одна выплата.
МаксимумНаибольшее, что может двигать один ввод или одна выплата.
Дневной лимитНаибольшее, что могут двигать вместе все выплаты одних суток UTC.
ПаузаПока мост на паузе, ничего не вводится и не выплачивается.

Что мост делает с приватностью

Сторона Ethereum публична. Событие ввода показывает токен, сумму, отправителя и адрес в Tint, на который он идёт. Выплата показывает получателя и сумму. Перевод через мост связывает ваш публичный адрес с адресом в Tint и суммой, так что считайте переход видимым. Когда TUSD оказались в Tint, платежи между записями снова приватны.

Тестовый токен

Чтобы пробовать мост там, где настоящих стейблкоинов нет, в репозитории лежит контракт TestDollar. Любой может выпустить себе немного, до предела за вызов, и стоит он ноль. У него 6 знаков, как у USDT в Ethereum, или 18, как у USDT в BNB Chain. Никогда не выпускайте его в сети с настоящими деньгами.

Состояние

  • Контракт моста и тестовый токен написаны и покрыты тестами. Аудита у них нет.
  • Часть со стороны Tint, то есть как выплачиваются вводы и замечаются выводы, ещё не опубликована, и описанный порядок может измениться.
  • В кошельке мост показан как «скоро». Переводить пока нечего.