Мій варіант арбітражу

Я не зміг знайти ні в одній кріптовалюти вбудованого механізму арбітражу, який був би вигідний і зручний як продавцю, так і простому покупцеві, далекій від IT. Тому я зробив свій варіант з блекджеком і ..., який вмонтував у свою криптовалюту, яку розробляю вже 4-й рік.



Спочатку коротко про те, що у мене вийшло в результаті
  • Арбітри не можуть забрати собі ні гроші покупця, ні гроші продавця. Вони можуть приймати рішення про списання грошових коштів з рахунку продавця в разі, якщо від покупця надійшла претензія. За свої послуги арбітри отримують комісійні — відсоток від кожної угоди, де вони вказані в якості арбітрів.
  • Для того, щоб операція відбулася, і в покупця і продавця повинен бути хоча б один загальний арбітр.
  • Покупець може прикріпити до однієї операції до 5-та арбітрів. Всі арбітри володіють рівними правами, кожен їх них може здійснити манібек.
  • Перед переказом коштів покупцю надається інформація про продавця: оборот, кількість покупців (анонімних, не анонімних) і ін

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


Будь-яка дія арбітра фіксується і зберігається в блокчейне. Таким чином, інформація про діяльність арбітра є загальнодоступною. Однак для захисту від накрутки статистка видається тільки за автентифікованим користувачам.


При перекладі монет користувач вибирає арбітра із списку арбітрів, яким довірять і він і продавець, потім тисне «відправити».


Якщо у покупця виникають претензії до продавця, він заходить в список покупок, тисне «Манібек», вказує свій email, який шифрується відкритим ключем арбітра(ів) і продавця, і чекає, поки з ним зв'яжуться для з'ясування обставин.

А тепер деталі
Спочатку пара слів про Dcoin
У Dcoin немає центральних серверів, також як в Bitcoin у кожній ноди зберігається повна копія бази даних. Обмін новими даними між нодами відбувається за допомогою блоки. Кожен блок містить геш попереднього блоку. Всі транзакції, що виходять від користувача містять унікальну підпис, яка доводить, що транзакція створена саме цим користувачем.


На відміну від биткоина, в Dcoin не один, а 66 типів транзакцій, завдяки яким Dcoin може існувати у тому вигляді, в якому він представлений.

Приклад структури транзакції:
Поле Опис Розмір
TYPE Тип транзакції 1 байт
TIME Час транзакції 4 байта
USER_ID ID користувача, який створив транзакцію 5 байт
CURRENCY_ID ID валюти 1-3 байти
AMOUNT Розмір обіцяної суми 1-12 байт
VIDEO_TYPE youtube,vimeo,youku,null 4-7 байт
VIDEO_URL_ID ID відео-хостингу 5-32 байта
PAYMENT_SYSTEMS_IDS ID платіжних систем 1-24 байта
SIGN Від 1 до 3-х підписів (TYPE,TIME,USER_ID,CURRENCY_ID,AMOUNT, VIDEO_TYPE,VIDEO_URL_ID,PAYMENT_SYSTEMS_IDS) від користувача USER_ID від 128 до 4096 байт
Заголовок (TYPE,TIME,USER_ID) і SIGN є у всіх транзакцій, а всі інші поля змінюються в залежності від призначення транзакції.

Структура блоку:
Поле Опис Розмір
BLOCK_ID Порядковий номер блоку 4 байта
TIME Час, коли був створений блок 4 байта
USER_ID ID користувача, який підписав блок 5 байт
LEVEL Рівень, на якому був майнер в момент створення блока 2 байта
SIGN Підпис (TYPE, BLOCK_ID, PREV_BLOCK_HASH, TIME, USER_ID, LEVEL, MRKL_ROOT), зроблена за допомогою node-ключа від 128 до 512 байт байт
TRANSACTIONS Список транзакцій До 3Mb
З більш детальним описом роботи Dcoin можна ознайомитися в wiki.

