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

Биткойн, подобно на долара в САЩ, се колебае в стойността. Хората се доверяват на валутите, дори когато стойността им плава - което означава само стойността на валутата, която зависи от предлагането и предлагането в сравнение с други валути, за разлика от „фиксираната“ и определена от правителството или друг централизиран орган.

Когато американските долари са били подкрепени със злато, хората са се доверили на парите, защото може да се заменят за благороден метал. Сега хората се доверяват на долара до голяма степен заради доверието в правителството на САЩ. Те също така се доверяват на правителството да подкрепи банките, в случай че нещо се обърка.

Биткойн е създаден да бъде надежден, но не заради златото или правителството. Вместо това се разчита на математиката - по-конкретно на умелото използване на две технологии: хеширане и криптиране с публичен ключ.

Hashing & Bitcoin's Blockchain

Блокчейнът на биткойн е публична книга за всяка биткойн транзакция. Това е поредица от блокове и всеки блок съдържа група биткойн транзакции. Можете да визуализирате blockchain като серия от пакети, всеки от които съдържа транзакциите, възникнали за период от около 10 минути:

Или можете да визуализирате пакетите, подредени един върху друг, с най-ранния блок от транзакции в долната част и най-новите в горната част. Подправете всеки блок в стека и всички блокове над него се срутват, което прави подправянето лесно за разпознаване.

Всеки блок има уникален хеш - „пръстов отпечатък“ под формата на много голям низ от цифри, изразен (в шестнадесетичен размер) като низ от знаци на gobbledygook. Например хешът на блок може да бъде „00000000003e95b0ac78cb961d0.“

За да направим нашата дискусия проста и концептуална, нека използваме емоджи вместо числа, за да представяме хешове. Нека изразим хеша на първия блок като (футболна топка), хеша на втория блок като (калмари), а третия блок като (чадър). Блокчейнът, представен от емоджи хеши, сега изглежда така:

Да речем, че моята приятелка Елизабет ми изпрати 5 долара биткойн и искам да ви го предам. Когато го направя, транзакцията ще бъде включена сред много други в нов блок, добавен към веригата. Всеки блок във веригата знае къде принадлежи в последователността, защото съдържа хеша на блока, който е дошъл преди него. С други думи, третият блок не само съдържа група транзакции, но също така съдържа хеша () на предишния блок.

Представете си, че Bitcoin системата току-що е хеширала блок 3 (създавайки хеша ). След като ви платя $ 5, Bitcoin включва нашата транзакция в следващия блок. Този нов блок, който в крайна сметка ще представим като 4, все още няма хеш. Засега е въпрос на знак.

Тук нещата стават наистина интересни. Мощните компютри, наречени „миньори“ се състезават да добавят 4 към блокчейн, като решават сложен математически проблем. Първият миньор, който успешно хешира новия блок, е победителят, а неговият собственик получава като награда 12,5 чисто нови биткойни. (Броят на присъдените биткойни ще намалее в бъдещите години).

Ето как се добиват нови пари. След като бъде открит успешен хеш, той се разпределя мигновено на всички останали миньори, които го проверяват и добавят в своите копия на блокчейна. След това състезанието е да намери правилния хеш за следващата верига в блока.

Хеширането е лесно. Средните лаптопи могат да намерят хиляди хешове за секунда.

Но в биткойн мрежата намирането на успешен хеш отнема средно конкурентните миньори 10 минути, защото не просто всеки хеш ще направи. Системата Bitcoin прави намирането на приемлив хеш изключително тежък, като изисква хешът да бъде ужасно малък брой спрямо всички останали възможни хеши. Хешът може да бъде всеки от изумително голям брой стойности. Число, което е само в трилионите, е малко в сравнение с обхвата на всички възможности, в същия смисъл, че земята е изключително малка спрямо нейната вселена.

Така миньорите искат да намерят невероятно малка стойност на хеш и единственият начин е да се опитват отново и отново. Всеки опит трябва да бъде различен и миньорите не могат да променят начина, по който хешират, но могат леко да променят това, което хешират.

Те правят това с помощта на нещо, наречено „без значение“, което е нещо като онази пикселна черна бълха, която добавихме над окото на кученцето в част 1.

„Puppy“ от Джонатан Криз е лицензиран под CC BY 2.0.

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

Без значение е диво предположение - число, което се добавя към биткойн блок на база проба и грешка, с надеждата, че това ще доведе до получаването на получения хеш. Миньорите предприемат всички транзакции в новия блок плюс хеша на предишния блок, добавят nonce и след това хешират резултата. Всеки миньор опитва много различни числа за нонсенс, надявайки се да се приземи на такова, което, когато е вградено в блока, ще доведе до блокиране на блока до подходящо малък брой. Всъщност успешните миньори може да се досещат, че използват много милиони различни стойности.

