Первая страница
Наша команда
Контакты
О нас

    Головна сторінка



1. Что такое bitcoin

1. Что такое bitcoin




Сторінка2/8
Дата конвертації19.04.2017
Розмір0.96 Mb.
1   2   3   4   5   6   7   8

3. Математическая модель происхождения процесса

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

Асиметричні криптосистеми - ефективні системи криптографічного захисту даних, які також називають криптосистемами з відкритим ключем. В таких системах для зашифровування даних використовують один ключ, а для розшифровування - інший (звідси і назва - асиметричні).

Отримувач може перевірити підписи перевіривши ланцюжок володіння.



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





Proof of work (надалі PoW) - це частина інформації, яку було складно призвести для задоволення певних умов.

Орга́зм (з грец. οργασμός оргазмос, від орган - «набухати», «мати хіть») - це фізіологічний стан, що виникає в момент завершення статевого акту чи інших сурогатних форм сексуальної активності та характеризується відчуттям найбільшого сексуального піднесення, поєднаного з відчуттям насолоди.

Перевірка ж цієї інформації має бути максимально проста. Призначення proof-of-work - перевірити, що обчислення дійсно були здійснені при створенні нового блоку.

Програмування - процес проектування, написання, тестування, зневадження і підтримки комп'ютерних програм. Програмування поєднує в собі елементи інженерії (існує навіть відповідна спеціальна галузь інженерії - програмна інженерія (англ. software engineering)





Hashcash функція використовується в Bitcoin для створення блоків. PoW, яке прив'язане до вмісту блоку, необхідно для прийняття блоку системою. Складність цього завдання варіюється для контролю частоти знаходження блоків. Система запрограмована таким чином, що б частота знаходження блоків, в середньому, становила 1 блок в 10 хвилин.

З причини того, що процес знаходження блоку вельми випадковий, неможливо з точністю передбачити який Bitcoin-worker (майнер) вирішить завдання і знайде блок. Для того, що б система визнала блок істинним необхідно, щоб його hash становив значення менше в порівнянні з поточною метою (target). Таким чином, кожен блок показує, що була пророблена певна робота з його знаходженню.

Кожен блок містить хеш попереднього блоку, утворюючи ланцюг. Змінити блок неможливо - можливо лише створити блок на тій же висоті, який міститиме в собі hash попереднього блоку. Для проведення такого процесу необхідно проробити роботу по знаходженню всіх попередніх блоків. Висока складність цього процесу захищає ланцюжок блоків (block chain) від несанкціонованого доступу та атак типу double-spending.

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



Для полегшення економії дискового простору, не порушуючи хеш блоку, угоди хешуються в Merkle Tree, і тільки корінь включений в хеш блоку. Старі блоки можуть бути ущільнені. Внутрішні хеш не потрібно зберігати.

Можна перевірити платежі без використання повного мережевого вузла. Користувачеві потрібно лише зберегти копію заголовків блоків найдовшого proof-of-work ланцюга, яку він може отримати, запитавши мережеві вузли, поки він не переконаний, що він має найдовший ланцюжок, і отримати гілку Меркле.




4. Для чего это надо, как это работает

Нові біткоіни генеруються через процес «Майнінг». У ході процесу, який схожий на постійний розіграш лотереї, вузли мережі нагороджуються біткоін кожен раз, коли вони знаходять вирішення певної математичної задачі (і тим самим створюють новий блок).

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

Створення блоку є доказом роботи, а складність цього процесу змінюється з ростом мережі. Нагорода за створення блоку регулюється автоматично, щоб, в ідеалі, за кожні чотири роки роботи мережі створювалася половина біткоінів, створених за попередні чотири роки. За перші 4 роки (з січня 2009 року по листопад 2012 року) було створено (приблизно) 10,499,889.80231183 біткоінів. Кожні чотири роки ця сума буде ділитися надвоє, вона дорівнюватиме 5,250,000 протягом наступних чотирьох років, потім 2,625,000 і так далі. Таким чином, загальне число біткоінів ніколи не перевищить 20,999,839.77085749 [1].

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

