Author

Topic: Вопрос по механизмам блокчейна (Read 144 times)

jr. member
Activity: 58
Merit: 13
Доброго времени суток.

Изучая матчасть, особенно что касается блокчейна... возникла пара вопросов.

1) Что конкретно подбирают подбирают майнеры? Т.е согласно матчасти для того что бы блок был включен в цепочку должна быть решена математическая задача которой является хеш id блока+транзакции+некое слово. 

Окей есть некий хеш.  Он же задача. Насколько я понял майнеры по факту почти брутфорсят некоторые значения. Я думал что идет подбор "некого слова" что бы получить тот же хеш что и в задаче. Т.е угадали слово забирайте ревард. Но похоже я ошибался.

Собсно более детализированный вопрос. Если хеш это задача, то что является ответом на неё и что конкретно перебирают майнеры?

Майнеры подбирают 32-х битное число "nonce", такое, чтобы хэш от блока+nonce был меньше конкретного значения, которое зависит от сложности в данный момент.  Вот и вся задача. И решается она не "почти", а самым настоящим брутфорсом.


2) В матчасти из разных источников, описывается пример с двойной тратой.

Т.е А пересылает битки B, и пока блок не добавлен в цепочку А пересылает те же битки самому себе. Насколько я понял в примере показано Что создавая транзакции можно указать тот же самый input со ссылкой ну туже транзакцию что в Input-e транзакции перевода А->B

Далее как я понял если Блок с транзакцией A->A будет добавлен в цепочку раньше то Блок с транзакций A->B будет считаться недействительным так как ссылается на израсходованную транзакцию...

И собственно для этого добавлена задача которая решается 10 минут...

Собсно чего я не понял... В примере указано что А->A должен самостоятельно решать задачу для того что бы блок был добавлен в сеть. Когда A->B решается вычислительной мощностью комьюнити. Сфига? Почему комьюнити не может решить A->A раньше чем A->B даже если он позже отправлен.

Может, если майнер каким-то образом (например - ты сам майнер) получил транзакцию A->A раньше, чем A->B, тогда он ее и включит в блок, а A->B отбросит. 

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

В общем я поплыл чутка, прошу подсказать.


Скорее всего второй участник сделки вообще не увидит транзакцию A->B, а если его клиент и засечет ее раньше, то после включения в блок A->A, A->B окажется невалидной.

newbie
Activity: 14
Merit: 0
Доброго времени суток.

Изучая матчасть, особенно что касается блокчейна... возникла пара вопросов.

1) Что конкретно подбирают подбирают майнеры? Т.е согласно матчасти для того что бы блок был включен в цепочку должна быть решена математическая задача которой является хеш id блока+транзакции+некое слово.  

Окей есть некий хеш.  Он же задача. Насколько я понял майнеры по факту почти брутфорсят некоторые значения. Я думал что идет подбор "некого слова" что бы получить тот же хеш что и в задаче. Т.е угадали слово забирайте ревард. Но похоже я ошибался.

Собсно более детализированный вопрос. Если хеш это задача, то что является ответом на неё и что конкретно перебирают майнеры?

2) В матчасти из разных источников, описывается пример с двойной тратой.

Т.е А пересылает битки B, и пока блок не добавлен в цепочку А пересылает те же битки самому себе. Насколько я понял в примере показано Что создавая транзакции можно указать тот же самый input со ссылкой ну туже транзакцию что в Input-e транзакции перевода А->B

Далее как я понял если Блок с транзакцией A->A будет добавлен в цепочку раньше то Блок с транзакций A->B будет считаться недействительным так как ссылается на израсходованную транзакцию...

И собственно для этого добавлена задача которая решается 10 минут...

Собсно чего я не понял... В примере указано что А->A должен самостоятельно решать задачу для того что бы блок был добавлен в сеть. Когда A->B решается вычислительной мощностью комьюнити. Сфига? Почему комьюнити не может решить A->A раньше чем A->B даже если он позже отправлен.

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

В общем я поплыл чутка, прошу подсказать.
Jump to: