Главное Свежее Вакансии   Проекты
Продвинуть свой проект
😼
Выбор
редакции
264 5 В избр. Сохранено
Авторизуйтесь
Вход с паролем

Биткоин Миксер своими руками

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

b_5c2c8286c74e0.jpg

Существуют несколько коммерческих сервисов деанонимизации кошельков. Они круглосуточно парсят информацию об участниках форумов, изучают горячие кошельки крупных бирж и обменников, мониторят движения инвестиций и теневой рынок. Таким образом собирается огромная база соответствий адрес - владелец, как узловые элементы в цепочке денег. По ним то и можно определить движение средств.

Принцип работы Биткоин миксера

Не все пользователи хотели бы показывать свои транзакции, например при оплате услуг индустрии для взрослых, крипто-голосований или покупки цифрового контента. Да и вообще, неприкосновенность частной личной жизни, персональных данных и финансов, в Европейских странах защищена законом.

Для того чтобы прервать или запутать цепочку транзакций созданы биткоин миксер (или тумблер). Главная цель процесса- полностью разорвать связь входящей оплаты и анонимной транзакции, поступившей на кошелек получателя платежа.

В данном процессе могут участвовать:

  • предварительно смешанные монеты из различных источников
  • промежуточное объединение монет
  • рандомное разделение монет в разных пропорциях
  • выплата одной или несколькими суммами
  • разное время выплаты растянутое в несколько часов
  • плавающая комиссия миксера и блокчейн сети

b_5c2c82c801bb2.jpg

Самым примитивным способом смешивания монет, могут быть монеты от других участников миксера. Но их сомнительное происхождение, только усугубит анонимность клиентов. Поэтому правильнее, покупать чистые Биткоины от крупных бирж, таких как Binance, Huobi, Poloniex и другие, брать из кросс-валютных обменников ETH-LTC-BTC, а также получать новые намайненые монеты в ходе эмиссии.

Подготовка к разработке

В этой статье мы не даем готового решения, которое можно скачать и поставить. Потому что логика смешивания и отдачи монет имеет огромное количество вариантов. Также можно распоряжаться не только своими биткоинами, а привлекать инвестиционные под процент или вообще обходиться только входящими монетами. В этой статье, мы лишь расскажем о ключевых возможностях реализации, методах приема платежей и распределения транзакций.

В целях безопасности, проект можно разделить на две части: главная страница и сервер выплаты (backend). В случае компрометации веб сервера, злоумышленник не будет иметь возможности получить доступ к денежным ресурсам миксера. Серверная часть будет принимать колбэк от платежного сервера, выполнять выплаты по таймеру и управлять капиталом сервиса.

Поднимать собственную Битоин ноду, держать отдельный мощный сервер и обслуживать его, довольно дорого и трудозатратно. Ведь ноде нужно минимум 200Гб жесткого диска, 2Гб ОЗУ и более менее приличный процессор. Гораздо удобнее использовать готовые API (Application Programming Interface).

Найдено несколько таких вариантов:

https://btcpayjungle.com/

https://www.blockchain.com/ru/api

https://bitpay.com/api

https://apirone.com/ru/docs/wallet

Возьмем готовое решение от Apirone. Здесь все входящие транзакции можно принимать абсолютно бесплатно. А в одной транзакции можно указать до 255 получателей и заплатить фиксированную комиссию, всего 0.0002 BTC ($0.7). Такой сервис идеально подходит для нашего Миксера. Его легко масштабировать и быстро разворачивать на любом сервере. К тому же не требуется отправлять документы и деанонимизировать себя.

Кошельки полностью анонимные, а создавать их можно сколько угодно, без ограничений.

Для хранения чистых Биткоинов нам потребуется Saving (накопительный) кошелек. Создаем его простым POST запросом в JSON формате: {"type": "saving"} на эндпоинт https://apirone.com/api/v2/btc/wallet

В ответ получаем результат в JSON формате:

{ "wallet": "8e9c53a62755bcc66e4d2aaae3a2af6d", "type": "saving", "transfer_key": "7j0ap91o99cxj8k97j0ap91o99cxj8k9", "currency": "btc" }

wallet - идентификатор созданного кошелька.

transfer_key - ключ для создания выплат и управления кошельком.

Главная страница

b_5c2c830a01a13.jpg

На главной странице мы поместим возможность оплатить одному или сразу нескольким получателям в разных процентных пропорциях, а также дадим возможность выбрать сервисный сбор самостоятельно.

По нажатию на кнопку Продолжить, адреса и соответветствующие проценты сохраняются как заказ, в базе данных.

Для нашего уже имеющегося кошелька, создаем новый биткоин-адрес для оплаты. Отправляем POST запрос в JSON формате.

Пример кода на PHP:

<?php $json_data = array ( "callback" => array( 'url'=> 'http://example.com/callback', 'data' => array ( 'invoice_id' => "1234", 'secret' => "7j0ap91o99cxj8k9"))); $wallet = "8e9c53a62755bcc66e4d2aaae3a2af6d"; $api_base = "https://apirone.com/api/v2/btc/wallet/". $wallet ."/address"; $curl = curl_init($api_base); curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type: application/json")); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($json_data)); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $http_status_code = curl_getinfo($curl, CURLINFO_HTTP_CODE); $response = curl_exec($curl); curl_close($curl); $decoded = json_decode($response, true); echo "Please send the payment to the following bitcoin address: " . $decoded["address"];?>

В 'url'=> 'http://example.com/callback' меняем ссылку на адрес страницы для колбэка на своем сайта. Эта страница будет получать всю информацию о поступающих платежах.

