В основном за счет последовательной линии взламывать Я пытаю (см нити в альтернативных клиентах) Я думал о том, если это практично иметь
специализированные устройства Bitcoin.
Вот что у меня до сих пор. Ваша обратная связь очень приветствуется.
Что такое специализированное устройство Bitcoin?
Это небольшое устройство с:
1) Небольшие КИ. (Несколько строк текста, не сенсорный)
2) клавиатура.
3) Он имеет достаточную вычислительную мощность и память, чтобы подписывать сделки, но не достаточно, чтобы поддерживать blockchain.
нет 4) Нет выделенного подключения к сети (WiFi нет, нет сотового телефона подключение)
5) ввод-вывод через последовательный порт - Micro USB и инфракрасный (IRDA).
6) Низкая мощность - вы можете запустить его кнопку литиевые батареи для давнего.
Подумайте: прославил калькулятор или электронный словарь Casio.
Подумайте: дешево массовое производство.
То, что вы можете использовать его для?
1) Вы можете использовать его, чтобы платить за вещи в магазинах с Bitcoin.
2) Вы можете использовать его для отправки Bitcoin непосредственно от одного устройства к другому.
3) Вы синхронизировать его (как Айпод) с главным компьютером, чтобы увидеть транзакции в деталях и перезарядить его.
Какие проблемы?
Есть две основные проблемные области:
1) Да, покажите мне тот, который работает, и я поверю. Это фантомное, если я не могу держать его в руке.
2) Если он не имеет свое собственное подключение к сети, как он знает, что его баланс? Что остановить Mallory завинчивания вокруг с ним и отправить его фиктивные сделки?
(Mallory является родовым 'Bad Guy').
Подробнее о работе в магазине
Вот как я думаю, что это будет работать в точках продаж:
1) До вашего магазинам синхронизации устройства дома с вашего домашнего компьютера. PC создает смотреть бумажник для закрытого ключа, который создается на устройстве (и никогда не покидает его). Из-плеер и т.д. люди привыкли к синхронизации своих устройств, подключив их к ПК. Вы доверяете свой домашний компьютер, чтобы дать вам реальные blockchain сделки.
2) Абонентская плата "устройство, отправив его некоторый BTC с помощью настольного клиента. Смотреть бумажник видит сделку и говорит устройству, что неизрасходованные выходы, которые она имеет потратить. Транзакции, что рабочий стол Биткойн клиента использует для зарядки устройства имеет множество выходов малы транзакций (скажем, десятая часть BTC каждый).
Например, если вы загружали его с 10 BTC, вы бы иметь в своем распоряжении 100 транзакций выводит каждый из BTC значения 0,1.
Устройство хранит список своих неизрасходованных выходов и, следовательно, знает свой баланс. Поскольку это синхронизация с ПК, которому вы доверяете устройство будет рад провести эти неизрасходованные выходы. Он считает, что они реальны.
3) В магазине, будет обмен данными следующим образом. IRDA находится на 115,2 кбит так что вы должны быть в состоянии сделать это достаточно быстро для использования в режиме реального времени.
править: упрощенный
3,1) Магазин -> устройство. Магазин идентифицирует себя как, скажем, «Walmart». Просит оплату, скажем, 3.55 BTC, используя Bitcoin URI.
3.2) Устройство -> пользователь. Запрашивает пользователь с суммой платежа. Пользователь нажимает «Подтвердить» или «Отмена».
3.3) Устройство -> магазин. Устройство создает транзакцию для 3.55 BTC, используя в общей сложности 3,6 BTC выходов сделки и рассылает себя 0,05 BTC изменения. признаки устройства ТХ и отправляет его обратно в магазин
3,4) Магазин -> Bitcoin сети. Передает вынули в Bitcoin сети.
3,5) Магазин -> устройство. Магазин подтверждает, что ТХ был передан в сеть Bitcoin.
Устройство будет затем пройти через его неизрасходованных выходы и маркировать выключить тратит. Выход изменения транзакции не считает, что это может потратить еще, как это зависит от того, действительно ли передается Walmart ТМ. Он помечает его внутренне как:
Walmart говорит: Направлено вы 0,05 BTC
Магазин также не доверяет выходам транзакций, используемые в ОМ на стадии (3.3). Это будет делать сеть Webservice поиск с хорошо подключенным узлом, чтобы проверить, что эти выходы были действительно неизрасходованными. Было бы знать TXID и номер выхода, так что это должно быть относительно быстро. Это ограничивает способность Мэллорите выполнять двойные расходы, поскольку он имеет очень короткое окно атаки.
Резюме магазина сделки.
Устройство изначально было 100 неизрасходованные выходов транзакций по стоимости 0,1 BTC.
Теперь у него есть:
64 неизрасходованные выходы значения 0,1 BTC
36, проведенные выходные значения 0,1 BTC
выход 1 сделка значение 0,05 BTC, который отмечен как "Walmart говорит, что послал его к вам",
То, что происходит в соседнем магазине
В соседнем магазине прибор не будет пытаться провести "Walmart говорит" Выход транзакции, только его неизрасходованные выходы.
Когда пользователь получает домой он / синхронизирует устройство и и смотреть бумажник сверить, чтобы:
4.1) Подтверждение ТХОВ расходуются и изменение было получено (Это должно быть как магазин хочет свои деньги)
4,2) Возможно также хочет, чтобы зарядить устройство и, следовательно, появятся новые выходы доступны потратить.
Отправка BTC от одного устройства к другому
Чтобы отправить BTC от одного устройства к другому обмен будет похож в магазине. Скажем, Боб посылает Алисе 10 BTC. Устройство Алисы сохраняет транзакцию, но помечает его внутренне как:
"Боб говорит: Отправил вам 10 BTC"
Опять же устройство Алиса не будет пытаться не тратить на это BTC до следующей синхронизации.
Основной принцип состоит в следующем:
Вы не можете потратить обещание
Существует еще возможность Мэллори здесь правда, как он мог взломать его устройство и держать (пытается) провести тот же БТД. Когда Алиса синхронизирует она увидит, что ТХ Мэллори был дважды израсходован. Я ожидаю, что она будет сразу получить на Facebook и начать пылающий его. Устройство и рабочий стол в сочетании Алис сказать:
"Мэллори сказал, что он послал вам 10 BTC в 10:35 утра, но он лежал кусок с ** т и изменял вас"
Возможно, я бы не использовать эти точные слова в файле интернационализация 🙂
Как бы UI представить информацию
В то время как широкая публика не очень хорошо с техническими идеями, каждый знает разницу между этими двумя утверждениями:
"Шарлотта думает, что вы полностью горячие и хочет, чтобы вы, чтобы взять ее на выпускной в субботу"
а также
Джон говорит: "Шарлотта думает, что вы полностью горячие и хочет, чтобы вы, чтобы взять ее на выпускной в субботу"
Для пользовательского интерфейса на, скажем, 2 линии LCD вы бы что-то вроде:
LCD Верхний ряд: Баланс 12,4 BTC
LCD Второй ряд: Боб говорит: Отправил вам 10 BTC
Свитки: Вы послали Walmart 3,55 BTC
Свитки: Walmart говорит: Направлено вы 0,05 BTC
Свитки: Баланс с обещаниями: 22,45 BTC
Это :
Практическая?
Выполнимо?
Достаточно просто для широкой публики?
Может Mallory кирпича мое устройство или испортить мне о?