перепроведении http://www.mail-archive.com/bitcoin-development@lists.sourceforge.net/msg02159.html
Это было ранее (1) предлагает HashCash с использованием того же POW
Функцию в качестве алгоритма хэширования блока Bitcoin можно использовать для создания
HashCash стоимость которого выражена в Bitcoins. Это создает две проблемы
Однако: широкое использование такой HashCash повредит общую сеть
безопасность и определение стоимости HashCash требует знаний
шахтеры доход может получить от сделки сборов на заданную высоту блока -
не-вычислимая функция. Тем не менее, с некоторыми изменениями, мы можем
расширить идею непосредственно деноминации в HashCash в Bitcoins на
Стоимость небольшого увеличения доказательства размера.
Напомним, что fundemental проблема заключается в необходимости делать какую-то работу, чтобы сделать
дайджеста D имеет значение V, в результате чего доказательства того, что может быть дано на треть
вечеринка. Мы хотим, чтобы V быть номинированы в Bitcoins, и мы хотим, чтобы фактическое
экономические затраты на создание P, чтобы быть как можно ближе к номинальной стоимости
V. Наконец, должны вычисляя результат P в допустимом заголовке Bitcoin блока,
создатель доказательства должны иметь сильный стимул публиковать их
заголовок к сети P2P и продлить текущую лучшую цепь.
# Доказательство структура
Давайте посмотрим на элементы доказательства из заголовка блока в
дайджест.
## Блок заголовка PoW
Это должно быть правильным заголовком блока. Это особенно важно
убедитесь, что заголовок может быть связан с фактическим blockchain, хотя
сам заголовок не должен быть частью цепи, и, следовательно,
блок хэш не должен отвечать требованиям сложности.
### Предыдущие заголовки блоков
Доказательство может необязательно включать в себя один или несколько блоков предыдущих заголовков в
событие, которое предыдущий блок военнопленный блок заголовка является сиротой.
В отличие от заголовка PoW блока, эти блочные заголовки должны отвечать
Требования к сложности, хотя реализация может прерываться на самом деле
проверка трудности, если трудности Retarget не произошло или
PoW является временной меткой. (Смотри ниже)
## Частичная сделка и Merkle Path
Частичная сделка состоит из SHA256 Midstate с последующим
ровно один выход транзакции. Merkle путь к заголовку блока PoW
ДОЛЖЕН доказать сделка была coinbase сделки и не какой-либо
другие сделки.
## Сделка Выход
Последний выход транзакции должен иметь scriptPubKey, состоящий из
точно один оп PUSHDATA который толкает H (D | N) в стек. Его значение,
V», является основой для определения стоимости доказательства работы. обязательно V»
удовлетворяют условию V» < к * Vi (з), где Vi награда инфляции для блока ПР
высота и к < 1 По ряду причин, в том числе убедившись, что там
сильные стимулы для вещания успешных решений POW, то
величина к должна быть выбрана достаточно консервативно; автор предлагает K
= 3D 1/10 как примерная цифра. Наконец Н некоторое фиксированное значение специфичного для
HashCash этой формы, чтобы обеспечить txout доказательства, не может быть использован повторно.
Vi также может быть вычислен как медиана последнего п "кто-может-тратить"
выходы видели в coinbases, когда значение награды инфляции падает
достаточно низко, что использование награды инфляции нецелесообразно.
## Отметка
Если доказательство правильности работы используется после того, как трудность нацелить потребности POW
чтобы быть датируемые в блок-цепи с Merkle путь, ведущий к
действительный блок заголовка. Трудность используется для вычисления значения из
PoW становится минимумом трудностей военнопленного предыдущим
блок и метка времени.
# Определение фактической стоимости военнопленного
Доказательство доказывает, что работа была сделана, чтобы найти правильный заголовок блока. Что
заголовок блока, если бы встретили трудности порога, мог бы создать
действительный блок стоит, по крайней мере инфляционный награда Vi (з) шахтера.
В coinbase выходных транзакций и пути Merkle показывает, что были такие
блок найдено, шахтер бы тогда отдал V»кому удалось
чтобы создать сделку проводить его, когда coinbase созрел.
coinbase занимает 100 блок созреть, поэтому возможность какого-либо одного горняка
собирая его пропорционально силе хеширования они контролируют. (*)
*) Как и верности облигации мы делаем предположение, что нет контроля партии
более чем 50% мощность хеширования - предположение, лежащее в основе Bitcoin-х
безопасность в любом случае. Если это предположение доказано неправильно или
недостаточно сильный, возможно из-за картеля шахтеров полосатость
вместе, чтобы создать недорогой военнопленные, выход может использовать доказуемо
unspendable / prunable OP_RETURN <дайджест> scriptPubKey вместо с
ненулевое значение.
С P (блок хэша, целевой), ожидаемая вероятность действительного ПР
были найдены с учетом работы, необходимой для создания блок-хэш с
заданной целевой трудности, мы можем, наконец, вычислить значение ПР
с точки зрения ожидаемой стоимости: V = 3D-Р (хэш, цель) * V»
# Бассейн реализация и 51% безопасность атаки
Потому что делает работу, необходимую для создания coinbase txout HashCash является
достаточно, чтобы также создать действительный блок бассейн можно смело сдать в аренду
хэшировании власти создать HashCash этой формы по требованию без
можно арендовать большие объемы хэширования мощности непосредственно на коротком
уведомление. (Хотя некоторые расширения для GetBlockTemplate для hashers
проверки может потребоваться)
Потому что кто-то может-тратить-txout является основой для значению
HashCash значение остается вычислимым, даже если операционные издержки становятся
большая доля блока вознаграждения в будущем.
В отличие от объявляют фиксации sacrificies (2) доказательства с очень малыми значениями может
быть легко созданы; оператор бассейна может сделать компромисс между
прибыль varience - помните, что блок заголовка с действительным ПР
представляет собой потерю - и латентность, регулируя доказательство работы
Трудность и V».
Как и в сторону, обратите внимание, как механизм любой, может, провести txout в
coinbase может заменить часть анонса анонса фиксации
жертва; coinbase сделка является только случай, когда один Merkle
путь доказывает, что выход транзакции можно было провести в
последующий блок, но еще не был потрачен; также аргумент для разрешения
coinbase входы транзакций.
# Применение: Плата за дополнительную пропускную способность пойменных заполнения
Дополнительные приложения для обмена сообщениями, построенные на вершине P2P Bitcoin
сеть будет полезной, но там должен быть какой-то общий механизм
сделать DoS атаки достаточно дорого, что они непрактичны. Для
Экземпляр полезная функция P2P сети будет механизм, чтобы предложить
доверие свободной монеты смешивает выходы транзакций, предлагают специальные наборы txout,
и, наконец, механизм для передачи действительных подписей ANYONECANPAY так
входы и выходы могут стать действительной транзакцией. Путем отделения
txout и подпись вещает, кто платит за то, что выход из
очень трудно определить.
Конечно, такой механизм, скорее всего, подверглась атаке со стороны тех, кто пытается
для борьбы с анонимностью. Однако с coinbase txout механизма HashCash
эти нападавшие вынуждены либо внести свой вклад в безопасность
Bitcoin сети или нести гораздо более высокие затраты opporuntity для проведения
их атаки, чем честные узлы оплаты. (Помните, как выбор к = 3D 10
делает большое отношение максимальной величины V»до Vi (ч) вознаграждение инфляции)
Для того, чтобы уменьшить размер АМОРТИЗИРОВАННОЙ пробных одно доказательство может быть использовано для многократного
платежи с Ривестом PayWords и подобными методами.
# PowPay - Off-цепь, анонимные, вероятностные платежи
Установив специальный txout к scriptPubKey расходуемого на
Получатель мы можем доказать третьей стороне, что работа была сделана, что с
вероятность Р (хэш, мишень) могло бы привести к txout расходуемого по
их стоимостного V 'Таким образом, ожидаемое значение оплаты V = 3D P (H, T) * V'
Получатель должен сделать доказательство одноразового использования, либо путем записи
все доказательства представлены, или требующий одноразовый номер в scriptPubKey: (*)
<данное время> DROP {дополнительные} ОПС
*) Обратите внимание на последствия для теста IsStandardInput ().
Поскольку получатель не имеет возможности узнать, как отправитель заплатил, чтобы
хеширование сделано от их имени источник средств неизвестно
их. Кроме того, оплата может быть любой суммы меньше, чем полный
блокировать награду, а время varient между фактическими платежами может быть
сводится к, в теории, так же мало, как интервал блока себя 100%
шахтер участие.
## Максимальная сумма платежа
В отличии от coinbase txout Hashcash максимального значения транзакции PowPay
строго ограничено вознаграждение инфляции; трюк расчета
фактические расходы на предыдущих жертвах не работают, потому что нет честной жертвы
вовлечен. В любом случае желательно, чтобы механизм для учета
за большой процент от общей стоимости сделки.
Вопрос заключается в том, что следует корректный блок можно найти либо шахтер сусло
по-прежнему имеет сильный стимул для передачи этого блока, который может быть доказан
получатель, или шахтер не должен быть один, который контролирует
решение.
Последний вариант возможен путем переворачивания отношения: теперь
получатель строит блок, и отправитель просто организует для
действительный PoW будет создан - по существу, получатель выступает в качестве добычи
бассейн с очень высокой минимальной работой, и отправитель предоставляет
хэширования власти. С 1 Мб размер блока затраты на эксплуатацию в полной мере
проверки узла требуется низкая и атаки на распространение блока
трудно успешно осуществить.
### Поддержка объема PowPay сверх инфляции вознаграждения + ТХ сборов
Для того, чтобы поддерживать общие объемы PowPay, которые сверх инфляции
вознаграждение и операционные сборы отправитель может предоставить получателю
подписал сделка вводит с учетом ограничения, что только блоки
с военнопленными генерироваться отправителем может быть использован, чтобы тратить их. Для
экземпляр по Nonce в хорошо известном месте может быть предоставлен отправителем и
включено в заголовке модифицированного блока. Путем модификации блока хэширования
Алгоритм так что POW-удержаний не представляется возможным - значительно более
Серьезная проблема в этом приложении - отправитель по-прежнему вынужден отправить
все возможные решения для получателя, в том числе возможного выигрыша
из них. При условии, что атака распространения блока трудно отправитель
не может помешать Reciver тратить свои входы транзакций.
## Масштабируемость
PowPay может обеспечить гораздо большую масштабируемость, чем сама Bitcoin, в
Сроки платежей в секунду, однако по-прежнему ограничены с точки зрения
фактические денежные переводы получателям в секунду. Наивная реализация
бы дать фактическую передачу каждые десять минут максимум, и очень
сложные решения 7 / сек. (Хотя, возможно, требует hardfork
решить POW удержания и / или использование третьих лиц)
В то же время доказательство, необходимое становится большим с повышенным
размер_блока, и в случае перевернутая "получатель строит блоки"
Режим получатели либо нести большие затраты работают полные узлы, или
существенно нарушить поток транзакций для на цепочке пользователей по добыче блоков
без каких-либо сделок в них на всех. (Помните, что получатель, который
доверяет кому-то еще, чтобы построить блоки для них доверчив, что
третьи стороны, чтобы сделать это правильно)
Последнее особенно проблематичным, поскольку, как это размер_блока
увеличился более высокий процент от стоимости добычи идет на накладные расходы
требуется для запуска проверяющего узла, а не хэширования, которая имеет
порочный эффект не уменьшая стоимость добычи блоков без какого
сделки в них на всех. (Или операции, шахтер знает есть
выявлено не было других шахтеров)
Анализ этого странного разнородным стимулов является весьма сложным.
# Платежные для добычи полезных ископаемых
TxOut HashCash и PayPow оба требуют отправителя каким-то образом заставить кого-то
помоему от их имени. Точная природа этих отношений будет
изменяются и выходят за рамки настоящего документа.
# Устранение POW удержаний
Хотя приведенные выше примеры использовали экономические стимулы возможно в рамках
существующая система Bitcoin структурный стимул можно также.
Случайное слово N выбирается партией, оплачивающего ПР, таких как бассейн или
PowPay получателя, и Н (п) включен в заголовок блока. (*) ПР
функция модифицируется, чтобы рассмотреть POW действительный, если сумма значений
ожидаемые хешей требуется найти H (B) и Н (В | п) превышает ток
Трудность цель.
*) Обратите внимание, как заголовок блока может быть расширен, оставаясь при этом достаточно Compat =
кий
с существующими ASIC горнодобывающего оборудования, воспользовавшись тем фактом, что
Используйте SHA256 Midstate ASIC по адресу отправной точкой для их ПР
расчеты. (3)
1) "Re: [Bitcoin-разработки] Discovery / ADDR пакеты (было: Обслуживание бит
для обрезки узлов)" - 2013-06-06 - Питер Тодд <pete@petertodd.org> -
Bitcoin-девелопмент список адресов электронной почты
2) "Покупка верности облигаций путем доказуемо выбрасывая Bitcoins" -
- Питер Тодд
3) "Re: 32 против 64-битовых полей временных меток" - 2013-06-09 - Джон Диллон
<john.dillon892@gmail.com> - Bitcoin-девелопмент список адресов электронной почты