LINUX.ORG.RU
ФорумTalks

Биткоин. Тупые вопросы. Как связана паковка блока с генерацией баблища?

 


1

1

Поверхностно почитал всякой херобазы.

Всё что далее написано, скорее всего, настолько тупо, шопесец. Но я просто пытаюсь понять с нуля.

Я так понял, все участники сети слушают некий порт, куда от всех других участников валятся транзакции. Совершил транзакцию - разослал её 100 другим юзерам на этот порт.

Эти 100 юзеров пытаются сформировать блок, пихая туда все транзакции, которые они поймали. Правила формирования блока описаны, спрашивать не буду. Хеши-перехеши там всякие...

Тупые вопросы такие:

1. Нельзя просто так взять и сформировать блок по формальным правилам с первой попытки, а надо чтобы некий хеш, собранный из хеширования транзакций и заголовка блока содержал вначале некоторое число нулей. Это установлено текущей сложностью в сети. И этот процесс есть майниг. Т.е. паковка блоков (жизненно важная для сети функция) и майнинг неразрывно связаны? Чтобы майнинг осуществлять, крутят nonce, а когда он переполнился - крутят спец-поле в одной из транзакций, перехешируют её и снова крутят nonce в заголовке. Т.е. создатели блоков одновременно являются и майнерами, т.е. проделывателями работы чтобы было proof-of-work?

2. Я так понял, не все участники обязаны пытаться сформировать блок, но формирование блоков есть жизненная сила сети. Не будет блоков - всё встанет, некуда будет паковать новые транзакции. Собственно, block chain перестанет расти. Т.е. формирование блоков — это необходимая для сети функция, но так как центрального сервака нет — делать её должен «кто-нибудь», за что ему дают награду.

3. Зачем блок должен быть с «крутым» хешом с нулями в начале, доказывающим что проделана работа, почему бы вместо этого не принимать сформированный с первой попытки блок с любым хешом, просто тот который сформировался раньше всех? Тогда к пакованию блоков ниже требования, её можно поручить пыльной материнке в туалете, а не разводить кучу ферм. Функция будет проще, а значит тупо надёжнее. Вознаграждение бы платилось видимо чуваку наиболее удачно расположенному в топологии инетрнета, который умудряется херачить блоки быстрее всех, что слишком херово и поэтому решили завязаться на proof-of-work? Ну получается почти так же нелепо, потому что китайцы в огромных сараях ставят тонны видеокарт... Ну хорошо, можно было бы выбирать тот блок, который победил в неком конкурсе великого все-сетевого рандома.

4. Я так понял, появление в сети новых биткоинов (по 50 за блок и потом по 25 за блок) совмещено с жизненно важной для сети функцией паковки блоков. Т.е. это как если бы новые рубли в Банке России эмитировались в экономику на основании того, сколько раз повар в столовке Банка России испёк кур. Ну т.е. некая жизненно важная функция, которая делается с трудом и которая бы делалась в любом случае (готовка обедов), как-то логически-нелепо совмещена с генерацией нового бабла.

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

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



Последнее исправление: hlamotron (всего исправлений: 5)
Ответ на: комментарий от Harald

Ты оригинальную пдфку от Сатоши читал?

Ты пришёл объяснить, что ответы на вопросы можно получить другим путём? Спасибо, кеп.

hlamotron
() автор топика

1. Нельзя просто так взять и сформировать блок по формальным правилам с первой попытки, а надо чтобы некий хеш, собранный из хеширования транзакций и заголовка блока содержал вначале некоторое число нулей. Это установлено текущей сложностью в сети. И этот процесс есть майниг. Т.е. паковка блоков (жизненно важная для сети функция) и майнинг неразрывно связаны? Чтобы майнинг осуществлять, крутят nonce, а когда он переполнился - крутят спец-поле в одной из транзакций, перехешируют её и снова крутят nonce в заголовке. Т.е. создатели блоков одновременно являются и майнерами, т.е. проделывателями работы чтобы было proof-of-work?

Да.

2. Я так понял, не все участники обязаны пытаться сформировать блок, но формирование блоков есть жизненная сила сети. Не будет блоков - всё встанет, некуда будет паковать новые транзакции. Собственно, block chain перестанет расти. Т.е. формирование блоков — это необходимая для сети функция, но так как центрального сервака нет — делать её должен «кто-нибудь», за что ему дают награду.

Да.

3. Зачем блок должен быть с «крутым» хешом с нулями в начале, доказывающим что проделана работа, почему бы вместо этого не принимать сформированный с первой попытки блок с любым хешом, просто тот который сформировался раньше всех? Тогда к пакованию блоков ниже требования, её можно поручить пыльной материнке в туалете, а не разводить кучу ферм. Функция будет проще, а значит тупо надёжнее. Вознаграждение бы платилось видимо чуваку наиболее удачно расположенному в топологии инетрнета, который умудряется херачить блоки быстрее всех, что слишком херово и поэтому решили завязаться на proof-of-work? Ну получается почти так же нелепо, потому что китайцы в огромных сараях ставят тонны видеокарт... Ну хорошо, можно было бы выбирать тот блок, который победил в неком конкурсе великого все-сетевого рандома.

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

4. Я так понял, появление в сети новых биткоинов (по 50 за блок и потом по 25 за блок) совмещено с жизненно важной для сети функцией паковки блоков. Т.е. это как если бы новые рубли в Банке России эмитировались в экономику на основании того, сколько раз повар в столовке Банка России испёк кур. Ну т.е. некая жизненно важная функция, которая делается с трудом и которая бы делалась в любом случае (готовка обедов), как-то логически-нелепо совмещена с генерацией нового бабла.

Да.

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

Да. Алгоритм детерминированный, поэтому все участники сети судят о нём одинаково.

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

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

Legioner ★★★★★
()

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

eR ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.