Про майнінг в Dcoin
Майнінг в Dcoin — не є майнінг в чистому вигляді, до якого всі звикли на прикладі інших криптовалют. Виробництво нових монет не вимагає від користувачів яких би то не було зусиль. Dcoin-монети створюються з кожним новим блоком і розподіляються між усіма учасниками. Для анонімних користувачів зростання обсягу монет на їх рахунках становить близько 0,0004%/блок. Величину процента визначають ідентифіковані користувачі шляхом голосування
Один ідентифікований користувач може створити обмежену кількість монет з нічого. Тобто користувачі, які довели, що вони не боти-відповідають за створення початкової грошової маси. При цьому кожен такий користувач є точкою обміну готівки на монети в офлайні. Для простоти, ідентифікованих користувачів я називаю майнерами.
Є періоди скорочення обсягу монет, коли створених монет виявилося більше, ніж потрібно на ринку. Скорочення запускається на основі даних з блокчейна і його можна спрогнозувати, спираючись на кількість майнер, кількість створених монет і кількість обіцяних сум. Поки число майнер і обсяг обіцяних сум збільшується, скорочення не відбуваються. Більш детально про періоди скорочення і періоди розмноження можна почитати тут. А про ідентифікацію користувачів — тут.

Детальніше про арбітраж

Мульти-арбітраж

Dcoin дає можливість прикріпити до однієї операції до 5-та арбітрів. У разі якщо покупець запросить манібек, його запит зможе задовольнити будь-який з обраних арбітрів. Після того, як угода була запечатана у блокчейн, змінити список арбітрів по даній угоді стає неможливим. Кожному арбітру, який прикріплюється до операції, нараховуються комісійні.


Перелік довірених арбітрів

Для того, щоб операція відбулася, і в покупця і продавця повинен бути хоча б один загальний арбітр.
Як це виглядає зсередини

Структура транзакції

Поле Опис
TYPE Тип транзакції
TIME Час транзакції
USER_ID ID користувача, який створив транзакцію
TRUST_LIST Список арбітрів, яким довіряє користувач
SIGN Від 1 до 3-х підписів (TYPE,TIME,USER_ID,TRUST_LIST) від користувача USER_ID
Приклад операції

(
[type] => 62
[time] => 1408470908
[user_id] => 1
[arbitration_trust_list] => [2,107,269]
[вхід] => 82010085c558dd411e816f589d57e48a02bf9231c9dcc55994568e0e00a7db3980c7005d91e88815e5e5a3dc5908a7c4f97c1f973f7ba576c86621f59b608e9d84ce9595710050a42a72e12fa78eb6dd12f8ff90f7004d8b8426a7cf714d7707899e8aafd9dc4534b94292fe849cce765ca975af88f2524874e22439716a59d1473baf115da4d67193320a33f36a442aa1c9711c3145c7499c207fbcc2846f9712bb0dc96c6c59708fd8d25e36a631213679a060a728473be8f23b8f8591bce50b64c67cca00d970fce93a714d2678119b1e67324e9b462986d11239337532a179a6f455f68d3a2e59df24f34590bc032b7c8cc5d633add4bef4c8c18efe7100a5a873
)

Умови арбітра

Арбітр може задати різні умови по кожній валюті. Максимум — 0. Це значить без обмежень.
Як це виглядає зсередини

Структура транзакції

Поле Опис
TYPE Тип транзакції
TIME Час транзакції
USER_ID ID користувача, який створив транзакцію
CONDITIONS Комісія: мин, макс, %; мін, макс сума по кожній валюті, з якою працює арбітр
URL Адреса сайту арбітра, де він може показати якусь інформацію про себе
SIGN Від 1 до 3-х підписів (TYPE,TIME,USER_ID,CONDITIONS,URL) від користувача USER_ID
Приклад операції

(
[type] => 62
[time] => 1408470908
[user_id] => 1
[conditions] => {"23":["0.01","0","0.01","0","0.1"],"72":["0.01","0","0.01","0","0.1"]}
[url] => arbitr.ru
[вхід] => 82010085c558dd411e816f589d57e48a02bf9231c9dcc55994568e0e00a7db3980c7005d91e88815e5e5a3dc5908a7c4f97c1f973f7ba576c86621f59b608e9d84ce9595710050a42a72e12fa78eb6dd12f8ff90f7004d8b8426a7cf714d7707899e8aafd9dc4534b94292fe849cce765ca975af88f2524874e22439716a59d1473baf115da4d67193320a33f36a442aa1c9711c3145c7499c207fbcc2846f9712bb0dc96c6c59708fd8d25e36a631213679a060a728473be8f23b8f8591bce50b64c67cca00d970fce93a714d2678119b1e67324e9b462986d11239337532a179a6f455f68d3a2e59df24f34590bc032b7c8cc5d633add4bef4c8c18efe7100a5a873
)

Holdback

Продавець може вказати кількість днів, протягом яких покупець зможе запросити манібек, а також відсоток від суми покупки, що заморожується на рахунку продавця на зазначене раніше кількість днів.
Для фірми з виготовлення та доставки піци буде логічно вказати 3 дні і десь 10% холдбека.
А ось для продавця, який перший раз продає щось, наприклад, через сервіс аналогічний ebay.com краще вказати 30 днів і 100% холдбек. Потім поступово знижувати % холдбека, коли буде з'являтися репутація. 100% холдбек означає, що вся сума, яку сплатив покупець, заморожується на рахунку продавця на 30 днів і може в будь-який момент бути повернено покупцеві, якщо арбітр прийме таке рішення.

Як це виглядає зсередини

Структура транзакції

Поле Опис
TYPE Тип транзакції
TIME Час транзакції
USER_ID ID користувача, який створив транзакцію
ARBITRATION_DAYS_REFUND Кількість днів, протягом яких покупець зможе запросити манібек
HOLD_BACK_PCT % холдбека
SIGN Від 1 до 3-х підписів (TYPE,TIME,USER_ID,ARBITRATION_DAYS_REFUND,HOLD_BACK_PCT) від користувача USER_ID
Приклад операції

(
[type] => 62
[time] => 1408470908
[user_id] => 545
[arbitration_days_refund] => 30
[hold_back_pct] => 10
[вхід] => 82010085c558dd411e816f589d57e48a02bf9231c9dcc55994568e0e00a7db3980c7005d91e88815e5e5a3dc5908a7c4f97c1f973f7ba576c86621f59b608e9d84ce9595710050a42a72e12fa78eb6dd12f8ff90f7004d8b8426a7cf714d7707899e8aafd9dc4534b94292fe849cce765ca975af88f2524874e22439716a59d1473baf115da4d67193320a33f36a442aa1c9711c3145c7499c207fbcc2846f9712bb0dc96c6c59708fd8d25e36a631213679a060a728473be8f23b8f8591bce50b64c67cca00d970fce93a714d2678119b1e67324e9b462986d11239337532a179a6f455f68d3a2e59df24f34590bc032b7c8cc5d633add4bef4c8c18efe7100a5a873
)

Запит манибека

Покупець може запросити манібек протягом того часу, що було зазначено у продавця на момент вчинення правочину.

Як це виглядає зсередини

Структура транзакції

Поле Опис
TYPE Тип транзакції
TIME Час транзакції
USER_ID ID користувача, який створив транзакцію
ORDER_ID ID ордера, за яким користувач хоче манібек
ARBITRATOR0_ENC_TEXT Контакти користувача, зашифровані відкритим ключем RSA арбітра 1
ARBITRATOR1_ENC_TEXT Контакти користувача, зашифровані відкритим ключем RSA арбітра 2
ARBITRATOR2_ENC_TEXT Контакти користувача, зашифровані відкритим ключем RSA арбітра 3
ARBITRATOR3_ENC_TEXT Контакти користувача, зашифровані відкритим ключем RSA арбітра 4
ARBITRATOR4_ENC_TEXT Контакти користувача, зашифровані відкритим ключем RSA арбітра 5
SELLER_ENC_TEXT Контакти користувача, зашифровані відкритим ключем RSA продавця
SIGN Від 1 до 3-х підписів (TYPE,TIME,USER_ID,ORDER_ID,ARBITRATOR0_ENC_TEXT,ARBITRATOR1_ENC_TEXT,ARBITRATOR2_ENC_TEXT,ARBITRATOR3_ENC_TEXT,ARBITRATOR4_ENC_TEXT) від користувача USER_ID
Приклад операції

