Экономия дискового пространства




Введение

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

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

Транзакции

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

Получатель может проверить каждую подпись, чтобы подтвердить корректность всей цепочки владельцев.

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

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

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

Доказательство работы

Чтобы реализовать распределенный одноранговый сервер меток времени, мы используем схему «доказательства работы», подобную системе Hashcash Адама Бека [6]. Суть заключается в поиске такого значения, чей хэш (например, SHA-256) начинался бы с некоторого числа нулевых битов. В нашем сервере меток времени поиск значения с нужным хэшем происходит путем перебора значения итерируемого поля-добавки (nonce) в блоке данных. И если он не является последним в цепочке, эта работа включает в себя и перевычисление всех блоков, следующих за ним.

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

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

Сеть

Система работает по следующим правилам:

1) Новые транзакции рассылаются всем узлам.

2) Каждый узел объединяет пришедшие транзакции в блок.

3) Каждый узел пытается подобрать хэш блока, удовлетворяющий текущей сложности.

4) Как только такой хэш найден, этот блок отправляется в сеть.

5) Узлы принимают блок, только если все транзакции в нем корректны и не используют уже потраченные средства.

6) Свое согласие с новыми данными узлы выражают, начиная работу над следующим блоком и используя хэш предыдущего в качестве новых исходных данных.

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

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

Стимулы

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

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

Такая форма стимулирования может также способствовать уменьшению случаев мошенничества.

Экономия дискового пространства

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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-08-04 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: