Bitcoin Forum
December 13, 2024, 05:52:51 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Пора разобраться с Merged Mining  (Read 5610 times)
pent (OP)
Hero Member
*****
Offline Offline

Activity: 490
Merit: 500



View Profile
March 05, 2012, 05:52:54 PM
 #1

Итак, теоретическая база

https://github.com/vinced/namecoin/blob/mergedmine/doc/README_merged-mining.md
https://en.bitcoin.it/wiki/Alternative_Chains#Sharing_work

На форуме похоже немногие вообще в курсе как это в действительности работает на низком уровне.

Как я понимаю реализацию.

1. Строится дополнительный Merkle Tree (AUX Tree) где то в воздухе, из root Merkle хешей блоков всех доступных AUX чейнов. В простейшем случае неймкоин, это тупо хеш одного AUX'а неймкоина
2. В CoinBase scriptSig биткоина суется рут-хеш этого дерева (там по протоколу может быть что угодно)

Таким образом, если мы майним блок биткоин с рут хешем дерева AUX'ов, то при успехе, у нас есть доказательство работы - намайненый блок биткоин и в нем есть рут этого древа AUX Tree.

Майнится с наименьшей сложностью из всех. Кому подошла - тому повезло. Подошло к наибольшей сложности - повело всем =)

В блок биткоин суется только рут хеш дерева AUX'ов в позволительное место (scriptSig нулевой транзакции).

При этом к AUX блоку цепляется куча левой инфы для верификации:
а) Меркль ветка AUX блока в AUX Tree
б) Индекс а) в AUX Tree (зачем, если ветка есть?)
в) Нулевая транзакция биткоин в найденом блоке, конкретно интересует ее scriptSig с рутом AUX Tree.
г) Меркль ветка предыдущего пункта в дереве Bitcoin блока
д) Хидер блока биткоин

Верификация AUX блока:
1. Из ветки а) вычисляется рут хеш AUX Tree
2. В сохраненном хидере проверяем что этот хеш есть в в)
3. в) должна быть корректно втиснута в г) с соответствующим рут хешем
4. Хеш д) меньше таргета AUX chain
5. а) стоит четко на индексе б) AUX Tree

Таким образом, даже если этот недо-биткоин блок не вошел в "официальную" цепь биткоин, он все равно служит доказательством Proof-Of-Work AUX блока, так как он к нему приаттачен.

Это позволяет майнить AUX'ы и PARENT'ы на разных сложностях, независимо друг от друга, с одной и той же мощностью.

А где хранится весь AUX Tree?
Какие тут могут быть сюрпризы? Один из участников утверждал что это чревато дабл-спендами в AUX'ах.
ufasoft
Sr. Member
****
Offline Offline

Activity: 404
Merit: 251


View Profile WWW
March 07, 2012, 01:00:48 PM
 #2

А где хранится весь AUX Tree?

Формат блока при Merged Mining  расширен. То есть некоторые блоки NameCoin содержат в себе еще Header-ы Bitcoin-блоков



Bitcoin donations: 18X598V8rVdjy3Yg1cjZmnnv4SpPthuBeT
pent (OP)
Hero Member
*****
Offline Offline

Activity: 490
Merit: 500



View Profile
March 07, 2012, 03:03:22 PM
 #3

Формат блока при Merged Mining  расширен. То есть некоторые блоки NameCoin содержат в себе еще Header-ы Bitcoin-блоков

Ну так я ж написал
Quote
При этом к AUX блоку цепляется куча левой инфы для верификации:
а) Меркль ветка AUX блока в AUX Tree
б) Индекс а) в AUX Tree (зачем, если ветка есть?)
в) Нулевая транзакция биткоин в найденом блоке, конкретно интересует ее scriptSig с рутом AUX Tree.
г) Меркль ветка предыдущего пункта в дереве Bitcoin блока
д) Хидер блока биткоин

непонятно где здесь это дерево хранится.
ufasoft
Sr. Member
****
Offline Offline

Activity: 404
Merit: 251


View Profile WWW
March 07, 2012, 05:40:50 PM
 #4

Формат блока при Merged Mining  расширен. То есть некоторые блоки NameCoin содержат в себе еще Header-ы Bitcoin-блоков

Ну так я ж написал
Quote
При этом к AUX блоку цепляется куча левой инфы для верификации:
а) Меркль ветка AUX блока в AUX Tree
б) Индекс а) в AUX Tree (зачем, если ветка есть?)
в) Нулевая транзакция биткоин в найденом блоке, конкретно интересует ее scriptSig с рутом AUX Tree.
г) Меркль ветка предыдущего пункта в дереве Bitcoin блока
д) Хидер блока биткоин

непонятно где здесь это дерево хранится.
Merkle-дерево само не хранится, оно строится из TxHash-ей. Ну в Namecoin-блоке же присутствуют namecoin транзакции, так же как в bitcoin-блоке.  Суть в том, чтобы два параллельных блока разных сетей ссылались друг на друга.

Bitcoin donations: 18X598V8rVdjy3Yg1cjZmnnv4SpPthuBeT
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!