(
[type] => 62
[time] => 1408470908
[user_id] => 6589
[order_id] => 2725
[arbitrator0_enc_text] => 4440b7abc674354aeb85a3e56e32e3a844a75571e12e516b35db27d6bab71813dd6b05deb36a27c074305476218810944c81f11f6f6fe53957daaa167cf533d06dfe5c5c98d26f004996bd1462cb775a9d8512c4494fb8326894a9e7038d1c073397a7ada2d22ed75118d0aaeba1b2721656320dd4d181fdddcf59a0fb66c3bf
[arbitrator1_enc_text] => 73e87240c492d500436fcae4932050cb649c82da95f35b2bc00dadff840c52b4c1ab5ffa55fa1382549c6ae606f569e86e48fec2abefdf5efac92a736e3ec84e481718c003c510de314080c26842c6752051221c9bb27b45e146505e30f760f54284cc8e2b5c9d01999cc4314ccffbb77fcf4a02d35cec5c1efd61af3733b81b
[arbitrator2_enc_text] => ec022338af265ffe077d42edc5f7bb62efabaa4a68760209e62ba323a9ac6bcf8a118564475538c18ed13ce4a56d3d67c2354c3a7f8e3f4a283bdcc78532968715715acab73a48943943e2e444e6f474230c1ee8391ee34cbcfa368a4be2f918724dc9c31e6ea10d5ba3e248708de8e9e00341887df22e6c1eccda8ea8db9942
[arbitrator3_enc_text] => 6a73044d9b3ae670a29598dbfe057490e68d21f67b691b8a3132debefbee46dc124a0c6a900702a00238e658df1250284c3477e23cfffef05fcd589f025bb1a589fe3689582010ab77318e2498483fe8855d314c2799215117c67402401fcf851563ab2e5421849b888ab3298795a8fc12fa32259a264382383c4f8b4d95fbb1
[arbitrator4_enc_text] => a4513ed3b369fd85dae21e5561aa13d52886b63171321d686dd8d083ae0db8e64cfd8a19419973e83fa275cc037962633d7694097bf56944d1e78ebd4ecbf321678a095ec27df9ff5555194b6df697ba37f9fd6f7dfa3781202473b908c471e507838d0a7cda04b2502cf276d229b2c0d4fed5329ec8421d4aec86b18f33c502
[seller_enc_text] => 54b0c7b193aee7fea8cf30a0bff179b41b65b083c3e9cb5562940ee3cd7490fc0d7c17b5bf577798bde829da7d8fa264afb9f6e96242057edd4a04446da2660ef36675f0161f452685fd6cb45e170f4de282dc4913c16a59428053df4a283e96fb77f7d9e6b1d0942bc9e1fac72127bfebba48d3cf0eca4846f32106d3523adf
[вхід] => 82010085c558dd411e816f589d57e48a02bf9231c9dcc55994568e0e00a7db3980c7005d91e88815e5e5a3dc5908a7c4f97c1f973f7ba576c86621f59b608e9d84ce9595710050a42a72e12fa78eb6dd12f8ff90f7004d8b8426a7cf714d7707899e8aafd9dc4534b94292fe849cce765ca975af88f2524874e22439716a59d1473baf115da4d67193320a33f36a442aa1c9711c3145c7499c207fbcc2846f9712bb0dc96c6c59708fd8d25e36a631213679a060a728473be8f23b8f8591bce50b64c67cca00d970fce93a714d2678119b1e67324e9b462986d11239337532a179a6f455f68d3a2e59df24f34590bc032b7c8cc5d633add4bef4c8c18efe7100a5a873
)

Задоволення запиту манибека

Запит манибека бачить і продавець і арбітр. Якщо продавець зумів домовитися з покупцем до того, як арбітр прийняв рішення, то він може зробити повернення самостійно. Якщо ж продавець не зробив повний манібек, то його може зробити арбітр. Провести манібек на суму, більшу, ніж сума операції, неможливо.

