Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Огляд Хешування | Блоки та Транзакції
Quizzes & Challenges
Quizzes
Challenges
/
Вступ до блокчейну

bookОгляд Хешування

Хешування та хеші блоків згадувалися кілька разів, але саму концепцію ще не було розглянуто детально. Настав час зрозуміти, що таке хешування.

Note
Дізнайтеся більше

Хешування — це процес, який приймає вхідні дані та створює рядок байтів фіксованого розміру, зазвичай представлений у шістнадцятковому форматі. Вихідний результат, відомий як хеш, виглядає випадковим і повністю змінюється при будь-якій зміні вхідних даних — ця властивість називається «ефект лавини».

Властивості хеш-функцій

У блокчейні хеш-функції використовуються для:

  • Захисту транзакцій шляхом створення унікального відбитка для кожної;
  • Генерації адрес із публічних ключів;
  • Створення зв'язків у блокчейні за допомогою хешів блоків.

З огляду на це, хороша хеш-функція для блокчейну має кілька ключових властивостей:

Хешування, особливо із застосуванням якісної хеш-функції, можна порівняти з приготуванням смузі. Розгляньмо наступну ілюстрацію:

Насправді, можливо знайти початкове значення за хешем, однак це займе надто багато часу, щоб бути практично здійсненним.

Хешування блоку

Для отримання хешу певного блоку Bitcoin використовує хеш-функцію SHA-256, яка повертає 256-бітний (32-байтовий) хеш. Вона належить до сімейства SHA-2, розробленого Агентством національної безпеки США (NSA), і відома своїми високими показниками безпеки, що забезпечує стійкість до колізій, атак на прообраз та інших криптографічних вразливостей.

Хеш блоку Bitcoin обчислюється шляхом використання даних заголовка блоку. Ці дані двічі подаються на вхід хеш-функції SHA-256 у процесі, який називається подвійним SHA-256.

Ось ілюстрація для кращого розуміння:

Отриманий 256-бітний хеш повинен відповідати певним критеріям, визначеним цільовим рівнем складності мережі. Якщо хеш не менший за цільове значення, nonce змінюється, і хеш обчислюється повторно, доки не буде знайдено відповідний хеш. Цей фінальний хеш є унікальним ідентифікатором блоку.

Корінь Меркла

Корінь Меркла — це єдиний хеш, який представляє всі транзакції, включені до блоку. Його обчислення починається з хешів кожної окремої транзакції, використовуючи подвійний SHA-256.

Далі кожен хеш транзакції поєднується з іншим, і пара хешується разом для отримання нового хешу. Цей процес поєднання та хешування триває шар за шаром, доки не залишиться лише один хеш. Останній хеш — це корінь Меркла, який охоплює весь набір транзакцій і забезпечує їх цілісність, кодувавши їх в одне значення. Така ієрархічна структура називається деревом Меркла.

Наступний приклад ілюструє, як формується дерево Меркла:

Як видно, наш блок містить 6 транзакцій (кожна позначена як Tx), і шляхом хешування та поєднання нових хешів обчислюється корінь Меркла.

Note
Примітка

Коли правий хеш не має пари, як у випадку з Hash56 у нашому прикладі, цей останній хеш дублюється для створення пари. Такий підхід зберігає цілісність і ефективність структури дерева Меркла навіть при непарній кількості транзакцій або хешів на певному етапі.

question mark

Який розмір вихідних даних хеш-функції SHA-256, що використовується у блокчейні Bitcoin?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 4

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Suggested prompts:

Can you explain more about how the Merkle tree structure works?

What is the purpose of the nonce in block hashing?

How does double SHA-256 improve security in Bitcoin?

Awesome!

Completion rate improved to 6.25

bookОгляд Хешування

Свайпніть щоб показати меню

Хешування та хеші блоків згадувалися кілька разів, але саму концепцію ще не було розглянуто детально. Настав час зрозуміти, що таке хешування.

Note
Дізнайтеся більше

Хешування — це процес, який приймає вхідні дані та створює рядок байтів фіксованого розміру, зазвичай представлений у шістнадцятковому форматі. Вихідний результат, відомий як хеш, виглядає випадковим і повністю змінюється при будь-якій зміні вхідних даних — ця властивість називається «ефект лавини».

Властивості хеш-функцій

У блокчейні хеш-функції використовуються для:

  • Захисту транзакцій шляхом створення унікального відбитка для кожної;
  • Генерації адрес із публічних ключів;
  • Створення зв'язків у блокчейні за допомогою хешів блоків.

З огляду на це, хороша хеш-функція для блокчейну має кілька ключових властивостей:

Хешування, особливо із застосуванням якісної хеш-функції, можна порівняти з приготуванням смузі. Розгляньмо наступну ілюстрацію:

Насправді, можливо знайти початкове значення за хешем, однак це займе надто багато часу, щоб бути практично здійсненним.

Хешування блоку

Для отримання хешу певного блоку Bitcoin використовує хеш-функцію SHA-256, яка повертає 256-бітний (32-байтовий) хеш. Вона належить до сімейства SHA-2, розробленого Агентством національної безпеки США (NSA), і відома своїми високими показниками безпеки, що забезпечує стійкість до колізій, атак на прообраз та інших криптографічних вразливостей.

Хеш блоку Bitcoin обчислюється шляхом використання даних заголовка блоку. Ці дані двічі подаються на вхід хеш-функції SHA-256 у процесі, який називається подвійним SHA-256.

Ось ілюстрація для кращого розуміння:

Отриманий 256-бітний хеш повинен відповідати певним критеріям, визначеним цільовим рівнем складності мережі. Якщо хеш не менший за цільове значення, nonce змінюється, і хеш обчислюється повторно, доки не буде знайдено відповідний хеш. Цей фінальний хеш є унікальним ідентифікатором блоку.

Корінь Меркла

Корінь Меркла — це єдиний хеш, який представляє всі транзакції, включені до блоку. Його обчислення починається з хешів кожної окремої транзакції, використовуючи подвійний SHA-256.

Далі кожен хеш транзакції поєднується з іншим, і пара хешується разом для отримання нового хешу. Цей процес поєднання та хешування триває шар за шаром, доки не залишиться лише один хеш. Останній хеш — це корінь Меркла, який охоплює весь набір транзакцій і забезпечує їх цілісність, кодувавши їх в одне значення. Така ієрархічна структура називається деревом Меркла.

Наступний приклад ілюструє, як формується дерево Меркла:

Як видно, наш блок містить 6 транзакцій (кожна позначена як Tx), і шляхом хешування та поєднання нових хешів обчислюється корінь Меркла.

Note
Примітка

Коли правий хеш не має пари, як у випадку з Hash56 у нашому прикладі, цей останній хеш дублюється для створення пари. Такий підхід зберігає цілісність і ефективність структури дерева Меркла навіть при непарній кількості транзакцій або хешів на певному етапі.

question mark

Який розмір вихідних даних хеш-функції SHA-256, що використовується у блокчейні Bitcoin?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 4
some-alt