В наши дни това обикновено отнема кадри на опитите на миньорите, преди един от тях да намери представа, която дава печеливш хеш. Има победител на всеки 10 минути или повече, защото миньорите работят във ферми на много мощни компютри и има много миньори. (Ако средното време за спечелване на спадове под 10 минути, системата Bitcoin автоматично затруднява проблема, като прави размера на приемлив хеш по-малък.)

Златото извлича стойността си от това, че е скъпоценен метал, точно както печеливш хеш получава своята стойност, като е ценно число - число, което има качество (малкия си размер), което го прави изключително рядък. Миньорите вземат пробиви в тъмното - колективно четириъгълници от удряне в тъмното - с надеждата да бъдат първите, които попаднат на число („нонсе“), което генерира хеш, който отговаря на строгото изискване, наложено от системата Bitcoin. Изискването например може да бъде хешът да е по-малък от 0000000003e95b0acc32ac089222. Печелившата стратегия за добив е да разполагате с достатъчно компютърна мощност, за да правите много предположения.

Мрежата на Bitcoin иска хешове, които са под определени размери, но за да продължим нашата метафора на емоджи, нека си представим, че поставя по-приятелски ограничения: Например, нека да кажем, че ограничението на мрежата е, че хешът трябва да бъде животно. При първия си опит хешовете на миньорите изглеждат така:

Само една от тези стойности отговаря на ограничението: Нито вишневият цвят, нито крушата са животни, но кит удовлетворява изискването.

Тъй като вторият миньор намери правилен хеш, той събира награда. Тази награда се състои от чисто нов биткойн, поради което този процес се нарича „добив”. Почти все едно миньорите откриват нов биткойн, сякаш е злато.

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

Представете си, че блоковете се добиват твърде бързо в нашата емоджи-блокчейн. За да се коригира това, ограничението може да се коригира: „За следващия блок хешът трябва да е животно и трябва да е животно с лапи.“

Миньорите изпълняват хеш функциите си и откриват това:

Нито един от тези хеши не е животни с лапи. Така че миньорите се опитват отново:

В този момент третият миньор е намерил правилен хеш: мечките са животни с лапи! След това този миньор може да излъчва хеша, заедно с данните вътре в блока, в мрежата. Тъй като хеш функциите могат да се изпълняват бързо, други миньори могат да изпълняват хеш функцията на този блок и да проверят дали този хеш, удовлетворява ограниченията. След това всички те ще приемат блока във веригите си - което означава, че остават повече или по-малко в синхрон помежду си - и започват да събират транзакции за следващия блок.

Сега хешовете на blockchain изглеждат така, с транзакцията, при която ви изпратих $ 5, включени в блока, наречен :

Криптография с публичен ключ

Хеширането е само едно от математическите понятия, на които разчита Биткойн. Криптографията с публичен ключ е друга.

Хората, които учат криптография, често използват „Алиса“ и Боб “като герои в обясненията си един към друг. Нека ги използваме, за да обясним основната идея за криптография с публичен ключ.

Представете си, че Алис иска да изпрати на Боб куфарче с някои секретни документи. (В криптографията това е видът, който Алис изглежда прави през цялото време.) Ако Алис и Боб имат съвпадащи ключове, това е просто: Тя може да сложи катинар на куфарчето, да го заключи с ключа си и да го изпрати до Боб.

Когато Боб го получи, той може да отключи катинара със собствен ключ - тъй като той е същият като този на Алиса - и да получи достъп до секретните документи. Този процес е симетрична криптография.

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

Така че Алис и Боб нямат съответстващи ключове за едно заключване. Вместо това те имат свой ключ и собствена ключалка, което означава, че не е необходимо да прехвърлят ключове.

Ето как работи:

Алиса заключва куфарчето с катинара и ключа си и го изпраща на Боб. Когато Боб го получи, той не може да отключи катинара на Алиса. Вместо това той може да добави свой катинар ...

… И го изпрати обратно на Алиса:

След това Алис използва ключа си, за да свали катинара си от куфарчето:

Куфарчето сега има само един катинар на него: Боб. Алис изпраща куфарчето обратно на Боб:

А Боб може просто да отключи катинара си и да получи достъп до документите.

Сега Алис и Боб не трябва да намерят начин да споделят тайно един ключ. Нуждаят се само от собствени ключове и собствени катинари.

Но какво ще стане, ако човекът от другата страна не е този, който смятате за такъв? Ами ако имаше някакъв случай на изрод, а Боб беше заменен от ... говедо?