Дублюва́ння, дубльо́ваний пере́клад або дубля́ж (від фр. double «подвійний») - вид перекладу фільмів, мультфільмів та серіалів, за якого відбувається повна заміна оригінального мовлення на іншу мову з метою транслювання фільму в країнах, у котрих не користуються мовою, якою говорять персонажі аудіовізуального твору.

Тради́ція - досвід, звичаї, погляди, смаки, норми поведінки і т. ін., що склалися історично і передаються з покоління в покоління; звичайна, прийнята норма, манера поведінки, усталені погляди, переконання когось; узвичаєння, узвичаєність, неписаний закон.

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

Електро́нні гро́ші (також відомі як e-money, e-гроші, електронна готівка, електронні обміни, цифрові гроші, цифрова готівка чи цифрові обміни) - означення грошей чи фінансових зобов'язань, обмін та взаєморозрахунки з яких проводяться за допомогою інформаційних технологій.

Вони не знеціняться через політику Центробанку нашої країни або будь-який інший, як це було недавно з доларом, євро і в 90-х роках з рублем, так як всі транзакції відбуваються без емісійного центру [2].

Переваги Bitcoin-платежів



  1. Неможливість шахрайства з боку покупця. Оскільки всі транзакції в Bitcoin є незворотними, покупець не зможе отримати товар і запросити гроші назад, як, наприклад, у випадку з PayPal. Таким чином, продавцю не потрібно піклуватися про те, щоб убезпечити себе від дій зловмисників.

  2. Низька комісія. Біткоін-транзакції володіють одними з найбільш низьких комісій. При прийомі платежів без використання посередників, комісія за транзакцію може бути нульовою (втім, така транзакція буде оброблятися трохи довше).

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

    Посере́дник: Особа чи установа, організація і т. ін., що сприяє встановленню та здійсненню ділових контактів, торговельних або дипломатичних зносин між ким-, чим-небудь. // Те, що виступає проміжною ланкою у взаємодії між чим-небудь або в процесі перетворення чогось.

    При використанні таких платіжних агрегаторів, як BitPay комісія складає всього 1%, або $ 30 на місяць (на вибір продавця). Така низька комісія є більш привабливою, ніж у класичних платіжних систем з комісією від 3% до 5%.

  3. Легкість установки. Платіжні агрегатори, такі як Blockchain.info і BitPay, вкрай прості у використанні і першій установці.

Недоліки Bitcoin-платежів:

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

    Ціноутво́рення - процес встановлення і розробки ціни на товари та послуги (цінності).

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

    Фіна́нсове планува́ння - це один з елементів діяльності, пов'язаної з управлінням фінансами, складова частина всього народногосподарського планування.

    Тим не менш, деякі платіжні агрегатори (наприклад, BitPay) дозволяють продавцям отримувати на рахунок відразу ж фіатну валюту (наприклад, USD), в яку сервіс конвертує біткоін прямо в момент оплати. У цьому випадку продавець взагалі ніколи не матиме bitcoin-коштів на своїх гаманцях.

  2. Волатильність попиту на Bitcoin. Різкі скачки ціни також призводять до того, що споживач може зменшувати витрати біткоін (у разі, якщо ціна біткоіни зростає), або ж навпаки, почати витрачати більше (якщо ціна падає). Таким чином, активність покупців, що оплачують біткоін, може залежати від поточної динаміки курсу. Проте, навіть при різких скачках вгору і вниз споживачеві все одно так чи інакше продовжують платити біткоін [3].

Блоки видобуваються в середньому кожні 10 хвилин, і протягом перших чотирьох років (210,000 блоків) кожен блок містив 50 нових біткоіни. Так як кількість обчислювальної техніки, яка у Майнінг, збільшується, складність створення нових біткоін зростає.

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

Електро́нна обчи́слювальна маши́на (скорочено ЕОМ) - загальна назва для обчислювальних машин, що є електронними (починаючи з перших лампових машин, включаючи напівпровідникові тощо) на відміну від електромеханічних (на електричних реле тощо) та механічних обчислювальних машин.

