Анонимность и децентрализация: приложение для 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

А вот написание стратегии для бота - это будет пожалуй для меня интересным испытанием


My English version of this post


Comments 26


Это божественно...))

30.05.2017 21:11
0

Класс! Я не знал что такая опция есть с BTS. Это резко ставит его выше в моём табеле о рангах альткойнов.
Спасибо за подсказку!

30.05.2017 21:13
0

Я не знал что такая опция есть с BTS

Шикарно то, что это на уровне API самого графен, а стало быть применимо к голосу и steemit!

30.05.2017 21:28
0

Вот хотелось бы побольше узнать про графен этот. Я немного копался, но так и не смог толком разобраться - доступных материалов мало. Все говорят что на нём построен битшейрс и стим, но что такое этот графен нипанятна )
Это как эфириум является базой для golem? Или более сложная схема? И какое отношение к этому имеет EOS?
Может сподобитесь на статью или хоть носом ткнёте? )

30.05.2017 21:39
0

Графен это приложение на C++ для работы с блокчейнами в реальном времени. Быстрый, высокоэффективный и гибкий. Голос, стим, битшейрс, новая китайская сеть YOYOW, мапала и некоторые другие проекты построены на его базе.
EOS будет так же написан на С++ , но со значительным использованием WREN.io , который к слову теперь допиливается самими разработчиками EOS.

Из того что известно - EOS будет как самостоятельной платформой, так и в контексте битшейрс можно будет использовать EOS как некую надстройку-плагин для bitshares, STEEM и... даже других блокчейнов не без помощи wren и сайдчейнов (взаимодействие между разными БЧ) Сам EOS насколько мне понятно и известно станет в некотором роде средой исполнения для различных децентрализованных приложений, по большей части для молниеносной обработки большого количества смартконтрактов.

30.05.2017 21:51
0

Ух... слооооооожна. Но если в виде фронт-энда это будет представлено в итоге на уровне "для домохозяек" наверняка завоюет мир. А я до этого десять раз вложиться успею )))
Я неадавно думал что Dash супер крут, но похоже графеновые приложения имеют всё то же и ещё сверху немало...
Ещё бы разобраться с тем как получить процент какой-нибудь на те токены которые лежат у меня. В дэше это мастернода, стим платит за стимпавер, а на битшаре я ещё не разобрался но подозреваю что можно...
Мне кажется это тоже важнейший аспект - выиграет та платформа которая будет платить своим пользователям, при прочих равных.

30.05.2017 22:20
0

Человече же! Сам хотел бота сделать, а он есть, ну или почти есть. Хотя комиссии все равно конские, могли бы и уменьшить с ростом курса.

30.05.2017 21:14
0

Нет-нет, бот пока в состоянии эмбриона :) Там просто пример постановки ордера, всю логику нужно еще продумать. Просто пока искал подсказки по логике - нашел клиент для стеллсов - этот инструмент должен быть доступен каждому имхо.

30.05.2017 21:26
0

Шикарно! :)

30.05.2017 21:26
0

Сделай пока простенькую стратегию, что бы выставлял ордера на закуп по какой-то сетке, купленные объемы суммировал и продавал с профитом одним ордером.

30.05.2017 21:26
0

СПасибо @vik! Полезная статья... Жаль пока нет нужды шифровать свой крипто трафик

30.05.2017 21:50
0

Анонимные транзакции только в Bitshares, на GOLOS и в STEEM их нет?

30.05.2017 21:54
0

обсуждение в github
https://github.com/steemit/steem/issues/568

30.05.2017 21:58
0

На STEEM вот есть куски
https://github.com/steemit/steem/commit/8daa13fddc117d423b45376aa6466023378e694a

А вот на голосе найти не могу

30.05.2017 22:06
0

Супер, спасибо за ссылки. Судя по датам - на Стиме это ввели уже после запуска Голоса, так что в наш код скорее всего не попало. А вообще классная фича, Рад, что вы её обнаружили.

30.05.2017 22:25
0

Спасибо @vik!

31.05.2017 06:20
0

Благодарю за отличный пост, и важный поднятый вопрос, определенно будем включать данный функционал в RuDex

31.05.2017 08:17
0

К чему преведет нас этот биткоин?

31.05.2017 08:26
0

Действительно круто! )
Жаль только, что в приватных переводах отсутствует возможность указать поле MEMO, что немного ограничивает их применение...

31.05.2017 11:47
0

Есть! :)
Их нет в GUI клиента, но на самом деле есть!

struct blind_memo
 {
  account_id_type from;
  share_type amount;
  string message;
 uint32_t check= 0;
 };

https://bitshares.org/doxygen/confidential_8hpp_source.html

Мне кажется при желании можно сделать убийцу BTC-e кодов.
Представьте отправку на приватный аккаунт с определенным мемом - пусть он будет кодом ваучера пополнения.

Затем зная публичный ключ приватного аккаунта и мемо - любой желающий сможет запросить баланс, таким образом пополнив свой баланс.

Если добавить автоматизма получится генерация ваучеров до востребования любым пользователем.

31.05.2017 12:21
0

Их нет в GUI клиента, но на самом деле есть!

А насколько долгий процесс добавления в GUI? Было бы здорово добавить )

Мне кажется при желании можно сделать убийцу BTC-e кодов.

Да, наверняка )

31.05.2017 13:29
0

Спасибо, куплю для пробы

31.05.2017 12:14
0

отличный пост
крассава

31.05.2017 17:59
0

@vik, Поздравляю!
Ваш пост был упомянут в моем хит-параде в следующих категориях:

  • Голосов - 1 позицию - 180 Голосов
  • Выплаты - 1 позицию - 2429,7880 GBG
01.06.2017 06:52
0

Господи! Помоги мне во всём этом разобраться!

05.06.2017 14:38
0

Очень полезная информация! Спасибо!

15.06.2017 14:47
0