- PVSM.RU - https://www.pvsm.ru -
Что мне не нравится в краудфандинговых площадках:
— огромная комиссия — до 10%
— жесткая модерация — не любой проект можно опубликовать
— отсутствие мультиязычного описания проектов и большие трудности с переводом денег, если бэкер, например, из Китая
— невозможность вернуть хотя бы часть денег, если автор проекта не выполняет свои обязательства в указанный срок.
Все вышеперечисленные проблемы я, частично или полностью, решил в своей криптовалюте, в которую встроил механизм децентрализованного краудфандинга.
Dcoin — децентрализованная криптовалюта, которая функционирует с апреля 2014. Имеет 2 типа аккаунтов — анонимные и майнерские. Если покупать монеты на бирже, то можно использовать простой анонимный аккаунт. Анонимные аккаунты и средства, находящиеся на их кошельках невозможно ни заблокировать, ни удалить.
В отличие от биткоина, в Dcoin не один, а 48 типов различных транзакций [3], благодаря которым Dcoin может существовать в том виде, в котором он представлен.
Пример структуры транзакции:
Поле | Описание | Размер |
---|---|---|
TYPE | Тип транзакции | 1 байт |
TIME | Время транзакции | 4 байта |
USER_ID | ID пользователя, который создал транзакцию | 5 байт |
CURRENCY_ID | ID валюты | 1-3 байта |
AMOUNT | Размер обещанной суммы [4] | 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 | Уровень [5], на котором был майнер в момент создания блока | 2 байта |
SIGN | Подпись от (TYPE, BLOCK_ID, PREV_BLOCK_HASH, TIME, USER_ID, LEVEL, MRKL_ROOT), сделанная при помощи node-ключа [6] | от 128 байта до 512 байт |
TRANSACTIONS | Список транзакций | До 3Mb |
С более детальным описанием работы Dcoin можно ознакомиться в wiki [7].
Запуск нового проекта очень прост. Нужно всего лишь заполнить несколько полей.
Через несколько минут после отправки в DC-сеть, когда транзакция попадет в блок, Ваш проект станет доступен для финансирования, и на него уже можно будет отправлять монеты.
Поле | Описание |
---|---|
TYPE | Тип транзакции |
TIME | Время транзакции |
USER_ID | ID пользователя, который создал транзакцию |
CURRENCY_ID | ID валюты |
AMOUNT | Желаемая сумма |
END_TIME | Время окончания сбора средств |
LATITUDE | Широта |
LONGITUDE | Долгота |
CATEGORY_ID | ID категории |
PROJECT_CURRENCY_NAME | Название для новой криптовалюты |
SIGN | От 1 до 3-х подписей (TYPE,TIME,USER_ID,CURRENCY_ID,AMOUNT, END_TIME,LATITUDE,LONGITUDE,CATEGORY_ID,PROJECT_CURRENCY_NAME) от пользователя USER_ID |
( [type] => 35 [time] => 1408470376 [user_id] => 1 [currency_id] => 72 [amount] => 1000 [end_time] => 1409075213 [latitude] => 39.94887 [longitude] => -75.15005 [category_id] => 4 [project_currency_name] => TEST003 [sign] => 820100701a18c4e8f3f92a109ff347784bcd1b78325e8ccbb4b69693b509a211212a7d3306268347c2228de0d395f11368358c52141c8fe6056d63b520942d8f1434722b5bdbf97c412099f20b3f82fc48dc484db93baf78084583134b0f0b9b667cabc5b842befa6ad4519677241f37de8ecdac6ac9026bfe2454810f267fe8f6547516e358cdf9eb3f705085833aa37f4c8a6cb046949f415085e56a537698b0c6d762840b82188ebfe86736d5b7ac47823bc4a25d72065208f082968377c902a757bfe6fd10225d1f7c96fcb860543d8e5c2cae92baa67fb705560e437141f6610798f58e6564b24ef8dbbc0a00011f7e21cc399f941babaab3637f6555f2077170 )
После обработки такой транзакции создается запись в таблице cf_projects
Всего можно прикрепить до 10-и описаний на разных языках. Описания можно добавлять только в виде URL картинок. Это необходимо для того, чтобы переложить ответственность за содержимое контента с немодерируемых нодов на
Поле | Описание |
---|---|
TYPE | Тип транзакции |
TIME | Время транзакции |
USER_ID | ID пользователя, который создал транзакцию |
PROJECT_ID | ID проекта |
LANG_ID | ID языка |
BLURB_IMG | Изображение для каталога |
HEAD_IMG | Изображение для шапки |
DESCRIPTION_IMG | Картинка-описание проекта |
PICTURE | Главная картинка |
VIDEO_TYPE | Если есть видео, то video_type |
VIDEO_URL_ID | Если есть видео, то video_url_id |
NEWS_IMG | Картинка новостей проекта |
LINKS | Ссылки для картинки-описания в формате [[«url1»,x1,y1,x2,y2],[«url2»,x1,y1,x2,y2],...]. до 512 знаков. |
HIDE | Можно спрятать, если случайно было добавлено описание на ненужном языке |
SIGN | От 1 до 3-х подписей (TYPE,TIME,USER_ID,PROJECT_ID,LANG_ID, BLURB_IMG,HEAD_IMG,DESCRIPTION_IMG,PICTURE,VIDEO_TYPE,VIDEO_URL_ID,NEWS_IMG,LINKS,HIDE) от пользователя USER_ID |
( [type] => 40 [time] => 1408470908 [user_id] => 1 [project_id] => 4 [lang_id] => 42 [blurb_img] => http://i.imgur.com/BBnBbC5.png [head_img] => http://i.imgur.com/BBnBbC5.png [description_img] => 0 [picture] => http://i.imgur.com/BBnBbC5.png [video_type] => youtube [video_url_id] => 0 [news_img] => 0 [links] => 0 [hide] => 0 [sign] => 82010085c558dd411e816f589d57e48a02bf9231c9dcc55994568e0e00a7db3980c7005d91e88815e5e5a3dc5908a7c4f97c1f973f7ba576c86621f59b608e9d84ce9595710050a42a72e12fa78eb6dd12f8ff90f7004d8b8426a7cf714d7707899e8aafd9dc4534b94292fe849cce765ca975af88f2524874e22439716a59d1473baf115da4d67193320a33f36a442aa1c9711c3145c7499c207fbcc2846f9712bb0dc96c6c59708fd8d25e36a631213679a060a728473be8f23b8f8591bce50b64c67cca00d970fce93a714d2678119b1e67324e9b462986d11239337532a179a6f455f68d3a2e59df24f34590bc032b7c8cc5d633add4bef4c8c18efe7100a5a873 )
После обработки такой транзакции создается запись в таблице cf_projects_data, либо, если запись с таким же языком для такого же проекта уже есть, то обновляется существующая.
Для того чтобы профинансировать какой-то проект, нужно просто кликнуть «Профинансировать», после чего откроется вот такая форма:
Поле | Описание |
---|---|
TYPE | Тип транзакции |
TIME | Время транзакции |
USER_ID | ID пользователя, который создал транзакцию |
PROJECT_ID | ID проекта |
AMOUNT | Сумма |
COMMISSION | Комиссия, которая достанется майнеру, подписавшему блок |
COMMENT | Примечание, зашифрованное открытым ключом автора проекта |
SIGN | От 1 до 3-х подписей (TYPE,TIME,USER_ID,PROJECT_ID,AMOUNT, COMMISSION,COMMENT) от пользователя USER_ID |
( [type] => 48 [time] => 1408471786 [user_id] => 1 [project_id] => 4 [amount] => 100 [commission] => 0.1 [comment] => 4793010de6e65288fba7ba71e93883cafc0c724fb6306cc77b0525721b5e76883234997bcb4bda16e2568e5c1c30fb53fdb61999aa0c066189352d8ebc9d4dfb58d298d997cfdcf60c10d89815a4f620a68bbc690f95503e50e1913b3f82322df37895587413fde1b09c8acc4d746a145027b4753f180b073c31c8ab199f475d5c9c86841aaee506cb97bebe799e7497bf5765f848d9bfda3c58a44be9da4e86bb319d6580c5a35a8e49ec3a519bbfb53b33d590f691247929c2d489bcd8fa0d70c78c0b302edd39a474f116cfbf0d972ce0dee3999525d021161a6c5492c9a895eb01e764ee4fc1287ac41d3aea1b251108f362eb4984f01acf34ab0d202991 [sign] => 820100766b5e41a7fcc473912dfc74afdd7f47dbacbf0a8ebd6b3f552a3d58972cbd979c61e1942b59b1cfaa74b89a8bbc30849b7e9942e1fd16be2a48ccc0b2ffb1152bc737967ec3330b4225b4f195d7d7f8356c15ab72ccbaed9587445bacd45f367d7d20a34ed546b0d48dafe1cb4cf3a3d3187a50a52eafd09d874da67f7e2ccfd861a17b5ee91bbcf5cd92565faf5b2d25d249d0f6fe307d63cb883343eb9c9be4ff4c0ed2ca83ea3e5e8c54bf9d780d819e3f5ca2495c5aab4dff6c34bfa8d5bde60beeb84c6474305c968920a5526a6c563c96abdd4a67efb793637d009f0878bbec56e277b87ad4675098a4eb650c6910ab973d7f72980554f068499a33ad )
После обработки такой транзакции создается запись в таблице cf_funding, где записывается amount из транзакции, а у отправителя эта сумма списывается со счета.
Если end_time проекта <= time из блока, тогда проект закрывается — в cf_projects в close_block_id указывается ID текущего блока. Далее возможны 2 сценария:
1. Нужная сумма набрана. В таблице cf_currency создается запись с названием валюты проекта. Автору проекта начисляется собранная сумма. Бэкерам начисляется валюта проекта пропорционально суммам, которыми они профинансировали проект.
2. Нужная сумма не набрана. Всем бэкерам возвращаются монеты, которые они отправлял в данный проект.
Если Вы передумали, то до завершения проекта можете вернуть свои монеты. Нужно просто нажать cancel в списке операций по Вашему счету.
Поле | Описание |
---|---|
TYPE | Тип транзакции |
TIME | Время транзакции |
USER_ID | ID пользователя, который создал транзакцию |
FUNDING_ID | ID из таблицы cf_funding |
SIGN | От 1 до 3-х подписей (TYPE,TIME,USER_ID,FUNDING_ID) от пользователя USER_ID |
( [type] => 44 [time] => 1408472956 [user_id] => 1 [funding_id] => 40 [sign] => 8201001245f8abcaf636c43ddecd54348c1f3462ce3ef3179c5da246e221f09567dc909ba1c477e62ed1a3bb4909230045eda3476c3a69ac602730f6f47955ca67b030011872b0f780c1f4a8e140f2e90e2f76de8781c372922c172c07e8065227f04fb7bf16b810c884f4c190915f9c9d40ee03bed24cfa239ef1400b536511150201a87c125467cc08253647d53381f75baf791f42d68cd707f61c13c4efeb780f1ae7ed3bb6915a4a4e666ace825bf64bdd0bc7246869cb1d1c76f16d377b9d543c085b1b4062e5602fe2bc919c6f54805a8ad1cd9fbb97e03e68c57f56eac96810a60f6d5529dcb143c39920bcd46391d489adf3bbddcea4d3fdbe9e53267ae828 )
После обработки такой транзакции в таблице cf_funding для указанного ID указывается del_block_id. И отправителю возвращаются его монеты.
До завершения сбора средств Вы можете удалить свой проект. В этом случае все средства будут возращены бэкерам.
Поле | Описание |
---|---|
TYPE | Тип транзакции |
TIME | Время транзакции |
USER_ID | ID пользователя, который создал транзакцию |
PROJECT_ID | ID проекта |
SIGN | От 1 до 3-х подписей (TYPE,TIME,USER_ID,PROJECT_ID) от пользователя USER_ID |
( [type] => 46 [time] => 1408473247 [user_id] => 1 [project_id] => 3 [sign] => 82010034492a93753feb86a4ef56ec465f67eca9ad6969867e9f59ccbf93e5e729ea645de0848f5501366f4bc0db4be41ceef8fe0650962323b7ba41f328af4d2f3228a7a0ce0865b05d1e7e27c075f779db6af864b914281d97d5c4445ec94fe15667197496d7363a2036ed5d829ceeb73056e31888abc8988164a9ec30bd9f133776288bce53200654d09cd5630e57fb38ff8dfc7f820e37bf7985f20c29030f84abb6f03ebfc170fdee7ebec99c777a7bdd4ac01e2ea1a50cb88f7ae9f127cabe33fd3f4a25effd321f0fc5e3c196db64d51d4adfc52e0d878a5fb1f5863facabd34d33a41cfa62d196e67f5c209b48310e78524e3a3a2be1564a5eb7d5af3f33e4 )
После обработки такой транзакции в таблице cf_projects для данного проекта указывается del_block_id. И всем бэкерам возвращаются их монеты.
Категорию проекта можно в любой момент изменить.
Поле | Описание |
---|---|
TYPE | Тип транзакции |
TIME | Время транзакции |
USER_ID | ID пользователя, который создал транзакцию |
PROJECT_ID | ID проекта |
CATEGORY_ID | ID категории |
SIGN | От 1 до 3-х подписей (TYPE,TIME,USER_ID,PROJECT_ID,CATEGORY_ID) от пользователя USER_ID |
( [type] => 50 [time] => 1408475554 [user_id] => 1 [project_id] => 4 [category_id] => 13 [sign] => 8201004155bf4df043e9c7d450d66ff24a6c139f0943fc1572b5ecb95cbaa0d390f374f1a3f968e779b7dc067aff5a7dfcd353d53aa533c0c4f85c429954176bcb2136e63fa985008b889c5aa69c2eb2c65d0bf08bcf61cc66da18d70df5e07d9fcb484207ea98fb60b2fca6e5657b7d0d3c55f13e6e3a12840eb7162807fc54be5af15b32403a40d33b11e8130cf152a204c5bc235cd5e1b7665083a26425807512b09a6adf894d2e2b9c74a88112bf4962e1592cdbdd2fbdf7095f1c70b599f2b8b3afcc9a47935f49696316bb76ede1b999a7b62fc6de138e1be9948f222df8ab57457325a3197a03ca1c954a75cc8ba830bc9adbf34a25c77ddfe97ba8ec76fba1 )
После обработки такой транзакции в таблице cf_projects для данного проекта меняется category_id.
Комментарии могут писать только те, кто профинансировал проект, либо автор проекта. Удалять комментарии нельзя.
Поле | Описание |
---|---|
TYPE | Тип транзакции |
TIME | Время транзакции |
USER_ID | ID пользователя, который создал транзакцию |
PROJECT_ID | ID проекта |
LANG_ID | ID языка |
COMMENT | Комментарий |
SIGN | От 1 до 3-х подписей (TYPE,TIME,USER_ID,PROJECT_ID,LANG_ID,COMMENT) от пользователя USER_ID |
( [type] => 47 [time] => 1408475862 [user_id] => 1 [project_id] => 4 [lang_id] => 42 [comment] => Test [sign] => 820100beb4a532f32b465b86d4ad54245e121d083a031e75da6c270af906ea55914bbc51ec6dcbfde872600b3d154d7f72dc70706a76ef153ec693dc2baf8f5938e393dc91fdc376cf5beada0bcf51aa4d409cf802b01738aae8c709b7734d68a84addd8bebd9079a4843a746fa209e350b656dee5038540099e809de6850907103d41561ef67757a02f68f8f19822ed7e33a4698cc45d17c2de02ff8530dba4a9a9b3866a518e3aeb31488321439d31a24e8d5fbd711a2f120d6e714e061427916c9f22a7553395772aec400c8305d156b30bdd7ed568d1826f005b56a2ad2ac6aed607a1c204e8c39b07513435cff0b9c56746d39017f5dd4fe20b7ac2c83cb39959 )
После обработки такой транзакции в таблице cf_comments добавляется строка с новым комментарием к проекту.
Вот и все транзакции, которые отвечают за функционирование краудфандинга в Dcoin.
Дизайнер из меня никудышный, по-этому, чтобы не пугать людей своими художествами, я перерисовал дизайн страниц с проектами у кикстертера.
Автор проекта не может забрать монеты, если проект еще не завершился. Это нужно для борьбы с мошенничеством. Допустим, набралось 80% от суммы, и вдруг кто-то из бекеров выясняет, что это, например, перепродажа какого-то товара с ebay в тридорого. Он пишет об этом в комментариях, и этот комментарий видят все старые и новые бэкеры. Часть старых бекеров отменит свой платеж, проект не наберет нужной суммы, и все монеты будут возвращены.
Имея 3 ключа [9], привязанных к одному user_id, можно безопасно и анонимно пользоваться Dcoin. Вы просто вбиваете в браузере адрес любого пула, вводите 1-й ключ и попадаете в свой кабинет. В базе данных пула не останется никаких следов Вашего пребывания. В таком режиме можно переводить и получать монеты, создавать и финансировать краудфандинг-проекты. Если админ пула встроит скрипт, который будет отсылать на его сервер Ваш ключ, то он с ним ничего не сможет сделать, т.к. для любой транзакции от Вашего имени будет требоваться еще 2 подписи.
Любой желающий может распарсить блокчейн и получить список всех краудфандинг-проектов, оформив это в виде сайта, например, вот такого — dcrowd.org [10].
1. Возьмите ключ тут [11], тут [12] или у какого-нибудь майнера.
2. Зайдите в пул [13] или поставьте исходники [14], укажите взятый в п.1 ключ
3. Нажмите «Запустить свой краудфандинг-проект»
(Если хотите сохранить аккаунт за собой, то не забудьте сменить ключ)
Автор: c-darwin
Источник [15]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/open-source/68407
Ссылки в тексте:
[1] базы данных: http://ru.dcoinwiki.com/%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86
[2] блоков: http://ru.dcoinwiki.com/%D0%91%D0%BB%D0%BE%D0%BA
[3] 48 типов различных транзакций: http://ru.dcoinwiki.com/Транзакции
[4] обещанной суммы: http://ru.dcoinwiki.com/Обещанная сумма
[5] Уровень: http://ru.dcoinwiki.com/Майнер,_генерирующий_блок
[6] node-ключа: http://ru.dcoinwiki.com/Node-ключ
[7] wiki: http://ru.dcoinwiki.com/
[8] хостинг: https://www.reg.ru/?rlink=reflink-717
[9] 3 ключа: http://dcoinwiki.com/Тройная_подпись
[10] dcrowd.org: http://dcrowd.org
[11] тут: http://pool.dcrowd.org/tools/available_keys.php
[12] тут: http://dcoinforum.org/index.php?topic=26.0
[13] пул: http://dcoinwiki.com/Пул
[14] поставьте исходники: http://dcoinwiki.com/Установка
[15] Источник: http://habrahabr.ru/post/234519/
Нажмите здесь для печати.