На прошлой неделе я настраивал, чтобы написать свой мальчишник диссертацию на Bitcoin.
Моя тема про "Программируемые деньги" так сказать.
Вопрос, который я хочу, чтобы отвечать на мой тезис, как спроектировать и построить безопасную и масштабируемую обмен / платежный процессор / Bitcoin штуковина.
Теперь я хотел бы обсудить с вами несколько подходов о том, как разработать такую программу.
Я хотел бы он услышать ваши ответы. Если есть что-то новое с подходами вы скажите мне, я буду добавлять их в этот пост, чтобы собрать их всех.
Таким образом, после прочтения много, наблюдая некоторые переговоры по этому поводу у меня появилась идея, что есть в основном один большой подход к этому, люди называют его:
(Просто чтобы получить это прямо, я скажу вы знаете, как я думаю, что это работает, так что вы, ребята, можете исправить меня)
Горячий бумажник, холодное хранение:
Процессор обмена / оплата имеет горячий бумажник, который подключен к серверу обработки главной оплаты и операций.
Все обновления от blockchain (имеется в виду сделок, блоки) приходят через этот кошелек.
Депозит: Пользователь посылает запрос на сервер. Сервер создает новый секретный ключ, открытый ключ и адрес. Сервер отправляет пользователю адрес.
Сервер начинает слушать этот адрес, а это означает: проверки сервера после каждого поколения блоков, если есть какие-либо новые входы по этому адресу.
Пользователь отправляет его биткоен на этот адрес. Сервер видит это и подтверждает это после 6 подтверждений на blockchain.
Тогда целое число / поплавок /, который установлен на базе обмена на эту сумму Bitcoin.
Вывод: Пользователь посылает запрос на сервер, содержащий сумму вывода и адрес. Сервер проверяет несколько адресов на их балансе и строит с ними
исходящий вывод.
Горячий бумажник: Пользователи взаимодействуют только с бумажником непрямого. Сервер бэкенда взаимодействует регулярно направляет с горячим кошельком: создание новых адресов, получением и
отправка биткойны. Горячий бумажник содержит только минимальное количество Bitcoins, потому что его не считается сохранить, находясь на сервере, подключенном к Интернету.
Хранение в холодильнике: После того, как горячий бумажник достигает критическое количество Bitcoins они получают автоматически отправлять на адрес холодного хранения.
Адресное холодное хранение создаются на не подключенные к Интернету сервера / компьютер. Там нет реального бумажника программного обеспечения работает.
Холодное хранение можно назвать только холодное хранение до тех пор, как его закрытый ключ не был выставлен в Интернете.
Так что все в порядке ... Это одна часть, где я изо всех сил, чтобы понять:
Давайте предположим, что горячий бумажник кончаются деньги. Что нужно сделать для получения биткойно из холодного хранения?
Я основывая свою догадку на самом безопасную процедуру, я бы следовать:
Вы должны знать, где ваш Bitcoins пришел для того, чтобы отправить их. Это связано с выходным заголовка ввода в протоколе Bitcoin.
Так из-за этого вам потребуется последняя blockchain. Итак, мы берем флешку, скопируйте последнюю blockchain на него и перейти на наш internetless компьютер / сервер и интегрировать
blockchain. Тогда нужен инструмент, который строит сделку. Мы подписываем сделки с нашим закрытым ключом и копировать их на USB-флешку.
Затем мы вернулись в наш интернет компьютер и отправить сделки вне.
Таким образом, я вижу некоторые проблемы в этом подходе:
- Это очень дорогостоящий подход. Вам нужен человек, который 24/7 доступны делать это и это основано на том, сколько вы доверяете этому человеку
- Его руководство. Программисты не нравится
- Он не работает во многих случаях: см mtgox ...
- Такое ощущение, что какое-то работа вокруг
- Это Безразлично»сохранить ваше от физического нападения. Я имею в виду людей, грабили банки за меньшие деньги. Почему бы им не просто ограбить Bitcoin кошелек копирования шестнадцатеричной строки
- Вам нужно не только внедрить одну систему бумажника, но два => сложно
Так что мои вопросы по горячему бумажнику холодного хранения являются:
- Является ли это, по вашему мнению, наиболее применяемый подход в этой отрасли?
- Является ли это рекомендуемый подход?
Так опять же, это только то, что я слышал, наиболее часто обсуждаемый подход, но я хотел бы услышать о других подходах.
Я слышал много о мульти-сиг адрес, но они еще должны быть реализованы в протоколе.
Так что, если вы знаете какие-либо другие подходы, то пожалуйста, дайте мне знать, или отправить мне ссылку! Это помогло бы мне большие времена.
Один подход, который я думал о моей собственной личности это:
Бездействие горячий бумажник:
Существует только горячий бумажник, который напрямую подключен к Интернету, и внутренний сервер.
Пользователи вносить и снимать с него деньги. При регистрации пользователь должен указать адрес Bitcoin, что принадлежит им.
Пока пользователи делают торгует их Bitcoins хранятся внутри этого кошелька. После того как пользователь не торгует в течение периода времени, скажем, 1 день,
система замечает это и отправляет пользователь биткойны назад по указанному адресу от процесса подписания.
Плюсы:
- Обмен распространяется риск в не держит что много биткойны
- Неактивные пользователи, как хорошо, как люди, которые хотели бы использовать их обмен как сохранить хранения вышвырнуты
- На actuall нарушения безопасности повреждение, вероятно, значительно меньше, чем при холодном хранении горячего бумажника
- реализация Easyer
Минусы:
- Пользователи раздражаться
- Кошелек подключен к интернету держа все монеты в эксплуатации, то есть все, что компания "имеет" ==> очень плохо, единая точка отказа
- Во времена большого объема: Горячий бумажник держит миллионы долларов ==> очень плохо
Переходя к масштабируемости:
bitcoind бумажник:
Я слышал, что bitcoind кошелек в основном предназначен для людей, использующих Bitcoin и нормально вручную. Значение для отправки и получения несколько монет.
Он имеет JSON-RPC API, я использовал это время от времени, но из моего понимания, чтение документации на GitHub, является то, что он экономит
транзакции внутри Berkeley DB. Из моего понимания BDB не является реляционной базой данных. Я также читал, что он поддерживает Парадигму ACID.
Так ли это? И если да, то поддерживают bitcoind клиент Кислоту Парадигма?
Другой вопрос, который я хотел бы ответить, это: Является ли клиент bitcoind масштабируемым? Я имею в виду, это быстро? Сколько запросов он может обрабатывать в секунду?
"промышленность Bitcoin кошелек:"
Какой бумажник программное обеспечение промышленности с использованием. В основном крупные игроки, как bitstamp, bitfinex, bitpay, coinbase? Все ли с помощью своего программного обеспечения на заказ бумажника или они есть в
уже используемое решение этой проблемы?
Я думаю, что это было бы его на некоторое время. Я, вероятно, будет просить вас, ребята, еще много вопросов, и я хотел бы услышать ваши ответы.
Кроме того, если некоторые вопросы уже ответили, то не стесняйтесь отправить мне ссылку