Записываемые теги NFC, такие как Mifare 4k интересны тем, что они дешевы, примерно толщина кредитной карты и предлагают незапитанный хранения данных для чтения / записи. Это делает их идеальными для создания супер дешевый Bitcoin "банка для чаевых" что обеспечивает хорошую приватность для tipee и может быть интегрирована в постер или напитков коврик, только с какой-то липкой лентой. Пользователь должен наклонить просто прикасаясь свой телефон к метке NFC ... и это все. Никакое дальнейшее взаимодействие не требуется. Было бы, как легко отправлять деньги таким образом, как положить монеты в ящик для пожертвований сегодня.
Проблема
метки NFC не имеет батареи и не CPU. Мы можем встроить Bitcoin URI в теге таким образом, что это будет открыть свой Android приложение бумажника очень легко, ничего особенного не требуется для этого (есть теги писатель приложений в магазине Play). Проблема заключается в том, что вы можете только внедрить один открытый ключ / адрес в теге, который означает, что вы потеряете много личной жизни - каждый может увидеть, сколько вы получили, и когда, и они могут видеть, когда вы перемещаете средства и т.д. , Все те же проблемы, что ввод адреса в вашем форуме сиг имеет, так что это делает.
Я думаю, что у нас есть консенсус, что нам нужно, чтобы переместить Bitcoin мир от просто бросали статические адреса глобально сцепляемые с идентичностью пользователей. Это неизбежно может вызвать удивление и неинтуитивные утечки конфиденциальности. Я выдвигал идею HTTP на основе протокола оплаты в течение длительного времени, это очевидная идея и Питерс его обсуждение на конференции отличный следующий шаг.
К сожалению, потому что метки NFC просто немое хранение, вы не можете их принять участие в протоколе оплаты. Оказывается, вы можете выбрать между приватным и дешево - выбрать один.
Решение
К счастью, мы можем улучшить положение вещей следующим образом. Записать в тег NFC пакет заголовка, содержащий открытый ключ и смещение счетчика, которое инициализируется случайным числом. Заголовок может также содержать и другие данные, которые вы могли бы найти в платежном URI, как сообщение и рекомендованная сумма. Теперь заполнить остальную часть хранения тегов со случайными числами тоже.
Когда пользователь просыпается своим телефоном и касается его к тегу, он считывает пакет заголовка и вставляет новый секретный ключ в бумажник. Это поделки сделки, которая проводит предложенную сумму Bitcoin для вновь созданного секретного ключа и тайников его на потом. Секретный ключ шифруется под публичным ключом, найденным в заголовке теги и записываются в части тега, указанного смещения счетчика. Счетчик смещения увеличивается, то сама по себе и, если необходимо, обернутые вокруг к нулю.
Приложение помещает значок уведомления в строке уведомлений пользователей, делает звук, вибрирует и т.д., но не требует какого-либо подтверждения. Вместо того, чтобы сделка сохраняться в течение 10 минут или около того, и если пользователь явно не отменить его, транслирует его в то время. Пользователь может также настроить значения, посылаемый на новый секретный ключ, если они не удовлетворены, предлагаемых по умолчанию количества. Даже после того, как сделка вещание, она по-прежнему не может быть отозвана до следующего этапа, поэтому это безопасно просто акт трогательной оплаты триггера - пользователь может отменить неожиданные платежи легко.
Каждый так часто собиратель наконечник приходит прошлое посвященного приложение работает на своем телефоне и касается тега. Это загружает все закрытые ключи, которые были написаны в теге, расшифровывает их и вставляет их в новый кошелек, который затем синхронизирован с цепью. Приложение затем переходит к тратить каждое пожертвование вновь сгенерированного ключ (за пожертвование), таким образом предотвращая пользователь от его рекультивации и блокировок в оплате.
Эта схема имеет следующие полезные функции:
- Пользователи, которые трогают тег не может узнать, сколько пожертвования были /, когда они были сделаны / насколько они были, потому что смещение счетчика инициализировался случайное значение и оборачивается вокруг, так что значение не имеет смысла.
- Они не могут читать данные, чтобы выяснить, сколько ключей есть, потому что зашифрованные секретные ключи просто случайные числа тоже, так что вы не можете сказать разницу.
- Поскольку сделка фактически не совершена до некоторого времени после прикосновения, акт чаевых может быть только переключение на экране телефонов с аппаратной кнопкой, а затем коснувшись его к тегу. Это 3 вторая работа. Если пользователь жертвует случайно они могут просто отменить действие.
- Только дорогостоящая часть это смартфоны, которые многие люди уже. Поскольку метки NFC так дешево и программное обеспечение будет бесплатно, абсолютно любой человек может использовать эту схему без необходимости каких-либо технических знаний. Они просто должны "пустой сосуд" каждый так часто.
Примеры применения
- Sticky-лента несколько тегов к задней части плаката проекта на ярмарке, а затем распечатать предложила наконечник количество над ними, так что вы пожертвовать прикосновение телефона к части плаката, который имеет сумму, которую вы хотите наклонить.
- Несмотря на то, делая живое шоу / речь / что выдает смарт-карта, которая содержит тег NFC. Толпа может передать его вокруг и положить деньги в то время как вы выполняете. Вы собираете его и вылейте его в конце.
- В ресторане или баре официантка может поставить свою личную переломный карту на столе, когда они впервые приходят снова и собрать его в конце. Это, вероятно, проще, чем пытаться интегрировать опрокидывание непосредственно с оплатой самой еды.
Другие примечания
Вы можете спросить, почему я сосредотачиваюсь на советы и пожертвования здесь. Причина заключается в отношении отзыва - чтобы получить опыт в одно касание вы должны позволить пользователю отменить его в течение короткого времени после этого. Кроме того, ничто не мешает кому-то из стирания содержимого карты или иной способом завинчивания с ним, так что там должно быть немного ранее существовавшего доверия для его работы.
Там еще одна атака, которая может вызвать проблемы - злой человек может поменять на законный тег для своих, или просто переписать существующий тег. Поскольку теги не имеют каких-либо проверяемого тождества вы могли бы в конечном итоге жертвуя к неправильному человеку по ошибке. Если люди хотят защиты от этого, легкий вид установки центра сертификации может быть сделано. Заголовок будет включать в себя подпись от доверенного органа по открытому ключу / предложенное количество и сообщение. Орган должен подписать только, если сообщение не было запутанным и соответствия личности tipee они проверяемые. Это, вероятно, не требуется для v1.