Як це виглядає зсередини

Структура транзакції

Поле Опис
TYPE Тип транзакції
TIME Час транзакції
USER_ID ID користувача, який створив транзакцію
ORDER_ID ID ордера, за яким робиться манібек
AMOUNT Сума манибека
SIGN Від 1 до 3-х підписів (TYPE,TIME,USER_ID,ORDER_ID,AMOUNT) від користувача USER_ID
Приклад операції

(
[type] => 62
[time] => 1408470908
[user_id] => 7569
[order_id] => 2725
[amount] => 50.99
[вхід] => 82010085c558dd411e816f589d57e48a02bf9231c9dcc55994568e0e00a7db3980c7005d91e88815e5e5a3dc5908a7c4f97c1f973f7ba576c86621f59b608e9d84ce9595710050a42a72e12fa78eb6dd12f8ff90f7004d8b8426a7cf714d7707899e8aafd9dc4534b94292fe849cce765ca975af88f2524874e22439716a59d1473baf115da4d67193320a33f36a442aa1c9711c3145c7499c207fbcc2846f9712bb0dc96c6c59708fd8d25e36a631213679a060a728473be8f23b8f8591bce50b64c67cca00d970fce93a714d2678119b1e67324e9b462986d11239337532a179a6f455f68d3a2e59df24f34590bc032b7c8cc5d633add4bef4c8c18efe7100a5a873
)

Зміна часу розгляду спору

Часу, протягом якого можливий манібек, може не вистачити для прийняття зваженого рішення арбітром. Тому у нього є можливість одноразово збільшити цей термін до 180 днів.
Як це виглядає зсередини

Структура транзакції

Поле Опис
TYPE Тип транзакції
TIME Час транзакції
USER_ID ID користувача, який створив транзакцію
ORDER_ID ID ордера, за яким робиться збільшення часу
ADD_TIME Кількість днів, на яку буде продовжено час розгляду запиту
SIGN Від 1 до 3-х підписів (TYPE,TIME,USER_ID,ORDER_ID,ADD_TIME) від користувача USER_ID
Приклад операції

(
[type] => 62
[time] => 1408470908
[user_id] => 1
[order_id] => 2725
[add_time] => 180
[вхід] => 82010085c558dd411e816f589d57e48a02bf9231c9dcc55994568e0e00a7db3980c7005d91e88815e5e5a3dc5908a7c4f97c1f973f7ba576c86621f59b608e9d84ce9595710050a42a72e12fa78eb6dd12f8ff90f7004d8b8426a7cf714d7707899e8aafd9dc4534b94292fe849cce765ca975af88f2524874e22439716a59d1473baf115da4d67193320a33f36a442aa1c9711c3145c7499c207fbcc2846f9712bb0dc96c6c59708fd8d25e36a631213679a060a728473be8f23b8f8591bce50b64c67cca00d970fce93a714d2678119b1e67324e9b462986d11239337532a179a6f455f68d3a2e59df24f34590bc032b7c8cc5d633add4bef4c8c18efe7100a5a873
)

Недоліки
Самий головний недолік арбітражу полягає в тому, що арбітри повинні володіти високим ступенем довіри серед продавців/покупців і мати репутацію справедливих суддів, не заощаджують часу на проведення повноцінних розслідувань кожного спору, щоб їм можна було сміливо довіритися і ні про що не турбуватися.

Підсумок
У підсумку, до всіх принад незалежності, яку дає децентралізація електронних грошей, додалося одне з головних переваг класичних платіжних інструментів — можливість оскаржити угоду.

Тести
На моєму рахунку є 20 dUSD, які я готовий роздати для тестів (по 1 dUSD), пишіть в лічку. Ще близько 50 dUSD є на біржі.
web-гаманець і exe, джерело
Список сервісів, які вже приймають Dcoin-и:
racktech.uk
m4host.net
steadyhost.uk
komtet.uk (їх головний інженер підказав ідею арбітражу, за що йому величезне спасибі)

p.s.
З юзабили і інтерфейсами у мене не дуже, тому буду вдячний за поради, де що можна поліпшити.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.