Как проверить, какой клиент оплатил?

Один вопрос, на который я не могу правильно ответить, когда его спрашивают:

Как именно блокчейн может проверить личность пользователя без централизованной доверенной стороны, такой как VeriSign?

Я знаю, что это делается децентрализованно, и алгоритм ECDSA должен сработать, но другим приложениям по-прежнему нужна централизованная доверенная сторона, чтобы проверить, действительно ли пользователь является тем, кем он себя называет, даже если они также используют ECDSA. .

Но как именно я могу гарантировать, что никто не сможет притвориться кем-то другим и вместо этого потратить свои биткойны?

Да, я знаю основы работы криптографии с открытым ключом, но информационная безопасность со мной не сильна.


Изменить: позвольте мне изучить вопрос подробнее.

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

Предположим, что Боб и Анна — мои клиенты. Боб заказывает макиато, Анна заказывает капучино. Оба кофе имеют одинаковую цену. Как я могу узнать, какой платеж пришел от каждого из них?

Ответы (5)

Вас действительно волнует, какой клиент заплатил, или вас волнует, какой счет был оплачен?

Скажем, у вас есть клиенты Анна и Боб, которые оба что-то заказывают. Боб замечает, что у него закончились деньги, поэтому Анна говорит, что заплатит за оба. Если вы действительно хотите, чтобы отправитель раскрыл свою личность, ваша система уже выйдет из строя, поскольку Боб никогда ничего не платит.

Почти во всех случаях вас волнует только то, какой счет оплачивается, и вам не нужны данные плательщика (что в некоторых случаях может быть нарушением конфиденциальности).

Обычный способ сделать это на практике — создать новый платежный адрес для каждого платежа, который вы хотите получить. Вы отслеживаете, какой счет был оплачен, отслеживая, по каким адресам вы получали деньги. Создание новых адресов очень дешево, и они достаточно длинные, поэтому крайне маловероятно, что один и тот же адрес когда-либо будет создан дважды.

Было бы хорошо также прояснить, насколько обширно адресное пространство биткойнов: существует так много возможных адресов, что вы можете легко создавать новый адрес для каждого нового счета, не беспокоясь о том, что у вас закончатся новые адреса.
Например, это можно сделать со ссылкой на «Уникален ли каждый биткойн-адрес?» .
Тебя должно волновать, кто заплатил за это. Как бывший владелец сайта электронной коммерции, мы всегда были обеспокоены тем, что кто-то может мошенническим образом оплачивать товары чужими деньгами, поскольку это приводило к потере денег для нас (пополнение запасов, стоимость доставки, рабочее время, потраченное на работу с банками и т. д.).
@corsiKa Конечно, для чего-то подобного. В условиях розничной торговли, таких как кофейня, упомянутая здесь, это на самом деле не имеет большого значения, если только вы не хотите иметь возможность назвать имя клиента, когда его заказ будет готов.
@corsiKa: Хорошая (или плохая) особенность Биткойна заключается в том, что если кто-то мошенническим путем заплатит вам за товары, используя чужие деньги, вы все равно получите деньги: у законного владельца нет технического способа вернуть у вас средства. . Как и в случае с наличными, здесь нет возвратных платежей. Так что в этом смысле вам на самом деле все равно, кто заплатил.
@corsiKa: в случае Биткойна, если кто-то может потратить ваши деньги, это означает, что вы небрежно обращались со своим закрытым ключом. Без правительства, обеспечивающего соблюдение закона, и математики, делающей правоохранительные органы бессмысленными, вы сами виноваты в том, что не позаботились лучше о своем секретном ключе.

Личность плательщика часто не имеет значения в биткойн-платежах. Важной проверкой является то, что платеж был авторизован владельцем. В Биткойне тот, кто контролирует закрытый ключ, владеет средствами, и поэтому достаточно, чтобы транзакция была подписана правильным закрытым ключом (который дан для действительной транзакции).

Для владельца магазина важно знать, что ему заплатили. Поскольку биткойн-платежи необратимы, неважно, назовет ли Боб свое имя, точно так же бариста не захочет узнать имя Боба, когда Боб зайдет в кафе и заплатит за Макиато наличными.

Чтобы различать платежи, вы указываете новый адрес получения для каждого счета . Таким образом, когда адрес получает деньги, вы знаете, какой счет был оплачен. К счастью, адресное пространство Биткойн достаточно велико, чтобы каждый мог создать столько адресов, сколько ему нужно .

Разные заказы имеют разные платежные адреса в биткойнах.

Заказ оплачивается, когда указанный адрес получает запрошенное количество биткойнов.

Единственный практический способ проверить личность пользователя — заставить пользователя что-то подписать своим закрытым ключом. Единственная идентификационная информация, которую вы получаете в этот момент, — это то, что пользователь имеет доступ к закрытому ключу. В биткойн-блокчейне владелец закрытого ключа — единственный, кто может перемещать биткойны, заблокированные этим ключом, потому что для этого необходима подпись. По сути, если вы попытаетесь притвориться кем-то другим, у вас ничего не получится, поскольку вы не сможете произвести подпись.

простой ответ: дать каждому клиенту свой другой адрес

никогда не используйте адреса повторно