Цей фактор складності розраховується кожні 2016 блоків, він заснований на часі, який знадобився для створення попередніх 2016 блоків.

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

При́стрій (англ. device, appliance, нім. Vorrichtung f, Einrichtung f) - обладнання, конструктивно завершена технічна система, що має певне функціональне призначення і за допомогою якої виконується яка-небудь робота або спрощується, полегшується певний процес.

Криптогра́фія (від грецького kryptós - прихований і gráphein - писати) - наука про математичні методи забезпечення конфіденційності, цілісності і автентичності інформації. Розвинулась з практичної потреби передавати важливі відомості найнадійнішим чином.

Криптографі́чний протоко́л (англ. Cryptographic protocol) - це абстрактний чи конкретний протокол, що включає набір криптографічних алгоритмів. В основі протоколу лежить набір правил, що регламентують використання криптографічних перетворень та алгоритмів в інформаційних процесах.

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

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

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

Результат, пі́дсумок, (заст. ску́ток, вислід) - кінцевий наслідок послідовності дій. Можливі результати містять перевагу, незручність, вигоду, збитки, цінність і перемогу. Результат є етапом діяльності, коли визначено наявність переходу якості в кількість і кількості в якість.



Людина, яка буде платити вам генерує транзакцію. Давайте поглянемо на дані з реальної угоди передавальної 0.31900000 біткоіни. Нижче показані майже необроблені дані. Вони змінені в трьох моментах: (1) дані були перетворені з послідовної форми в паралельну (deserialized); (2) номери рядків, які були додані, для зручності користування; і (3) я скоротив різні хеши і відкриті ключі, просто відображаючи перші шість шістнадцяткових цифр кожного, коли насправді вони набагато довші. Ось дані:

  1. {«hash»:«7c4025…»,

  2. «ver»:1,

  3. «vin_sz»:1,

  4. «vout_sz»:1,

  5. «lock_time»:0,

  6. «size»:224,

  7. «in»:[

  8. {«prev_out»:

  9. {«hash»:«2007ae…»,

  10. «n»:0},

  11. «scriptSig»:«304502… 042b2d…»}],

  12. «out»:[

  13. {«value»:«0.31900000»,

  14. «scriptPubKey»:«OP_DUP OP_HASH160 a7db6f OP_EQUALVERIFY OP_CHECKSIG»}]}

Давайте пройдемося рядок за рядком.

  • Рядок 1 містить хеш частини угоди, яка залишилась, 7c4025 ..., виражене в шістнадцятковому вигляді. Це використовується в якості ідентифікатора транзакції.

    Ідентифіка́тор (identifier) - 1. Ознака, яка служить для ідентифікації особи чи предмета, що розпізнається. // Захисна ознака для встановлення справжності банкноти чи цінного папера.



  • Рядок 2 говорить нам, що це угода у версії 1 протоколу біткоін.

  • Рядки 3 та 4 кажуть нам, що операція має один введення і один висновок, відповідно.

  • Рядок 5 містить значення lock_time, яке може бути використане для контролю, коли транзакція буде завершена. Для більшості транзакцій біткоін сьогодні lock_time встановлений в 0, це означає, що транзакція негайно завершена.

  • Рядок 6 говорить нам розмір (в байтах) угоди. Зверніть увагу, що це не грошова сума передається!

  • Рядки з 7 по 11 визначають ввідні біткоіни до операції. Зокрема, рядки з 8 по 10 говорять нам, що введення пивнно бути взяте з виведення з попередньої угоди з відповідною хеш-сумою, яка виражається в шістнадцятковому форматі як 2007ae .... n = 0 говорить нам про те, що це буде перший вивід з тієї транзакції. Рядок 11 містить підпис особи, що передає гроші - 304 502 ..., потім пробіл, а потім відповідний відкритий ключ-04b2d .... Знову ж в шістнадцятковому форматі. Єдине, що слід відзначити про введення, так це відсутність точної вказівки скільки біткоінів від попередньої транзакції повинні бути витрачені в цій транзакції.

    Театральна лабораторія «ВідСутність» - зразковий художній колектив заснований в 2010 році за ініціативи Юрія Паскара в місті Рівне. Діє на базі Рівненського міського Палацу дітей та молоді.

    Насправді, всі біткоіни від n = 0-го виведення попередньої транзакції витрачені. Так, наприклад, якщо n = 0-й вивід з попередньої операції склав 2 біткоіни, то 2 біткоіни будуть витрачені в цій транзакції. Це здається незручним обмеженням - все одно, що намагатися купити хліб з купюрою в 20 доларів, і не в змозі розбити на дрібні банкноти. Рішення, звичайно, повинна мати механізм для отримання здачі. Це можна зробити за допомогою транзакцій з кількома вводами і висновками.

  • Рядки з 12 по 14 визначають вивід біткоіни з угоди. Зокрема, рядок 13 говорить нам значення виводу: 0,319 біткоін. Рядок 14 є досить складним процесом. Важливо відзначити, що значення a7db6f ... є біткоін-адресою передбачуваного одержувача коштів (написаний в шістнадцятковому форматі). Насправді, строка 14 ні що інше як відображення мови сценаріїв біткоін.

