Электронная кассовая система Peat-to-Peer Сатоши Накамото сочинение пример

ООО "Сочинения-Про"

Ежедневно 8:00–20:00

Санкт-Петербург

Ленинский проспект, 140Ж

magbo system

Сочинение на тему Электронная кассовая система Peat-to-Peer Сатоши Накамото

Чисто одноранговая версия электронных денежных средств позволяет отправлять онлайн-платежи напрямую от одной стороны к другой без прохождения через финансовое учреждение. Цифровые подписи обеспечивают часть решения, но основные преимущества теряются, если надежная третья сторона все еще требуется для предотвращения двойных расходов. Мы предлагаем решение проблемы двойных расходов с использованием одноранговой сети.

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

Торговля в Интернете стала почти полностью зависеть от финансовых учреждений, выступающих в качестве доверенных третьих сторон, для обработки электронных платежей. Хотя система работает достаточно хорошо для большинства транзакций, она все еще страдает от недостатков модели, основанной на доверии. Полностью необратимые транзакции на самом деле невозможны, поскольку финансовые учреждения не могут избежать посреднических споров. Стоимость посредничества увеличивает транзакционные издержки, ограничивая минимальный практический размер транзакции и ограничивая возможность для небольших случайных транзакций, а также более широкие затраты в связи с потерей способности совершать необратимые платежи за необратимые услуги. С возможностью разворота потребность в доверии распространяется. Торговцы должны с осторожностью относиться к своим клиентам, доставляя им больше информации, чем им было бы необходимо в противном случае. Определенный процент мошенничества считается неизбежным.

Этих расходов и неопределенностей в отношении платежей можно избежать лично, используя физическую валюту, но не существует механизма для осуществления платежей по каналу связи без доверенной стороны. Необходима электронная платежная система, основанная на криптографическом доказательстве, а не на доверии, позволяющая любым двум заинтересованным сторонам совершать сделки напрямую друг с другом без необходимости доверенной третьей стороны. Транзакции, которые в вычислительном отношении нецелесообразны для обратного, защитят продавцов от мошенничества, и для защиты покупателей могут быть легко внедрены обычные механизмы условного депонирования. В этой статье мы предлагаем решение проблемы двойных трат с использованием однорангового распределенного сервера временных меток для генерации вычислительного доказательства хронологического порядка транзакций. Система безопасна до тех пор, пока честные узлы коллективно контролируют большую мощность ЦП, чем любая взаимодействующая группа атакующих узлов.

Сделки

Мы определяем электронную монету как цепочку цифровых подписей. Каждый владелец переводит монету следующему, подписывая цифровой хэш предыдущей транзакции и открытый ключ следующего владельца и добавляя их в конец монеты. Получатель платежа может проверить подписи для проверки цепочки владения. Проблема, конечно, заключается в том, что получатель платежа не может подтвердить, что один из владельцев не потратил дважды монету. Распространенным решением является введение доверенного центрального органа или монетного двора, который проверяет каждую транзакцию на предмет двойных расходов. После каждой транзакции монета должна быть возвращена монетному двору для выпуска новой монеты, и только монеты, выпущенные непосредственно из монетного двора, не подлежат двойному расходу. Проблема с этим решением состоит в том, что судьба всей денежной системы зависит от компании, управляющей монетным двором, с каждой транзакцией, проходящей через них, точно так же как банк. Нам нужен способ, чтобы получатель платежа узнал, что предыдущие владельцы не подписывали более ранние транзакции. Для наших целей учитывается самая ранняя транзакция, поэтому мы не заботимся о последующих попытках удвоить расходы. Единственный способ подтвердить отсутствие транзакции – это знать обо всех транзакциях. В модели, основанной на монетном дворе, монетный двор знал обо всех сделках и решал, что прибыло первым. Чтобы выполнить это без доверенной стороны, транзакции должны быть публично объявлены [1], и нам нужна система для согласования участниками единой истории заказа, в котором они были получены. Получатель платежа должен доказать, что на момент каждой транзакции большинство узлов соглашалось с тем, что он был получен первым.

Сервер отметок времени

Предлагаемое нами решение начинается с сервера отметок времени. Сервер меток времени работает, беря хэш блока элементов для меток времени и широко публикуя его, например, в газете или посте Usenet [2-5]. Отметка времени доказывает, что данные должны были существовать в то время, очевидно, чтобы попасть в хеш. Каждая временная метка включает в себя предыдущую временную метку в своем хэше, образуя цепочку, при этом каждая дополнительная временная метка усиливает предшествующую ей.

Proof-оф-работы

Для реализации распределенного сервера временных меток на основе одноранговой связи нам потребуется использовать систему проверки работоспособности, аналогичную Hashcash Адама Бека [6], а не публикации в газетах или Usenet. Доказательством работы является сканирование значения, которое при хешировании, например, в SHA-256, хеш начинается с числа нулевых битов. Требуемая средняя работа является экспоненциальной по количеству требуемых нулевых битов и может быть проверена путем выполнения одного хэша. Для нашей сети временных меток мы реализуем проверку работы, увеличивая одноразовый номер в блоке до тех пор, пока не будет найдено значение, которое дает хэшу блока требуемые нулевые биты. После того, как усилия ЦП были потрачены на то, чтобы заставить его выполнить проверку работы, блок не может быть изменен без повторного выполнения работы. Поскольку более поздние блоки объединяются в цепочку после него, работа по изменению блока будет включать в себя повторное выполнение всех блоков после него. Доказательство работы также решает проблему определения представительства при принятии решений большинством. Если бы большинство основывалось на одном IP-адресе-одном-голосе, он мог быть подорван любым, кто мог выделить много IP-адресов. Доказательством работы является, по сути, один процессор-один голос. Решение большинства представлено самой длинной цепочкой, в которую вложено наибольшее количество доказательств работы. Если большая часть процессорной мощности контролируется честными узлами, честная цепочка будет расти быстрее всех и опережать любые конкурирующие цепочки. Чтобы изменить предыдущий блок, злоумышленнику придется переделать подтверждение работы блока и всех блоков после него, а затем догнать и превзойти работу честных узлов. Позже мы покажем, что вероятность того, что более медленный атакующий догонит, экспоненциально уменьшается при добавлении последующих блоков. Чтобы компенсировать увеличение аппаратной скорости и разный интерес к работе узлов с течением времени, трудность доказательства работы определяется скользящей средней, нацеленной на среднее количество блоков в час. Если они генерируются слишком быстро, сложность возрастает.

Сеть

Шаги для запуска сети следующие: Новые транзакции транслируются на все узлы. Каждый узел собирает новые транзакции в блок. Каждый узел работает над поиском трудного доказательства работы своего блока. Когда узел находит подтверждение работы, он передает блок всем узлам. Узлы принимают блокировку только в том случае, если все транзакции в ней действительны и еще не проведены. Узлы выражают свое согласие с блоком, работая над созданием следующего блока в цепочке, используя хэш принятого блока в качестве предыдущего. Узлы всегда считают самую длинную цепочку правильной и будут продолжать работать над ее расширением. Если два узла передают разные версии следующего блока одновременно, некоторые узлы могут получить один или другой в первую очередь. В этом случае они работают с первым полученным ответом, но сохраняют другой филиал на случай, если он станет длиннее. Связь будет разорвана, когда будет найдено следующее доказательство работы, и одна ветвь станет длиннее; узлы, которые работали в другой ветви, затем переключатся на более длинный. Новые трансляции транзакций не обязательно должны охватывать все узлы. Пока они достигают многих узлов, они скоро попадут в блок. Блочные трансляции также терпимы к пропущенным сообщениям. Если узел не получает блок, он запросит его при получении следующего блока и обнаружит, что он пропустил один.

Стимул

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

Восстановление дискового пространства

