Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Почитай интервью участников Automated Trading Championship
Yury Reshetov
13449
Yury Reshetov 2013.11.04 16:51 

Реализация платежной системы на языке Java

Color coins - принципы системы

(в сравнении с битком)



Существует легенда, согласно которой, когда Сатоши Накамото сгенерировал первый блок для биткоина, то он послал на три буквы ФРС. Однако, рановато было. Почему?

Разберем по порядку:

    1. Proof of work – функция достаточно полезная для любой валюты, которая позволяет платёжное средство заработать, т.е. произвести некий товар и обменять его на деньги. Не суть важно, какой товар. В Color Coins заработать валюту можно, выиграв её в Black Jack. Может быть кто-то возразит, что игра и работа – понятия не совместимые и майнинг биткоинов выполняет «полезные» функции, поддерживая блокчейн. Однако стоит напомнить, что герерация блоков для биткоина является энергозатратной. И если сравнить все плюсы и минусы, то минусов биткоин майнинга окажется больше, т.к. не только тратится электроэнергия (иногда и ворованная), но и сам майнинг способствует доходам производителей совершенно бесполезного для дома и семьи железа (асики имеются в виду), что создаёт нездоровую инфраструктуру вокруг всего этого хозяйства. Игра в Блек Джек менее затратна для пользователей и развивает мышление.
    2. Децентрализованность. Является ли данная функция обязательной для независимости валюты? Скорее всего нет. В Color Coins сервер централизован. Теоретически его базу данных можно засунуть в какую нибудь распределённую noSQL и заставить клиентские приложения выполнять репликации, открыв доступ на чтение базы всем желающим. Ведь общественный скептицизм относительно работоспособности системы позволяет повысить доверие к этой системе. Людям уже давно надоели всякие коммерческие тайны, распространенные в финансовых системах и позволяющие финансистам безнаказанно мошенничать чужими денежными средствами. В Color Coins в данный момент все транзакции складываются в отдельную папку, которую, как минимум, можно сделать общедоступной, открыв к ней доступ, например, по FTP протоколу в режиме чтения. В будущем конечно же предполагается все транзакции разместить в распределённой базе noSQL также с открытым доступам для чтения. Т.е. не столь важна децентрализация, сколь важно удовлетворить общественный скептицизм со стороны пользователей системы. Ведь пользователям системы необходимо убедиться, что их деньги не идут куда-то налево или что эмиссия не вышла за пределы лимита и т.д. и т.п.
    3. Криптография. Этот пункт безусловно важен для любой электронной валюты. Ведь криптография основана на презумпции виновности, т.е. всё, что можно плохо защищено, рано или поздно украдут (исключение - Неуловимый Джо). Бизнес, построенный на доверии – лохотрон. Бизнес, построенный на гарантиях – наиболее надёжен. Недостатком современных экономических отношений является неравенство между финансистами и пользователями финансовых систем. По умолчанию предполагается заведомая «честность» со стороны финансистов, при заведомой «нечестности» со стороны остальной части населения. Ведь, если вы приходите в банк, чтобы получить  кредит, то по отношению к вам предполагается презумпция виновности, т.е. банкиры предпримут все меры, чтобы максимально гарантировать возврат этого кредита. Если вы кладёте свои деньги в банк, то по отношению к банкирам предполагается презумпция невиновности. Криптография устраняет это неравенство, по умолчанию предполагая презумпцию виновности по отношению ко всем заинтересованным лицам. В Color Coins также, как и биткоине, используется криптография: каждый кошелек имеет приватный и публичный ключи, генерируемые на стороне клиента (владельца кошелька). Публичный ключ позволяет серверу с помощью алгоритма идентификации без особых затруднений удостовериться, что клиент желающий управлять денежными средствами в бумажнике, является владельцем приватного ключа от кошелька, без передачи приватного ключа за пределы клиента.
    4. Денежные транзакции. Также безусловно важный пункт для любой валюты. Ведь с помощью транзакций можно менять права собственности на владение валютой по желанию её прежних владельцев, а следовательно и использовать её в качестве платежного или благотворительного средства. Для того, чтобы избавить от нежелательного для владельцев валюты изменения прав собственности и используется криптография. В Color Coins применяются две разновидности транзакций: разъединить кошелёк (split), когда создаётся ещё один кошелек и на него переправляются денежные средства. Вновь созданный кошелёк может использоваться в качестве платежа, причём система позволяет посмотреть содержимое кошелька без знания приватного ключа от него, а только с помощью публичного. Управлять содержимым кошельков, как и биткоине (и не только в биткоине) можно только с помощью приватных ключей от них. Вторая операция – это объединение кошельков (join), т.е. все денежные средства с одного кошелька переправляются на другой кошелёк, а опустевший кошелёк удаляется (система удаляет все пустые кошельки, чтобы не засорять ими базу данных). Вполне понятно, что переправить деньги с какого либо кошелька невозможно без знания приватного ключа от него. Не менее важна и скорость выполнения транзакций. Для биткоина она как известно равна порядка 10 минут, а в некоторых случаях и больше, только потому что майнеры по своему усмотрению могут откладывать транзакции в долгий ящик, независимо от их достоверности.
    Количество валют. В биткоине задействована всего одна единственная валюта и в качестве добычи в майнинге и в качестве платёжного средства. И то и другое является слабым местом биткоина. В Color Coins при настройках по умолчанию существует три валюты: белые, красные и зелёные монеты и одна добыча: чёрные монеты. Дело в том, что чёрные монеты являются товаром, а не платёжным средством, поэтому их нельзя передавать на разъединенные кошельки.
    5. Фиксированная эмиссия денежных средств. Тоже очень важное свойство валют, защищающее их от инфляции (обесценивания денег). Именно по этой причине товар – чёрные монеты, которые можно добывать (выигрывать в Блек Джек) эмиссионно нелимитированы, а остальные монеты: белые, красные и зеленые имеют жёстко фиксированную эмиссию в количествах: 10 000 белых монет, 100 000 красных и 1 000 000 зеленых.
    6. Ликвидность. Если в системе всего одна единственная валюта, то обеспечить её ликвидностью в самой системе проблематично. В биткоине этот недостаток присутствует. По этой причине, несмотря на то, что биткоин децентрализован, но его обеспечение ликвидностью возможно только через централизованные биржи или централизованные торговые точки. От этого, все достоинства децентрализации сводятся на нет (достаточно вспомнить примеры, когда курс биткоина падал и из-за взлома хакерами биржи и из-за ареста владельца торговой точки - Silk Road, обеспечивающей ликвидность товаром). Касаемо Color Coins, то все валюты в нем ликвидны относительно друг друга. В системе есть встроенный обменный пункт валют, через который пользователи системы могут в любой момент обменять одну валюту на другую по достаточно низкому курсу (незначительной разнице между ценой продажи и покупки - спредом). Теоретически? пользователи системы могут самостоятельно попытаться создать свой «чёрный рынок» обмена валют вне системы, но практически конкурировать с внутренним обменником у них вряд ли получится (обменник решает проблемы отсутствия биржи, организация которой более затруднительна). Другое дело, что те же самые пользователи системы получают возможность для арбитражных сделок, если возникнет перекос между курсом обменника и курсами обмена на фиатные или анархические валюты вне системы. К тому же, если система моновалютна, а у нее появляются форки, то эти самые форки опять же опять никоим образом децентрализовано не в состоянии обеспечить обмен одних валют на другие. Поэтому чтобы не плодить форки, в Color Coins заведомо задействованы различные валюты.
    7. Ценообразование. Тоже очень важный пункт существования любой платёжной системы. Проще говоря, все товары и деньги должны адекватно регулироваться относительно спроса и предложения. Если регулирование неадекватно, то обязательно возникнет «чёрный рынок», который и будет проводить справедливый арбитраж в соответствии с рыночными спросом и предложением. Встроенный в систему Color Coins обменный пункт автоматически следит и меняет цены на внутренние курсы валют в соответствии со спросом и предложением. Т.е. если кто-то меняет одну валюту на другую в обменнике, то та валюта, которую пользователь отдаёт, будет дешеветь, а та валюта, которую пользователь получает – дорожать. Опять же, сторонники рыночной экономики могут заявить, что якобы ценообразование должно регулироваться самим рынком, а не какими-то алгоритмами. Могу возразить: если отдать ценообразование на откуп рынку, то рано или поздно наиболее шустрые его воротилы, сколотят себе состояние на менее шустрых и начнут с помощью этого самого состояния регулировать цены в нужные им стороны. Адекватный алгоритм встроенного в систему обменника сделан так, что не позволяет всяким воротилам конкурировать с ним (отпадает необходимость в контролирующих регуляторах типа комиссии по ценным бумагам). Более того, он делает невыгодным внешнее регулирование с помощью крупных сумм, т.е. попытаться изменить цены можно, а вот заработать на этом, т.е. вернуть свои деньги с прибылью будет весьма проблематично. Внутренний обменник создает примерное равноправие для всех пользователей системы, т.к. для него нет блатных и нищих и курсы обмена одинаковы для всех без исключения. К тому же, как я уже говорил, никто не запрещает, создавать свои «чёрные рынки» вне системы, но при этом исключен и запрет доступа к обменнику пользователей со стороны внешних «регуляторов», не суть важно каких, будь они: государством, центральным банком или же частным толстосумом.

    8. Комиссия. Всякие поборы и налоги отрицательно сказываются на денежных средствах. От того, что биткоин децентрализован, система обязательных комиссионных за транзакции сводит все «анархические» декларации на нет. В Color Coins комиссия за транзакции нулевая. Да в ней и нет никакой необходимости, т.к. во внутреннем обменном пункте есть небольшая разница между ценой продажи и ценой покупки валют – спред. Несмотря на то, что этот спред с виду ничтожен, но при активном использовании обменника, он складывается во вполне приличные суммы.

