2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 глупые вопросы о блокчейне
Сообщение07.11.2017, 01:18 
Приветствую всех, читающих данный топик. Заинтересовался темой блокчейн и прочитал вот эту статью https://habrahabr.ru/post/114642/. Я не понимаю, зачем нужен хэш заголовка блока, ведь каждый следующий блок ссылается на хэш транзакций предыдущего блока. Еще я был бы благодарен за какие-либо статьи или русскоязычную литературу по блокчейну,где бы подробно и доступно описывались принципы его работы.

 
 
 
 Re: глупые вопросы о блокчейне
Сообщение07.11.2017, 07:37 
inzhenerbezmozgov в сообщении #1262961 писал(а):
Я не понимаю, зачем нужен хэш заголовка блока, ведь каждый следующий блок ссылается на хэш транзакций предыдущего блока
Нет, каждый следующий блок ссылается на хэш заголовка. Именно этот хэш перебирается в процессе майнинга, т.к. необходимо, чтобы процесс вычисления хэша занимал константное время, не зависящее от количества транзакций в блоке.

 
 
 
 Re: глупые вопросы о блокчейне
Сообщение05.05.2018, 22:18 
inzhenerbezmozgov в сообщении #1262961 писал(а):
Приветствую всех, читающих данный топик. Заинтересовался темой блокчейн и прочитал вот эту статью https://habrahabr.ru/post/114642/. Я не понимаю, зачем нужен хэш заголовка блока, ведь каждый следующий блок ссылается на хэш транзакций предыдущего блока. Еще я был бы благодарен за какие-либо статьи или русскоязычную литературу по блокчейну,где бы подробно и доступно описывались принципы его работы.


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

2. Есть блоки, они состоят из транзакций. Когда вы отправляете транзакцию, эта транзакция падает в список не распределенных транзакций и в момент формирования блока добавляется в этот блок (определенным алгоритмом который учитывает время создания транзакции, стоимость комисси и тд., детали в данном контексте не важны).

3. Есть майнинг, суть майнинга найти значение неизвестной переменной функции методом перебора таким образом чтобы это значение было меньше определенной переменной - nonce. Как это происходит - берется хеш от блока (текстовая информация со списком транзакций и прочей тех. информацией) добавляется в блок какое-то значение, сравнивается это значение с nonce, если результат < nonce, профит, если больше то считаем дальше и так до посинения. После того как решение найдено, тот кто нашел это решение сообщает об этом в сеть и все желающие могут проверить подставив ту же самую случайную переменную, что и тот кто отгадал блок. Nonce все время усложняется, таким образом, чтобы в среднем блок отгадывался за 10 минут.

Зачем нужен майнинг, он нужен для решения [url=https://ru.wikipedia.org/wiki/Задача_византийских_генералов]задачи византийских генералов[/url]. Если говорить простым языком, то два участника сети могут отгадать одновременно один и тот же блок. Когда это происходит, то они посылают в p2p сеть информацию о том, что блок разгадан и сеть которая получила эту информацию начинает разгадывать новый блок. Но если блок отгадывается одновременно в разных концах света и сеть не успевает синхронизироваться, то получается что разные участники сети имеют разную последовательность блоков и это продолжается до тех пор пока не будет отгадать следующий блок и тогда принимается более длинная цепочка блоков, а транзакции из отвергнутой цепочки возвращаются в список нераспределенных и добавляются в последующие блоки п2. Такое редко случается, но максимальная длина параллельных цепочек составляла 5 блоков, поэтому считается надежным дождаться 6 подтверждений блоков в случае биткойна.

Что касается криптографии, используется ECDSA для подписи транзакций. Владелец подписывает своим приватным ключом транзакцию и все желающие могут проверить подлинность транзакции используя публичный ключ подписанта.

-- 05.05.2018, 22:32 --

inzhenerbezmozgov в сообщении #1262961 писал(а):
Приветствую всех, читающих данный топик. Заинтересовался темой блокчейн и прочитал вот эту статью https://habrahabr.ru/post/114642/. Я не понимаю, зачем нужен хэш заголовка блока, ведь каждый следующий блок ссылается на хэш транзакций предыдущего блока. Еще я был бы благодарен за какие-либо статьи или русскоязычную литературу по блокчейну,где бы подробно и доступно описывались принципы его работы.


Отвечая на ваш вопрос явным образом - хеш в блоке нужен для формирования цепочки блоков, чтобы исключить возможность двойной траты, потому что один и тот же пользователь в разные части сети может послать одну и ту же транзакцию, но как ни крути транзакция примется сетью 1 раз ввиду описанной выше механики.

 
 
 [ Сообщений: 3 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group