Share this article

Пояснення хеш-функцій Bitcoin

Все, що ви завжди хотіли знати про хешування Bitcoin , але боялися запитати.

Updated Sep 11, 2021, 1:06 p.m. Published Feb 19, 2017, 12:35 p.m.
bitcoin, computer

Кожен, хто цікавиться Bitcoin , колись чув фразу «криптографічна хеш-функція». Але що саме це означає і як це пов’язано з Криптовалюта?

Хеш-функції є важливою частиною не лише протоколу Bitcoin , але й інформаційної безпеки в цілому.

Продовження Нижче
Don't miss another story.Subscribe to the Crypto Daybook Americas Newsletter today. See all newsletters

У наступній статті ми розглянемо кілька простих прикладів того, як вони працюють, а також просту демонстрацію.

Що таке хеш-функція?

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

У більш конкретному прикладі це можна використовувати для взяття послідовності літер будь-який довжина як вхідна інформація – те, що ми називаємо a рядок – і повертає послідовність літер a фіксований довжина. Незалежно від того, чи є вхідний рядок окремою літерою, словом, реченням чи цілим романом, вивід – називається дайджест – завжди буде однакової довжини.

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

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

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

Прості хеш-функції в Python

Ви можете експериментувати з хеш-значеннями за допомогою Python, мови програмування, встановленої в операційних системах Mac і Linux за замовчуванням. (Цей підручник передбачає, що ви використовуєте певну версію OS X або Linux, оскільки використання Python у Windows складніше.)

Спочатку відкрийте термінал, введіть пітон і натисніть ENTER.

Це переведе вас у Python REPL, середовище, де ви можете випробувати команди Python безпосередньо, а не писати програму в окремому файлі.

Потім введіть наступне, натискаючи ENTER після кожного рядка та TAB, де позначено:

import hashlibdef hash(mystring):[TAB] hash_object = hashlib.md5(mystring.encode())[TAB] print(hash_object.hexdigest())[ENTER]

Тепер ви створили функцію, хеш(), який обчислить і роздрукує хеш-значення для заданого рядка за допомогою алгоритму хешування MD5. Щоб запустити його, поставте рядок між дужками в лапках, наприклад:

hash("CoinDesk rocks")

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

Ви побачите, що виклик хеш-функції для того самого рядка завжди генеруватиме той самий хеш, але додавання або зміна ONE символу створюватиме зовсім інше хеш-значення:

hash("CoinDesk rocks") => 7ae26e64679abd1e66cfe1e9b93a9e85hash("CoinDesk rocks!") => 6b1f6fde5ae60b2fe1bfe50677434c88

Хеш-функції в Bitcoin

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

У видобутку Bitcoin вхідними даними для функції є всі останні, ще не підтверджені транзакції (разом з деякими додатковими вхідними даними, пов’язаними з міткою часу та посиланням на попередній блок).

У наведеному вище прикладі коду ми вже бачили, що зміна невеликої частини вхідних даних для хеш-функції призводить до зовсім іншого результату. Ця властивість має вирішальне значення для алгоритму «доказу роботи», який використовується в майнінгу: щоб успішно «вирішити» блок, майнери намагаються об’єднати всі вхідні дані зі своїми власними. довільна частина вхідних даних таким чином, що отриманий хеш починається з певної кількості нулів.

Як базову демонстрацію, ми могли б спробувати «майнінг» за допомогою нашої хеш-функції Python, вручну додавши знаки оклику після «CoinDesk rocks!» поки ми не знайдемо хеш, який починається з одного нуля.

>>> hash("CoinDesk rocks!!")66925f1da83c54354da73d81e013974d>>> hash("CoinDesk rocks!!!")c8de96b4cf781a6373766c668ceac0f0>>> hash("CoinDesk rocks!!!!")9ea367cea6a2cc4a6f5a1d9a334d0d9e>>> hash("CoinDesk rocks!!!!!")b8d43387d98f035e2f0ac49740a5af38>>> hash("CoinDesk rocks!!!!!!")0fe46518541f4739613b9ce29ecea6b6 => ВИРІШЕНО!

Звичайно, розгадуючи хеш для блоку Bitcoin – який на момент написання повинен починатися з 18 нулів – вимагає an надзвичайно великий обсяг обчислень (тому сукупна обчислювальна потужність усіх комп’ютерів у мережі все ще займає приблизно 10 хвилин, щоб вирішити блок).

Саме потреба у такій великій обчислювальній потужності означає, що нові біткойни видобуваються протягом тривалого періоду часу, а не всі відразу.

Щоб заробити біткойни за допомогою майнінгу, вам потрібно докласти величезну кількість роботи, щоб вирішити блок — і, отримавши цю винагороду, ви зафіксуєте всі нові транзакції в блоці, який додається до постійного запису всіх попередніх транзакцій: блокчейн.

Будь-які основи Крипто, які ви хотіли б пояснити далі? Електронна пошта: editors@ CoinDesk.com.

Bitcoin на зображенні клавіатури через Shutterstock

More For You

KuCoin Hits Record Market Share as 2025 Volumes Outpace Crypto Market

16:9 Image

KuCoin captured a record share of centralised exchange volume in 2025, with more than $1.25tn traded as its volumes grew faster than the wider crypto market.

What to know:

  • KuCoin recorded over $1.25 trillion in total trading volume in 2025, equivalent to an average of roughly $114 billion per month, marking its strongest year on record.
  • This performance translated into an all-time high share of centralised exchange volume, as KuCoin’s activity expanded faster than aggregate CEX volumes, which slowed during periods of lower market volatility.
  • Spot and derivatives volumes were evenly split, each exceeding $500 billion for the year, signalling broad-based usage rather than reliance on a single product line.
  • Altcoins accounted for the majority of trading activity, reinforcing KuCoin’s role as a primary liquidity venue beyond BTC and ETH at a time when majors saw more muted turnover.
  • Even as overall crypto volumes softened mid-year, KuCoin maintained elevated baseline activity, indicating structurally higher user engagement rather than short-lived volume spikes.

More For You

Біткоїн застряг біля позначки $88,000, оскільки рекордні ралі золота та срібла демонструють ознаки вичерпання

Bitcoin (BTC) price on Jan. 26 (CoinDesk)

"Золото та срібло впевнено додають капіталізацію ринку, еквівалентну цілому біткоїну за один день," написав один криптоаналітик."

What to know:

  • Біткоїн відійшов від найгірших показників вихідних, але досі залишається близько до мінімуму року на рівні $87,700.
  • Зіткнувшись з тим самим новинним циклом, що й криптовалюти, дорогоцінні метали продовжували зростати, проте швидке відступлення від їхніх максимумів у понеділок свідчило про появу певного виснаження.
  • Аналітики залишаються песимістичними щодо перспектив цін на криптовалюти через загрозу урядового шатдауну, а також затримки у прийнятті Закону про прозорість.