Satoshi, скорочено sat, — одна стомільйонна частина біткоїна: 1 sat = 0,00000001 BTC. Це найменша одиниця вартості, яку записують у транзакціях базового рівня Bitcoin. Satoshi не є іншою криптовалютою. Ту саму суму можна виразити в BTC або цілих satoshi, як довжину в метрах чи сантиметрах.
Анна має заплатити 25000 sat, але її гаманець показує 0,00025 BTC. Це не інші гроші й не вигідніший курс, а два записи тієї самої суми. Співвідношення незмінне: 1 BTC = 100000000 sat, отже 0,001 BTC = 100000 sat. Для невеликих повсякденних сум sats часто зрозуміліші за низку нулів після коми. Курс біткоїна до гривні чи долара може змінюватися; перерахунок між BTC і sat від цього не зміниться. [1] [2]
Коли Анна обирає sats у налаштуваннях, її біткоїни нікуди не переміщуються й нові монети не з'являються. Змінюються лише число та одиниця на екрані. sat позначає одиницю, а sats часто використовують як множину. Назва вшановує Satoshi Nakamoto, творця Bitcoin, а не окремий актив, який треба купувати додатково. Менша одиниця спрощує опис дрібних сум. Вона не гарантує сталої купівельної спроможності чи прибутку. [2]
Припустімо, гаманець Анни використовує попереднє надходження 50000 sat. Одержувачу надсилає 25000 sat, Анні повертає 24000 sat, а 1000 sat залишає як комісію майнеру, який включить транзакцію до блоку. Сума сходиться: 50000 = 25000 + 24000 + 1000. Отже, Анна витратила на платіж 26000 sat, а не все використане надходження. Це приклад, а не звичайний чи рекомендований розмір комісії. Перед підтвердженням перевіряйте суму одержувачу та комісію окремо. [8]
Поряд із комісією гаманець може показувати Fee Rate — ставку в sat/vB. Це кількість satoshi за віртуальний байт, одиницю розміру транзакції для розрахунку комісій. За розміру 100 vB і ставки 10 sat/vB комісія становить 1000 sat. Ставка не є відсотком від переказаних грошей. Два платежі однакової вартості можуть мати різний розмір, наприклад якщо один об'єднує більше попередніх надходжень. Тому перевіряйте результат у фінальному підсумку гаманця. [7] [8]
Числа без одиниці недостатньо. Значення 25000 у полі для sats означає зовсім не те саме, що в полі для BTC. Після сканування платіжного QR-коду перевірте адресу, мережу, суму й комісію перед підписанням. Підпис — це цифровий дозвіл витратити кошти: гаманець створює його за допомогою приватного ключа, секретного значення, що дає змогу керувати біткоїнами. За специфікацією платіжних посилань BIP 321 параметр amount у платіжному посиланні використовує десятковий запис BTC із крапкою: amount=0.00025 означає 25000 sat. Це так і тоді, коли гаманець показує sats або місцеву десяткову кому. Редагувати посилання вручну не потрібно; важливий правильний результат на екрані підтвердження. [3]
У мережі немає маленьких файлів, які представляють окремі satoshi. Є виходи транзакцій із сумою та умовами її витрачання. Ще не витрачений вихід називають UTXO. Гаманець може мати кілька таких надходжень і скласти їхню вартість у загальний баланс. Під час платежу він витрачає вибрані виходи цілком і створює нові для одержувача та можливої решти. Satoshi — одиниця обліку цих сум, а не окремий предмет у гаманці. [2]
Точність суми й практичний розмір платежу — різні речі. Вихід може містити 1 sat. Проте вузли, тобто комп’ютери, які перевіряють і передають транзакції, можуть відмовитися поширювати транзакцію, що створює надто малий вихід. Dust стосується правил поширення транзакцій вузлом та оцінки майбутньої вартості витрачання. Поріг залежить також від типу виходу й налаштувань правил. Це не загальна вимога однакового мінімуму для кожного дійсного платежу. Навіть малий вихід, який уже потрапив у блок, може коштувати дорожче витратити, ніж він сам вартий. [7]
Lightning Network використовує платіжні канали, у яких учасники оновлюють розподіл коштів, внесених до каналу. Тому кожен платіж не потрібно окремо записувати до блоку Bitcoin. Внутрішні обчислення також використовують millisatoshi, скорочено msat: 1 sat = 1000 msat. Це корисно, наприклад, для точнішого нарахування комісій. Але на базовому рівні не виникає виходу з дробовою частиною satoshi. Під час закриття каналів правила Lightning переводять суми в цілі satoshi й пропускають деякі надто малі виходи. Точніший внутрішній облік і кінцевий розрахунок — різні речі. [6] [5]
Поділ одного BTC на сто мільйонів частин не збільшує кількість біткоїнів, як перерахунок метрів у сантиметри не подовжує стіл. Нові біткоїни створюються за правилами блокової субсидії — нової емісії, пов'язаної з блоком. Під час Halving ця субсидія ділиться навпіл у цілих satoshi; дробові частини відкидаються, аж доки у віддаленому майбутньому результат не стане нульовим. Технічна константа MAX_MONEY слугує контрольною межею сум. Сама вона не означає, що рівно 21 мільйон BTC буде випущено й доступно для витрачання. Втрачені ключі та деякі непридатні або неотримані винагороди також зменшують доступність. [1] [8]
Bitcoin Core використовує для сум CAmount — 64-бітовий цілий тип — і константу COIN зі значенням 100000000. Тому 0,00025 BTC всередині обробляється як ціле число 25000. Це допомагає уникати похибок звичайної двійкової арифметики з рухомою комою, або floating point. Для користувача висновок простий: перевіряйте одиницю й точну суму. Якщо створюєте калькулятор або програмно обробляєте платежі, використовуйте цілі satoshi чи точну десяткову арифметику, а не подальше округлення приблизного результату. [1]
Для повної картини прочитайте також Bitcoin, 21 Million, Unit of Account, Lightning Network, UTXO, Transaction Fees. На цю статтю також посилаються Bitcoin Pizza Day, Chaumian eCash, Blind Signature, OP_CHECKTEMPLATEVERIFY.