В ближайшие выходные состоится Хакатон PayPal. Я пойду на него, и попытаюсь реализовать p2p систему обмена Bitcoin и Paypal. Цель данной статьи: обсудить идею и собрать единомышленников, готовых объединиться в команду на Хакатон.
Думаю никто не будет спорить, что на сегодняшний день Bitcoin лидирующая p2p крипто валюта, и она продолжает набирать популярность. Однако, для анонимной p2p валюты, у Bitcoin слишком высокая централизованность обмена Bitcoin на другие валюты.
К тому же, не достаточно просто сделать p2p биржу. Такие проекты были, но из-за анонимности Bitcoin, покупатели не спешили расплачиваться с продавцами Bitcoin. Необходим посредник, который бы гарантировал исполнение сделки.
Недостатками существующих бирж является уменьшение анонимности системы, т.к. появляется центральная точка, которая знает реквизиты обоих контрагентов не анонимном мире. И таких точек не много.
Моя идея заключается в том, что для гарантирования исполнения сделки, не надо знать реквизиты контрагентов, более того, не надо полностью резервировать средства у обоих контрагентов.
Итак:
1. Продавец и покупатель Bitcoin передают свои заявки гаранту
При выставлении заявки, с продавца и покупателя берется гарантийное обеспечение выхода на сделку (10%?). Оно необходимо, для избегания ситуации, при которой в систему будут отправляться лживые заявки, исполнять обязательства по которым не собираются.
Заявки содержат в себе открытую:
- Идентификатор заявки
- Bitcoin адрес заявки (для продавца Bitcoin, это адрес гаранта; Для покупателя, адрес покупателя)
- Цена
- Количество
- Ограничения (минимальный объем сделки, и т.п.)
- Публичный ключ данной заявки
И зашифрованную информацию:
- Реквизиты покупателя / продавца
2. Гарант сводит заявки, и сообщает всем о новой сделке.
При этом, сообщает всем следующую информацию:
- Идентификатор заявки покупателя
- Идентификатор заявки продавца
- Цена
- Объем
3. Покупатель и продавец сообщают ключи от блока “зашифрованной информации”
Свой ключ они шифруют открытым ключом из заявки контрагента, т.е. никто кроме контрагента не может узнать реквизиты участников сделки в не анонимном мире. В том числе не знает данных реквизитов и гарант.
4. Продавец Bitcoin перечисляет средства на счет гаранта.
При этом помним, что на шаге 1 уже оплачена гарантия выхода на сделку, т.е. осталось перечислить оставшуюся часть.
5. Покупатель Bitcoin переводит PayPal по реквизитам продавца
Перед этим он проверяет, что средства продавца на счет гаранта поступили.
6. Продавец Bitcoin сообщает гаранту, что средства получены
7. Гарант переводит Bitcoin покупателю
В том числе возвращает гарантию выхода на сделку. На данном шаге гарант может удержать свою комиссию.
Нюансы:
- Гарантов будет много, стать гарантом сможет любой, для этого будет достаточно скачать и запустить ПО и привлечь пользователей. Т.е. уберем технические проблемы, оставив только маркетинговые и репутационные.
- Гаранты будут обмениваться информацией о заявках, что повысит ликвидность всей системы. Кроме того единый протокол будет способствовать появлению арбитражоров.
- Если, по истечению часа после сведения сделки (2) продавец Bitcoin не отправил ключ расшифровки реквизитов заявки и средства Bitcoin, то средства гарантий выхода на сделку переводятся покупателю
- Если, по истечению часа после перевода продавцом Bitcoin, покупатель не отправил ключ расшифровки и средства Paypal, то оплаченные продавцом Bitcoin и средства гарантий выхода на сделку переводятся продавцу
- Покупатель имеет возможность самостоятельно подтвердить перевод средств Paypal посредством DKIM или API Paypal. Но при этом придется сообщить гаранту ключи расшифровки реквизитов. Т.е. предполагается, что это будет редкое явление.
- В подавляющем большинстве сделок (за исключением нюанса 3), гарант не будет знать о контрагентах нечего, кроме bitcoin адресов. Т.е. давление на него с целью деанонимизации не будет иметь смысла.
- Отношение комиссии гаранта за месяц, к средствам пользователей на его счетах, будет отображаться в интерфейсе пользователя. Т.е. пользователь сможет выбрать гаранта дешевого, но менее надежного,
- За счет интеграции с системами Bitcoin и Paypal, надеюсь, что объявленные выше сроки, равные часу, будут избыточными. Но т.к. система p2p, то компьютеры контрагентов должны быть включены.
Защита покупателей PayPal
Paypal очень заботится об удовлетворенности покупателей, позволяя вернуть средства, если доставка по сделке не была осуществлена. В связи с этим были случаи когда получив Bitcoin, покупатели опротестовывали сделку, и возвращали средства Paypal. Я связался с техподдержкой Paypal и получил следующий ответ (KMM47573209V60970L0KM):
Вы можете получать оплату через PayPal продавая Bitcoin. Ваши покупатели не будут защищены PayPal так как платежи за нематериальные товары, услуги, лицензии и другой цифровой контент не защищаются.
Хакатон
На Хакатоне я планирую реализовать данную систему на c#. Приветствую, желающих присоединится. Если вы хотите писать на языке отличном от c#, то возражать не буду. Согласуем протокол между компонентами (например, между клиентом и сервером) и вперед.
Email: anebotov@gmail.com
Skype: alexeynebotov
Автор: vohJyschKVRKTJq4KCboU9sov