Това се случва следното:

  1. Алис изпраща закаченото си куфарче. Тя мисли, че го изпраща на Боб, но наистина го изпраща на крава.
  2. Кравата - която е изненадващо ловка - добавя катинара си към куфарчето и го изпраща обратно на Алиса.
  3. Алиса, възхитена от факта, че случаят се е върнал с катинара на Боб (който всъщност принадлежи на говедото), отключва катинара и го изпраща обратно.
  4. Кравата отваря куфарчето, като отключва катинара им.
  5. Кравата изяжда тайните документи. Moo!

Никой не иска техните тайни да бъдат консумирани от крава или друг непредвиден получател, затова предприемаме още една стъпка, за да защитим нашите тайни данни: Боб се уверява, че Алис знае точно как изглежда катинарът му, така че когато тя получи куфарчето си обратно с допълнително заключване върху нея, тя може да провери дали е негова.

Всъщност Боб прави копия на катинара си и ги прави публично достъпни навсякъде. Няма значение дали всички знаят как изглежда катинарът на Боб, тъй като той е единственият, който може да го отключи с ключа си. В същото време това позволява на Алиса да идентифицира ключалката на Боб. Тя може да провери дали вторият катинар наистина е на Боб, преди да отключи своя.

Ако се занимавахме с физически ключове и брави, ще бъде трудно да дублираме и разпределим катинарите. Но когато имаме работа с цифрови записи, ние работим с цифрови ключове и ключалки, които са числа.

Катинарът е номер, който е обществен. Ключът е номер, който е частен. Частният номер, който подходящо се нарича „частен ключ“, може да се използва за „отключване“ на публичния. Този публичен номер, може би объркващо, се нарича „публичен ключ“.

Това е криптография с публичен ключ.

Хората пазят внимателно личните си ключове, тъй като частният ключ може да отключи всеки от неговите публични ключове. (В криптографията този процес на отключване понякога се нарича подписване.) Хората ще публикуват своите публични ключове широко, така че другите хора да знаят какво е било заключено от конкретна ключалка.

В системата на Bitcoin криптографията с публичен ключ се използва за доказване на собствеността. За да говорим как става това, първо трябва да уредим някаква терминология. В Bitcoin има частни ключове, публични ключове и адреси:

За разлика от Алис и Боб и секретните документи, ключовете в биткойн системата не се опитват да криптират нищо. Няма непрозрачно куфарче, което те се опитват да отключат. Вместо това ключовете се използват за доказване на собствеността.

Във Вселената на биткойн Алис не изпраща на Боб тайно куфарче. Вместо това тя има стъклена кутия с катинара и биткойн вътре:

За да изпрати биткойн на Боб, Алис трябва да направи две неща:

  1. Алиса трябва да добави катинара на Боб в кутията. Това е просто, защото неговият „катинар“ наистина е публичен номер. По този начин Боб може да докаже собствеността, като отключи катинара си.
  2. Алиса трябва да докаже, че първият катинар, свързан с биткойн, е нейният катинар, а не някой друг. Тя прави това, като отключва собствения си катинар с ключа си (дълъг номер, който не споделя с никой друг).

След това, когато Боб реши, че иска да изпрати тези биткойни на някой друг (нека го наречем Карлос), той ще направи същите неща: Той ще добави катинара на Карлос и след това ще подпише транзакцията със собствен частен ключ.

В тази ситуация какъв точно е катинарът? Най-общо казано, това е публичният ключ. Но биткойн протоколът има още една промяна в криптографията с публичен ключ - вместо да включва самия публичен ключ на Боб, Алис може да включи биткойн адреса на Боб. Биткойн адресите се извличат от публичните ключове, така че е като Алиса да постави конкретно представяне на катинара на Боб в кутията. И практически безкраен брой адреси могат да бъдат генерирани от един публичен ключ, така че ако Боб искаше да използва различен адрес всеки път, той можеше.

Да се ​​върнем към $ 5, които ви изпратих. Изпратих го на вашия биткойн адрес, който генерирахте от публичния си ключ, който генерирахте от личния си ключ. Тогава вашият биткойн адрес е математически свързан с личния ви ключ. Ако притежавате частния ключ, свързан с адрес, тогава притежавате биткойн на същия адрес!

За да преведете вашите $ 5, трябва да направите нова транзакция, да включите адрес, който принадлежи на вашия получател, и да го подпишете с личния си ключ. Това е еквивалент на това да поставите катинара на получателя си в куфарчето и след това да отключите катинара.

Има и интересен страничен ефект от използването на адреси, който е, че Bitcoin е почти анонимен.

Това е псевдоним, защото вашите адреси са вашите псевдоними. Биткойнът не е свързан с вашето име: Всичко, от което се нуждаете, е вашият личен ключ.

Така че, докато имате личен ключ, имате своя биткойни. Какво можете да направите с него?

След това ще научим как биткойн и блокчейн се използват за печелене на пари и как тези технологии са в основата на новите финансови инструменти.