'invoice_id' - сохраненный в БД номер заказа.

'secret' - придуманный вами секретный код, для доп. безопасности при получении данных от платежного сервиса.

$wallet - идентификатор кошелька с которым мы работаем

Для удобной оплаты с мобильного телефона, показываем QR код с биткоин-адресом,

echo '<img src="https://apirone.com/api/v1/qr?message='. $decoded["address"] .'">' ;

Сумма оплаты может быть любая, так как платеж будет разделяться по процентам.

Обработка Callback

Страница колбэка нужна для приема данных о транзакции и выполнения бизнес логики при оплате. На эту страницу Биткоин-процессинг передает: адрес, сумму, хэш транзакции,

количество подтверждений и данные которые мы указали: invoice_id и secret. Данные передаются POST запросом в формате JSON, так удобнее и безопаснее.

Для обработки нам нужен не сложный скрипт:

<?php
$secret = "7j0ap91o99cxj8k9";

//receive JSON data
$data = file_get_contents('php://input');

if ($data) {
    $params = json_decode($data, true);

    // Проверяем секретный код
    if ($params["data"]["secret"] !== $secret) die();

    $url = $params["data"]["url"];
    $logo = $params["data"]["logo"];
    $input_address = $params["input_address"];
    $value_in_satoshi = $params["value"];

    // Если количество подтверждений ноль, то записываем данные в базу, но не выплачиваем

    if ($params["confirmations"] == 0) {
    
        // пишем данные о транзакции и 
        отмечаем статус инвойса - ожидание подтверждения оплаты
        
    }
    
    if ($params["confirmations"] >= 3) {
        
        // транзакция три раза подтверждена в сети, отвечаем платежному серверу *ok* и ставим статус заказа - на выплату
        
        echo "*ok*";
    }
}
?>

Мы настоятельно рекомендуем делать выплату минимум после одного подтверждения в сети!

Выплата в Биткоинах. Backend сервер.

После подтверждения оплаты клиентом, нам нужно снова получить список получателей платежа и процентах. Затем создаем JSON запрос на выплату:

<?php
  $WalletID = "8e9c53a62755bcc66e4d2aaae3a2af6d";
  
  $json_data = '{"transfer_key": "3847fud983d30d303ie093uj97"}' .
  array ( 
    'destinations' => array (        
        array('address' => "1apiKcJM95jENZeom2dQo8ShK7dUQkRaS", 'amount' => "52.57%"),
        array('address' => "1ApiwpetcWnBbkpU7cb7biPfc6Tiucasf8", 'amount' => "47.43%")
    )
  );
  
  $api_base = file_get_contents("https://apirone.com/api/v2/btc/wallet/" .
              $WalletID . "/transfer");
 
  $curl = curl_init($api_base);
  curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
  curl_setopt($curl, CURLOPT_POST, 1);
  curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($json_data));
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  $http_status_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
  $response = curl_exec($curl);
  curl_close($curl);

  $decoded = json_decode($response, true);
  echo "Transaction hash: " . $decoded["txid"];
?>

Здесь мы формируем выплату на два биткоин-адреса в соответствующих пропорциях, без учета комиссии миксера, её вам следует добавить в список.

b_5c2c83ab0be74.jpg

При этом комиссия платежного шлюза будет фиксированной и составляет всего 0.0002 BTC, независимо от суммы. Комиссия биткоин сети вычитается пропорционально от всей транзакции.

Привлечение Биткоин-инвесторов и реклама.

“Миксеру” необходимы оборотные средства, которые вы можете привлекать за счет инвесторов, делясь с ними частью прибыли. А для большего вовлечения аудитории в проект, вы можете добавить реферальную программу привлечения клиентов, скажем за каждого привлеченного клиента, мгновенная выплата.

Создайте систему бонусов для блогеров и активных участников соц. сетей, раздавая поощрения за активную рекламу. Скажем по несколько тысяч сатоши за каждое действие:

b_5c2c8430864ce.jpg

Вы можете быть хорошим организатором, продвинутым менеджером проекта или стартапером, чтобы запустить Биткоин-миксер. Ведь каждая идея достойна реализации!

+1
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Популярные за неделю
Показать следующие
Комментарии
Первые Новые Популярные
DeliveryCityBot
@DeliveryCityBot сервис помощников в мессенджере Telegram
DeliveryCityBot
Можно делать с холодных кошельков на другие холодные кошельки транзакции, через подобный миксер? Естественно, чтобы соблюдалась анонимность.
Ответить
Apirone.com
Apirone.com — Платежный шлюз для прима и выплаты Биткоинами.
Maxim Boyarov
Да, вы можете с любого на любой биткоин адрес пересылать. Поддерживаются все форматы, на 1, на 3 и на нативные Segwit адреса начинающиеся на bc1
Ответить
DeliveryCityBot
@DeliveryCityBot сервис помощников в мессенджере Telegram
DeliveryCityBot
Спасибо. А вы занимаетесь разработкой под клиента? Если да, то напишите нам.
Ответить
Apirone.com
Apirone.com — Платежный шлюз для прима и выплаты Биткоинами.
Maxim Boyarov
Только предоставляем услуги процессинга криптовалют.
Скоро биткоин-кошелек выпустим и будем добавлять Bitcoin Cash.
Ответить
DeliveryCityBot
@DeliveryCityBot сервис помощников в мессенджере Telegram
DeliveryCityBot
Понятно. Спасибо.
Ответить
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать
Комментарии