"Bitcoin паспорта" связаны с Fidelity облигации, обсуждаемые в другом месте в этом форуме, но я думаю, что это немного лучше, звучащее название (если немного вводит в заблуждение).
Услуги, которые могут быть злоупотребляли (вики, форумы, веб-почта и т.д.) нужна blacklistable идентичность для каждого пользователя, так плохое поведение может быть наказано путем исключения. Если нет такой blacklistable идентичности не существует, то объяснить прекращение бессмысленно, потому что обидчик будет только немедленно зарегистрироваться снова. Поэтому Tor, как правило, имеет только для чтения вида Интернета. Mesh сети, такие как cjdns будет иметь ту же проблему. Небольшие участки, как правило, использовать IP-адрес, но это слабое; более сложные операции, такие как злоупотребление команды использование телефона проверка Google и другие методы.
Для анонимных пользователей, чтобы принять участие, необходимо наложить стоимость на установление личности. Мы можем сделать это, требуя от пользователей, чтобы представить доказательства того, что они отдали несколько монет, чтобы шахтер сборы. Доказательство является автономным и может быть проверена любым, кто имеет копию заголовков блоков. Хэш этого доказательства становится псевдонимом, он может быть проверен на Spamhaus стиль DNS черные списки, чтобы обнаружить прошлое поведение, которое было связано с этой NYM и, возможно, будут заблокированы.
Для того, чтобы создать один, вы берете X монеты и провели их Miner сборов в течение Y последовательных блоков. Выходы сделок устанавливаются таким образом OP_FALSE узлы могут быть обучены подрезать их. Каждая операция и ее Merkle ветви включены в структуру данных, называемый паспорт:
Код:
сообщение BitcoinPassport {
// Имя, которое сайты могут обратиться к пользователю, - только для удобства, это
// не проверяется в любом месте и может быть любой формы. Сайты должны дезинфицировать
// это для XSS перед визуализацией, как могут быть произвольными UTF-8 в нем данных.
требуется строка textual_name = 1;
повторные Sacrifice жертвы = 2;
// Некоторые дополнительные данные, которые могут помочь упростить Регистрация для веб-сайтов ....
Необязательная строка электронной почты = 3; // и т.д
}
Сообщение Sacrifice {
// Необработанные транзакции, включенные в блок цепи, Merkle ветви
// доказав его включение и координаты блока.
необходимые байты TX = 1;
требуемый байт merkle_branch = 2;
требуемый байт included_in_block = 3;
требуется INT inclusion_height = 4; // Некоторые реализации могут извлечь выгоду из этого.
}
// Имя, которое сайты могут обратиться к пользователю, - только для удобства, это
// не проверяется в любом месте и может быть любой формы. Сайты должны дезинфицировать
// это для XSS перед визуализацией, как могут быть произвольными UTF-8 в нем данных.
требуется строка textual_name = 1;
повторные Sacrifice жертвы = 2;
// Некоторые дополнительные данные, которые могут помочь упростить Регистрация для веб-сайтов ....
Необязательная строка электронной почты = 3; // и т.д
}
Сообщение Sacrifice {
// Необработанные транзакции, включенные в блок цепи, Merkle ветви
// доказав его включение и координаты блока.
необходимые байты TX = 1;
требуемый байт merkle_branch = 2;
требуемый байт included_in_block = 3;
требуется INT inclusion_height = 4; // Некоторые реализации могут извлечь выгоду из этого.
}
Если служба или приложение хочет проверить паспорт, он запрашивает операционную систему, чтобы открыть URL вида:
Код:
bitcoinpassport + HTTPS: //accounts.google.com/VerifyAnonymousAccount значение = 0,01&вызов = f3626fca2ce9ffd23e0abd859faeff5384b63834&состояние = dNaBzuXCE7a7UGSO + deEbX / 8XDNESGSD / lQ9vmO9 / NU =
Приложение, называют его Passport менеджер обрабатывает этот URI и затем подписывает данную проблему, используя каждый открытый ключ в каждой транзакции жертвы (в порядке). Задача случайным образом генерируется сервером. Подписи затем в комплекте вместе с государством, а сам паспорт:
Код:
сообщение IdentityProof {
// ряд вложенных сообщений, содержащих паспорт. Это не встроенный тип, чтобы обеспечить
// надежное хеширование содержимого без путаницы, вызванной модернизации протокола в будущем.
// Там может быть больше, чем один, так что вы можете представить несколько паспортов, чтобы достичь требуемого размера
// жертвы, в случае, если ваш первый один не является достаточно большим.
повторяются байты паспорт = 1;
// Список подписей, по одному для каждого входа в каждую жертву, в порядке.
повторные подписи байт = 2;
// Это просто копия параметра состояния в URI.
опционально строка состояния = 3;
}
// ряд вложенных сообщений, содержащих паспорт. Это не встроенный тип, чтобы обеспечить
// надежное хеширование содержимого без путаницы, вызванной модернизации протокола в будущем.
// Там может быть больше, чем один, так что вы можете представить несколько паспортов, чтобы достичь требуемого размера
// жертвы, в случае, если ваш первый один не является достаточно большим.
повторяются байты паспорт = 1;
// Список подписей, по одному для каждого входа в каждую жертву, в порядке.
повторные подписи байт = 2;
// Это просто копия параметра состояния в URI.
опционально строка состояния = 3;
}
Параметр состояния произвольные данные петельным через клиент с сервера. Это позволяет без гражданства реализации сервера, который не нуждается в базе данных, чтобы отслеживать, что вызов соответствует тому, что действия сервера в настоящее время приостановлены до проверки. Например, сервер может зашифровать любое состояние он требует в этой области. Это полезно для операций, использующих глобальную балансировку нагрузки.
При получении IdentityProof, сервер анализирует поле паспорта в сообщение BitcoinPassport, проверяет подпись (паспорт представлен его владелец), подтверждает, что жертва сделки ссылаться на данные заголовки блоков, основанных на серверах копии этих заголовков, и затем проверяет, что количество и стоимость жертвы достаточно. Сделки должны появиться более или менее последовательными блоками цепи, хотя должно быть немного свободы действий допускаются.
Если доказательство проверяется, сервер может проверить против своих собственных черных списков лиц, злоупотребляющих или посмотреть хэш в удаленной базе данных. Если никаких проблем не найдены, NYM (доказательство хэша) может быть сохранен во вновь созданной учетной записи. Если в дальнейшем счет оказывается оскорбительным, он может быть занесен в черный список. Переменная состояния может быть расшифрован и все данные должны быть скорректированы, то может быть. Сервер отвечает приложение с HTTP редирект и приложение затем открывает редирект URI, который принимает пользователя обратно в браузер. Перенаправление URI может завершить регистрацию приветственного сообщения, или же объяснить пользователь, почему их NYM не принят.
Паспорта могут быть созданы с помощью приложения Passport Manager. Это отдельная программа, которая поддерживает свой собственный Bitcoin кошелек. Вы отправляете деньги на него, нажмите "Сделать паспорт" кнопку, а затем лечь в постель. Это обеспечивает есть выходы правого количества и стоимости, прежде чем начать, а затем отправляет транзакцию такой, что они получают в последовательные блоки. Это может занять час или два, но один раз заполнить паспорт можно записать в .passport файл, который содержит общие данные и, конечно, частные ключи используются, чтобы подписать для них.
выбор дизайна
(1) Почему шахтер сборы вместо благотворительного?
Есть несколько проблем, с идеей пожертвования на благотворительные цели:
- Благотворительные не политически нейтральные, как шахтеры. Например, если вы хотите, чтобы пожертвовать на благотворительные цели, которые действуют в Иране, которые могли бы быть проблемой. Никто не сможет согласиться на одном наборе благотворительных организаций, что делает все счастливым - даже "нет Brainers" как основы с открытым исходным кодом будет поворота на неопытных людей, которые, возможно, пожелают использовать систему.
- Благотворительные массивно предпочитают иметь реальные отношения с жертвователями, которые совершают на длительный срок (или может быть убеждены сделать это). Anonymous, непредсказуемые потоки доходов может сделать их учет намного сложнее, потому что они не знают, когда деньги могут прийти, так что он не может полагаться. Благотворительная организация, которая получила деньги таким образом, то не использовать его потеряет много доброй волю не по реальным их вина.
- Некоторые благотворительные организации не хотят или не могут принимать анонимные пожертвования на всех.
- Каждый должен будет согласовать список благотворительных организаций, чтобы использовать заранее, чтобы не было никакой связи между тем, как хорошо благотворительность делает и сколько он получил в жертву сборов. Благотворительный могут эффективно работать в течение нескольких лет, а затем становится коррумпированными или некомпетентным, но обновления программного обеспечения Всяких использовать новый список будет сложно.
Шахтеры являются политически нейтральными, анонимным, неразличимы, деньги почти гарантированно быстро повторно циркулировать в экономику через обмены и помогает поддерживать безопасность сети.
(2) Почему требуется несколько жертв в последовательных блоках?
Это позволяет избегать людей добычи их собственной жертвы. Это очень трудно добывать 6 последовательных блоков, но относительно легко получить сделок в них. Зазор 1 блок или так было бы приемлемо, вам не нужно бить каждый блок, чтобы иметь очень высокий уровень доверия.
(3) Какие хорошие значения для размера жертвы и количества блоков?
Злоупотребление дешево. Давайте представим, что мы развернуть это для Gmail. Стоимость Gmail счета на черном рынке составляет примерно $ 100- $ 150 за тысячу счетов. Это то, что он стоит профессиональных спамеров, чтобы преодолеть проверки телефона и успешно избежать насыпного прекращения.
Таким образом, единый счет стоит около 10 до 15 центов. Предположим, что цена $ 20 за монету, это означает, что 10 центов составляет 0,005 монет. Если мы говорим, что вам нужно потратить 0.005 монет сборов в пространстве 6 блоков, то это означает, 0.001 монет на жертву с допустимым зазором 1 блока в 6 всего. Это звучит вполне разумно для меня. Потому что вы знаете, когда была сделана жертва, вычисляя значение его в валюте вашего выбора прост, несмотря на плавающий обменный курс.
(4) Почему новая схема URI?
Для веб-сайта, чтобы задать приложение для данных, есть только несколько возможностей. Волшебные заголовки HTTP, JavaScript API, и т.д. все требует расширения браузера для реализации, которые трудно или невозможно сделать на мобильных браузерах / планшетов. регистрация URI просто, универсально поддерживается и не накладывает каких-либо требований браузера.