В прикрепленном архиве исходники клиента и сервера (*.java), а также скомпилированные для них бинарники (*.jar)

Файлы:
Yury Reshetov
13449
Yury Reshetov 2013.11.04 16:52  
Алгоритм автоматического обменного пункта


Как работает встроенный в Color Coins обменный пункт. Для того, чтобы было понятнее, нужно вспомнить историю. А история финансов такова, что с какого-то момента в качестве платежных средств использовались монеты из цветных металлов. Поскольку содержание тех или иных металлов в монетах являлось их самообеспечением этими металлами, то особых проблем не возникало (за исключением фальшивых монет). Но позднее появились казначейские обязательства в виде бумажных или тряпичных аналогов денег. Суть казначейского обязательства в том, что на бумаге указывается её обеспеченность цветными металлами. Тут и начались проблемы. Окончательно проблема выявилась во времена правления во Франции генерала Шарля де Голля. Проще говоря, этот генерал собрал американские баксы из всех доступных французских валютных резервов и предъявив их ФРС США, потребовал обменять на золото, которое было указано в казначейских обязательствах.

Давайте разбираться. Например, у вас есть килограмм золота. Вы выпускаете свои деньги под залог этого золота, например, одна купюра – 1 грамм, т.е. 1000 купюр. Пускаете свои деньги в оборот. В один прекрасный день к вам приходит какой-то француз, который собрал ваши деньги и требует обменять их на золото, согласно казначейским обязательствам. Вспомним что было в начале: у вас было и золото и макулатура. А что получилось в результате: у француза ваше золото, а у вас осталась только макулатура. Надеюсь, что бестолковость идеи фиксированного обеспечения макулатуры металлами или другими материальными ценностями теперь понятна?

