Анонимность и децентрализация: приложение для stealth (скрытых) транзакций блокчейнов Graphene/Bitshares/RuDEX
По своей природе блокчейны и анонимность - несовместимые понятия.
Да, вам нет необходимости верифицировать свою личность, показывать какие-либо личные данные и т.д. Но фактически все ваши транзакции записываются в публичную цепочку и отследить взаимосвязь переводов и точек выхода на фиат может любой желающий.
Многие альткойны получают просто колоссальную популярность только по причине того, что предоставляют желанный функционал анонимности. Например - Monero и его кольцевые подписи, z адреса в z.cash, darksend в dash и другие. Кроме этого растет бесчисленное количество частных сервисов "микшеров" которые предлагают замешать ваши монеты в множестве операций, якобы очищая ваши цифровые деньги, но на самом деле вы получаете с миксера еще более "грязную" криптовалюту с черного рынка или вовсе остаетесь ни с чем если попались на уловки мошенников.
Я не буду оригинален, если предположу, что не всем пользователям Bitshares/Steem/Golos по душе то, что вся их история сделок не просто открыта, а еще и удобно представлена - ведь в Graphene адреса кошельков это не просто набор произвольных чисел, а классические никнеймы пользователей.
Но вы удивитесь узнав, что в Graphene (основа Golos/Steem/Bitshares) есть возможность анонимных транзакций не первый год. И с марта 2016 года существует открытый GUI клиент для таких переводов.
Bitshares сочетает в себе столько возможностей, что порой наблюдая очередной помпезный выход какой-то новой криптовалюты c "революционным" функционалом хочется пожать плечами со словами - "Так это давно есть на графен..."
Как использовать Blind Transfers в Bitshares/RuDEX
Для начала скачаем официальный stealth клиент https://github.com/cryptonomex/graphene-ui/releases/
Он без русского языка, но интуитивно все понятно. К тому же думаю @blockchained c командой RuDEX сделают локализацию для BitRUBLE
Скачиваем десктоп клиент .exe если у вас windows
Запускаем скачанный файл и устанавливаем
Файрволл windows попросит вас подтвердить действие кровавой подписью, так как воспринимает все связанное с криптой болезненно.
После установки ярлыки не создаются, по-этому самостоятельно идем в папку /Program Files (x86)
И запускаем клиент
Нам будет предложено создать новый кошелек, для этого нужно ввести дважды ПРИДУМАННЫЙ пароль
Пароль надежно сохраните! Дополнительно скачайте так же бекап файл
Придуманный пароль и данный файл - это две составляющие для входа в ваш кошелек или переноса аккаунта на другой компьютер или веб-клиент типа RuDEX
Теперь вам нужно создать аккаунты в кошельке, они же счета:
На моем скрине уже есть записи из истории, ваш кошелек будет по-началу пустым.
- Создайте публичный (классический) аккаунт Add public account
- Затем создайте private account
Приватный аккаунт начинается с символа~
и доступен только в вашем аккаунте, можете назвать его как угодно.
В примере я создал публичный аккаунт vik-golos
и приватный ~private
(Следует понимать, что приватный аккаунт в данном случае принадлежит публичному)
Далее я пополнил аккаунт vik-golos
Теперь переходим в раздел SEND и в аккаунте отправителя пишем публичный аккаунт, а в поле получателя вписываем наш приватный аккаунт обязательно начиная с символа ~
В поле комиссии вы увидите стандартную для переводов комиссию, однако это не верно! Комиссия на стеллс переводы чуть больше 20 BTS (75 руб по текущему курсу) возможно это кажется дорого, но следует понимать, что во-первых эта комиссия фиксированная, т.е. отправляя миллион - комиссия все равно останется такой. А во-вторых - это просто несоизмеримо дешевле микшеров транзакций, и в сравнении с микшером - моментально. Вам не нужно будет ждать несколько суток как в биткойн миксерах и платить за это большой %.
Делаем перевод на приватный аккаунт с учетом, что он будет стоить 20+ BTS
Комиссия
Успешный трансфер в "слепой" Blind Account
Теперь самое интересное! На той же странице SEND мы переведем с моего слепого аккаунта ~private
на другой аккаунт в RuDEX.
Если описать операции сначала, то я сделал следующее:
- Установил клиент
- Создал в нем публичный аккаунт
vik-golos
и пополнил его извне. - Создал в нем приватный аккаунт
~private
- Далее я перевел с
vik-golos
монеты на невидимый аккаунт~private
А теперь я хочу анонимно перевести со своего кошелька монеты кому-то еще. Для примера я взял свой другой, не связанный никак с вышеупомянутыми учетными записями, аккаунт vik-x
и перевел на него монеты с невидимого аккаунта:
Увы, здесь нас снова поджидает комиссия 15+15 BTS
Но это того стоило!
Я получил BTS анонимно! Вот так это отображено в истории
Отправил BTS я так же анонимно:
Естественно можно попробовать искать в блокчейне похожие вводы и выводы по времени что бы определить источники анонимных транзакций, но я вам показал самый примитивный способ "обрыва цепочки". Можно использовать схемы, когда вы переводите монеты между несколькими своими приватными аккаунтами в разное время, взаимодействуя с приватными аккаунтами других пользователей, а так же использовать другие интересные механики стелс переводов! Как я упомянул ранее - порой кажется, что в bitshares предусмотрели буквально все. :)
Анонс bitshares-бота на JavaScript
Я нашел эти наработки не случайно, а во время тестов JS библиотеки для работы с RuDEX/OpenLedger
Дело в том, что многие пользователи в чате считали, что для стелс трансферов еще нет GUI, потому я начал делать его на JS и пытаясь разобраться с синтаксисом нашел этот стелс-клиент которому уже более года :)
JS библиотеку я постараюсь не забросить и создать на ней торгового JS бота для RuDEX
Бот который будет размещать ордера по заданному алгоритму (стратегии торговли), пример как разместить ордер на JS можно найти в моем репозитории:
https://github.com/vikxx/botshares/blob/master/test/operations.js
А вот написание стратегии для бота - это будет пожалуй для меня интересным испытанием