После того, как последняя транзакция в монете похоронена под достаточным количеством блоков, проведенные транзакции перед ее сбросом могут быть сброшены для экономии места на диске. Чтобы облегчить это, не нарушая хеш-код блока, транзакции хэшируются в дереве Merkle Tree [7] [2] [5], и в хеш-блок блока включается только корень. Старые блоки могут быть затем уплотнены путем удаления веток дерева. Внутренние хеши не нужно хранить. Заголовок блока без транзакций будет около 80 байтов. Если предположить, что блоки генерируются каждые 10 минут, 80 байтов * 6 * 24 * 365 = 4,2 МБ в год. С компьютерными системами, которые обычно продаются с 2 ГБ оперативной памяти по состоянию на 2008 год, и с Законом Мура, предусматривающим текущий рост на 1,2 ГБ в год, хранение не должно быть проблемой, даже если заголовки блоков должны храниться в памяти.

Упрощенное подтверждение платежа

Возможна проверка платежей без использования полного сетевого узла. Пользователь должен хранить только копию заголовков блоков самой длинной цепочки проверки работоспособности, которую он может получить, опрашивая узлы сети, пока не убедится, что у него самая длинная цепочка, и получить ветвь Merkle, связывающую транзакцию с блоком. это отметка времени. Он не может проверить транзакцию для себя, но, связав ее с местом в цепочке, он может увидеть, что сетевой узел ее принял, и добавленные блоки после того, как он еще раз подтвердит, что сеть приняла ее. Таким образом, проверка достоверна до тех пор, пока честные узлы контролируют сеть, но она более уязвима, если злоумышленник подавляет сеть. Хотя сетевые узлы могут проверять транзакции для себя, упрощенный метод может быть обманут сфабрикованными транзакциями злоумышленника до тех пор, пока злоумышленник может продолжать подавлять сеть. Одна из стратегий защиты от этого заключается в том, чтобы принимать оповещения от сетевых узлов, когда они обнаруживают недопустимый блок, побуждая программное обеспечение пользователя загружать полный блок и оповещать транзакции для подтверждения несоответствия. Компании, которые получают частые платежи, вероятно, все еще захотят использовать свои собственные узлы для более независимой безопасности и более быстрой проверки.

Объединение и разделение значений

Хотя было бы возможно обрабатывать монеты индивидуально, было бы неудобно совершать отдельную транзакцию за каждый цент в переводе. Чтобы можно было разделить и объединить значение, транзакции содержат несколько входов и выходов. Обычно это будет либо один вход из предыдущей транзакции большего размера, либо несколько входов, объединяющих меньшие суммы, и не более двух выходов: один для платежа и один, возвращающий изменение, если оно есть, обратно отправителю. Следует отметить, что разветвление, когда транзакция зависит от нескольких транзакций, а эти транзакции зависят от многих других, здесь не является проблемой. Нет необходимости извлекать полную автономную копию истории транзакции.

Конфиденциальность

Традиционная банковская модель обеспечивает уровень конфиденциальности, ограничивая доступ к информации для вовлеченных сторон и доверенной третьей стороны. Необходимость объявить все транзакции публично исключает этот метод, но конфиденциальность по-прежнему можно поддерживать, нарушая поток информации в другом месте: сохраняя анонимные открытые ключи. Общественность может видеть, что кто-то отправляет сумму кому-то еще, но без информации, связывающей транзакцию с кем-либо. Это похоже на уровень информации, публикуемой фондовыми биржами, где время и размер отдельных сделок, «лента», обнародуются, но без указания того, кем были стороны. В качестве дополнительного брандмауэра для каждой транзакции должна использоваться новая пара ключей, чтобы они не были связаны с общим владельцем. Некоторое связывание по-прежнему неизбежно с транзакциями с несколькими входами, которые обязательно показывают, что их входы принадлежали одному и тому же владельцу. Существует риск того, что в случае выявления владельца ключа при связывании могут быть обнаружены другие транзакции, принадлежащие тому же владельцу.

Вычисления

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

Зарегистрируйся, чтобы продолжить изучение работы

    Поделиться сочинением
    Ещё сочинения
    Нет времени делать работу? Закажите!

    Отправляя форму, вы соглашаетесь с политикой конфиденциальности и обработкой ваших персональных данных.