Ещё большая бестолковость заключалась в идее полного отказа от казначейских обязательств – отмена золотого стандарта.

Теперь можно уже рассказать, как работает обменник в Color Coins. Предположим, что у вас есть килограмм золота и 1000 выпущенных вами электронных банкнот. В таком случае, мы можем утверждать, что каждая банкнота обеспечена 1 граммом золота, хотя на самом деле 1 банкнота = 1 грамм золота – это только справедливая цена в соответствии со спросом и предложением на данный момент. Но дело в том, что золото можно намайнить, а эмиссия банкнот фиксирована. Плюс ко всему ни у кого кроме вас этих банкнот пока ещё нет в наличии (нет ни спроса, ни предложения, а следовательно и ликвидности).

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

Поскольку в соответствии со спросом и предложением в данном случае этот некто предлагает вам золото и спрашивает банкноты (спрос и предложение вычисляются относительно обменного пункта, а не населения), то в соответствии со здравым смыслом золото должно подешеветь, а банкноты подорожать. Не менее здравый смысл для любого обменника, когда курс предложения (offer) выше курса спроса (bid) для населения и наоборот для обменника (девиз спекулянта: покупай дешевле, продавай дороже).

Как вычислить курс продажи или покупки золота за банкноты? По тривиальной формуле:

Price = m / (g + 2 * dg)

Где:

Price – цена грамма золота в банкнотах
m – количество банкнот у вас в наличии (общий номинал)
g – количество золота в граммах у вас в наличии
dg – количество предлагаемого вам золота. Если с отрицательным знаком, то количество спрашиваемого золота.

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

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

Давайте предположим, что некто принёс нам 10 грамм золота, чтобы обменять на наши электронные банкноты. В этом случае курс обмена будет:

Price = m / (g + 2 * dg) = 1000 / (1000 + 2 * 10) = 0.98039215686274509803921568627451

В таком случае за 10 грамм золота мы отдадим 9.8039215686274509803921568627451 банкнот
В результате, после обмена у нас останется 1010 грамм золота и 990.19607843137254901960784313726 банкнот.

Вычислим справедливую цену: 990.19607843137254901960784313726 / 1010 = 0.98039215686274509803921568627451

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

Price = m / (g + 2 * dg)  = (m - 2 * dm) / g = (m - dm) / (g + dg)

Где:

signum(dm) = -signum(dg)


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

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

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

Price = (m + 2 * dm) / g,



Вот такая, с одной стороны хитрая, а с другой примитивно-тривиальная, решающая проблемы обеспечения  ликвидности для валют с фиксированной эмиссией.
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
Комбинатор
15776
Комбинатор 2013.11.04 16:54  
Спасибо )
Yury Reshetov
13449
Yury Reshetov 2013.11.04 16:57  
TheXpert:
Спасибо )

На здоровье!

Если у кого возникнет желание посмотреть, как работает это хозяйство, то в архиве в папках: WalletsManager > dist лежит бинарник WalletsManager.jar. Двойной клик по нему при включенном Tor в большинстве операционных систем должен запустить клиентское приложение.

Tor Project: Anonymity Online
  • The Tor Project, Inc.
  • www.torproject.org
Tor prevents people from learning your location or browsing habits. Tor is for web browsers, instant messaging clients, and more. Tor is free and open source for Windows, Mac, Linux/Unix, and Android Anonymity Online Protect your privacy. Defend yourself against network surveillance and traffic analysis. What is Tor? Tor is free...
Yury Reshetov
13449
Yury Reshetov 2013.11.04 18:18  
MoneyJinn:

Посмотри на сайт Facebook. По мне так это - одна большая проблема. Но от этого он не ставновится менее популярным.

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

MoneyJinn:


Сделать продукт неглючным - это просто. Достаточно посидеть над ним несколько дней, ночей, недель...

Звиздеть - не мешки ворочать (с) Народная поговорка

MoneyJinn:


Сделать продукт популярным - это совсем иное. Это что-то эзотерическое.

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

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

Смотрим в историю и видим:


Крупп, начинал как обычный кузнец, но придумал пару фишек. 1. Бандаж из более мягкого железа, нежели остальная часть железнодорожных колесных пар (своего рода обувь для железнодорожных колес, т.к. бандажи можно снимать и менять, вместо того, чтобы менять всю колесную пару, как это делали раньше). 2. Вместо бронзовых стволов в артиллерии использовать стальные.

Т. А. Эдиссон. Множество фишек среди которых наиболее известны звукозапись и электрическая лампочка.

Г. Форд. Фишка - конвейерное производство.

Д. Рокфеллер - фишка, танкеры для транспортировки нефти.

С. Джобс. Фишка - сотовый телефон без клавиатуры, за счет чего экран увеличивается.

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

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

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

GKS
1624
GKS 2013.11.04 18:22  
Очень интересная ситуация выходит!!! Я тут пару недель назад создал ветку с новостью про БИТКОИН. Через пару минут захожу на сайт нет темы, значит как не в чём не бывало,  админы удалили без объяснение. Я такой человек, что не стал поднимать бучу, а может и надо было??, так и не стал этого делать, то еще получу вечный бан.... 
Yury Reshetov
13449
Yury Reshetov 2013.11.04 18:29  
GKS:
Очень интересная ситуация выходит!!! Я тут пару недель назад создал ветку с новостью про БИТКОИН. Через пару минут захожу на сайт нет темы, значит как не в чём не бывало,  админы удалили без объяснение. Я такой человек, что не стал поднимать бучу, а может и надо было??, так и не стал этого делать, то еще полу вечный бан.... 

Дык ведь уже давно существует ветка про биток и постоянно торчит на первой странице. См. Биткоин и все с ним связанное. Место обитания криптоманьяков и их противников

Наверно администрация решила, что плодить дублирующие ветки, не несущие никакой полезной информации не имеет смысла и удалила?

GKS
1624
GKS 2013.11.04 18:33  
Reshetov:

Дык ведь уже давно существует ветка про биток и постоянно торчит на первой странице. См. Биткоин и все с ним связанное. Место обитания криптоманьяков и их противников

Наверно администрация решила, что плодить дублирующие ветки, не несущие никакой полезной информации не имеет смысла и удалила?

Это ещё было до этого, примерно за  пару дней! Видать автор этой ветки подсмотрел и создал.
Yury Reshetov
13449
Yury Reshetov 2013.11.04 18:35  
GKS:
Это ещё было до этого, примерно за  пару дней! Видать автор этой ветки подсмотрел и создал.
Кстати, обитатели той ветки уже давно третьего битконутого ищут. А то им вдвоём там скучно, хотя мы пытаемся их как-то развеселить. А тут, как говориться, на ловца и зверь бежит. Идите к скорее к ним, пущай ребятишки обрадуются - третьим будете.
GKS
1624
GKS 2013.11.04 18:43  

Меня другое интересует.. Когда же через МТ5 можно будет официально торговать битками  по отношению к другим валютам?

А новость была, что якобы одна из бирж по биткам использует МТ4, сейчас не вспомню какая именно....

Yury Reshetov
13449
Yury Reshetov 2013.11.04 18:59  
GKS:

Меня другое интересует.. Когда же через МТ5 можно будет официально торговать битками  по отношению к другим валютам?

А новость была, что якобы одна из бирж по биткам использует МТ4, сейчас не вспомню какая именно....

Вы ошиблись топиком. Идите в эту ветку: Биткоин и все с ним связанное. Место обитания криптоманьяков и их противников, тамошние обитатели торгуют битками через биржи.

/ /12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий