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 ★★★★★
()
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.