2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 глупые вопросы о блокчейне
Сообщение07.11.2017, 01:18 


04/08/17
64
МГТУ им. Н.Э. Баумана
Приветствую всех, читающих данный топик. Заинтересовался темой блокчейн и прочитал вот эту статью https://habrahabr.ru/post/114642/. Я не понимаю, зачем нужен хэш заголовка блока, ведь каждый следующий блок ссылается на хэш транзакций предыдущего блока. Еще я был бы благодарен за какие-либо статьи или русскоязычную литературу по блокчейну,где бы подробно и доступно описывались принципы его работы.

 Профиль  
                  
 
 Re: глупые вопросы о блокчейне
Сообщение07.11.2017, 07:37 


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

 Профиль  
                  
 
 Re: глупые вопросы о блокчейне
Сообщение05.05.2018, 22:18 


05/05/18

3
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 ] 

Модераторы: Karan, maxal, Toucan, PAV, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group