Звідки беруться серійні номери біткоіни? Насправді, роль серійного номера грає хеш-сума транзакцій. У наведеній вище транзакції, наприклад, одержувач отримує 0,319 біткоін, які приходять з першого виводу попередньої операції з хеш-сумою 2007ae ... (рядок 9). Якщо ви йдете і дивитесь в ланцюжок блоку для цієї транзакції, ви побачите, що його висновок надходить з ще більш ранньої угоди. І так далі.

Є дві розумні речі в тому, щоб використовувати хеш-суми транзакцій замість серійних номерів. По-перше, в біткоіни зовсім немає дійсно ніяких окремих, постійних (віртуальних) «монет». Має місце просто довга серія угод у ланцюжку блоків. Це розумна ідея, щоб зрозуміти, що вам не потрібні монети, і можна просто обійтися книгою угод. По-друге, при роботі таким чином ми прибираємо необхідність будь-якого центрального органу, який видає серійні номери. Замість цього, серійні номери можуть бути генеровані автоматично, лише шляхом хешування угоди.

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


  1. Перша можливість виникне, коли ви прийдете до самої першої транзакції біткоінів, що міститься в так званому Початковому блоці (Genesis block). Це особлива транзакція, яка не має вводів, а тільки виведення в 50 біткоін. Іншими словами, ця угода встановлює первинну грошову масу. Початковий блок звертається окремо клієнтами (програмами) мережі біткоін.

  2. Друга можливість буде, коли ви підете по ланцюжку угод назад у часі, то в кінцевому підсумку ви прибудете до так званої базової транзакції (coinbase transaction). За винятком Початкового блоку, кожен блок операцій в ланцюжку блоків починається зі спеціальною базової транзакції. Це угода - нагородження Майнера, який перевірить цей блок операцій. Він використовує аналогічний, але не ідентичний формат транзакції, представленої вище.

    Анало́гія - (грец. αναλογια - «відповідність») - подібність, схожість у цілому відмінних предметів, явищ за певними властивостями, ознаками або відношеннями.



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

Абревіатура (лат. abbrevio - скорочую) - складноскорочені слова, похідне слово, що виникає внаслідок абревіації - утворення з перших літер або з інших частин слів, що входять до складу назви чи поняття.

Програміст, також програмник[Джерело?] - фахівець, що займається програмуванням, виконує розробку програмного забезпечення (в простіших випадках - окремих програм) для програмованих пристроїв, які, як правило містять один чи більше CPU.


Операції з кількома входами і виходами

На практиці, часто дуже зручно створити біткоін транзакцію з кількома вводами або декількома виведеннями. Поглянемо на дані фактичної угоди:



  1. . {«hash»:«993830…»,

  2. «ver»:1,

  3. «vin_sz»:3,

  4. «vout_sz»:2,

  5. «lock_time»:0,

  6. «size»:552,

  7. «in»:[

  8. {«prev_out»:{

  9. «hash»:«3beabc…»,

  10. «n»:0},

  11. «scriptSig»:«304402… 04c7d2…»},

  12. {«prev_out»:{

  13. «hash»:«fdae9b…»,

  14. «n»:0},

  15. «scriptSig»:«304502… 026e15…»},

  16. {«prev_out»:{

  17. «hash»:«20c86b…»,

  18. «n»:1},

  19. «scriptSig»:«304402… 038a52…»}],

  20. «out»:[

  21. {«value»:«0.01068000»,

  22. «scriptPubKey»:«OP_DUP OP_HASH160 e8c306… OP_EQUALVERIFY OP_CHECKSIG»},

  23. {«value»:«4.00000000»,

  24. «scriptPubKey»:«OP_DUP OP_HASH160 d644e3… OP_EQUALVERIFY OP_CHECKSIG»}]}

Це дуже схоже на транзакцію з одним введенням і одним висновком:

  • Рядок 1 містить хеш решти частини транзакції.

    Вве́дення у храм Пресвято́ї Ді́ви Марії́ - велике християнське богородичне свято. Святкується 21 листопада за юліанським календарем, 4 грудня - за григоріанським.

    Це використовується в якості ідентифікатора транзакції.

  • Рядок 2 говорить нам, що це угода версії 1 протоколу біткоін.

  • Рядки 3 та 4 кажуть нам, що операція має три введення і два виведення, відповідно.

  • Рядок 5 містить lock_time. Як і у випадку з одним введенням і одним виведення значення дорівнює 0, що означає, що транзакція негайно завершена.

  • Рядок 6 говорить нам розмір угоди в байтах.

  • Рядки з 7 по 19 визначають список вводів до угоди. Кожен відповідає виведенням з попередньої угоди біткоін.

  • Перше введення визначається в рядках з 8 до 11. Зокрема, рядки з 8 по 10 говорять нам, що введення повинен бути взятий від n = 0-го виведення з угоди з значенням хеша 3beabc .... Рядок 11 містить підпис, потім пробіл, а потім відкритий ключ відправника біткоін.

  • Рядки 12 по 15 визначають друге введення в форматі подібно до рядків з 8 по 11. І рядки з 16 по 19 визначають третє введення.

  • Рядки з 20 по 24 визначають список, що містить два виведення з угоди. Перший вивід визначається в рядках 21 і 22. Рядок 21 говорить нам значення виведення в 0,01068000 біткоін. Як і колись, рядок 22 є вираженням скриптової мови біткоін. Головне, на що варто тут звернути увагу, рядок e8c30622 ... є біткоін адресою передбачуваного одержувача коштів.

  • Друге виведення визначається в рядках 23 і 24 у формі подібно до першого висновку.

Одна очевидна дивина в цьому описі в тому, що хоча кожен вивід має зазначення суми в біткоінів, пов'язаної з ним, в введенях такого немає. Звичайно, значення відповідних введень можна знайти, звернувшись до відповідних виведень в попередніх угодах. У стандартній операції біткоін, сума всіх вводів у транзакції повинна бути принаймні стільки, скільки сума всіх виведень. (Єдиний виняток з цього принципу є Початковий блок і базові угоди (coinbase), обидва формують нову пропозицію в мережі біткоін.

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

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

Вони досить проста варіація транзакцій з одним введенням і одним висновком.



Одне хороше застосування таких транзакцій є ідея здачі. Припустимо, наприклад, що я хочу послати вам 0,15 біткоін. Я можу зробити це, надіславши вам гроші з попередньої угоди, в якій я отримав 0,2 біткоін. Звичайно, я не хочу відправити вам всі 0,2 біткоін. Рішення буде відправити вам 0,15 біткоін, і направити 0,05 біткоін на свій біткоін-адрес, який належить мені. Ці 0,05 біткоін є здачею. Це дещо відрізняється від процесу отримання здачі в магазині, так як здача в даному випадку є плата самому собі. Але загальна ідея схожа [4].
1   2   3   4   5   6   7   8



  • 4. Для чего это надо, как это работает
  • Операції з кількома входами і виходами