Как работи биткойн Вземете набързо техническите аспекти на биткойн от Кристиан Чобану Медиум
Кристиан Чобану
15 май · 19 минути четене
В тази статия ще разгледаме технологията и основните механизми, които карат биткойн да работи. Ще обсъдим блокчейн и консенсус в друга статия, следователно тази статия се фокусира повече върху самия биткойн.

Темите, обхванати в тази статия, включват регулиране на трудността, крива на предлагане на монети, механизъм за транзакции на биткойн, UTXO, дървета на Merkle, Hard Fork срещу Soft Fork и Block Explorer.
Как се създават биткойн монети?
Биткойн монетите се създават чрез процес, наречен „добив“. Майньорите са принудени да решават сложен математически пъзел (наречен Proof-of-Work), преди да им бъде позволено да въвеждат нови блокчейн транзакции. Вместо това те се възнаграждават с биткойн монети.
Всеки, който има компютър, може да стане майнер с подходяща конфигурация. След като станете майнер, можете да проверявате и записвате транзакции с други майнери.
Блокиране и настройка на трудността
Трудно е да се предскаже колко миньори ще участват. Ако са твърде малко, системата ще бъде твърде бавна, което ще доведе до лошо потребителско изживяване. Ако са твърде много, системата ще бъде твърде бърза, което ще доведе до проблеми със сигурността (например, лесно е да се харчат двойно). Следователно е важно системата да поддържа относително постоянно темпо, независимо от броя на миньорите (с други думи, хеш мощност), които съществуват.
Биткойн използва механизъм, наречен "настройка на трудността", за да поддържа скоростта на копаене постоянна, около 10 минути на блок. "Трудността" ще се коригира на всеки 2 седмици, като се вземе предвид хеш мощността от миналото. Ако мощността на хеш не е достатъчна (т.е. средното време на блок е повече от 10 минути), трудността ще бъде намалена. И обратно, ако изходната мощност е твърде висока (т.е. средното време на блок е повече от 10 минути), трудността ще се увеличи.
Как да коригирате трудността?
Протоколът за биткойн изисква от миньорите да се състезават за решаване на „криптографски пъзел“ (наречен доказателство за работа), така че победителят да може да предложи новия блок и да го добави към блокчейна.
"Криптографският пъзел" се решава чрез коригиране на nonce, така че хешът на блока да е по-малък от целевия хеш (стойност по-малка от 256 бита).
Майньорите трябва да намерят nonce, произволен брой от 32 бита, така че хешът на блока да е по-малък или равен на целевия хеш, посочен от мрежата. Ако вашият хеш е под целта, тогава печелите и получавате награди за добив. Ако не, сменете нонса още веднъж и опитайте отново и отново.
Колкото по-висока е хеш мощността на мрежата, толкова по-нисък е целевият хеш. По-нисък целеви хеш означава, че за майньорите е по-трудно да намерят точния nonce за създаване на по-малък хеш на блока от целевия хеш. (Представете си, че компютърът избира произволно число между 1 и 100, вероятността да намери число под 10 е 0,1, но вероятността да намери число под 50 е 0,5).
Ето как се прави „корекция на трудността“ в биткойн мрежата.
Какви са хеш скоростта, възнагражденията за добив и таксите за транзакции?
В предишния раздел виждаме защо мощността на хеш е важна и как тя е свързана с времето за блокиране и настройката на трудността. Мощността на хеш може да се измери с помощта на "скоростта на хеширане", както се вижда по-долу:
Rata Hash
Скоростта на хеширане е мярка за броя на хешираните операции, извършени в даден интервал от време. Това може да варира в зависимост от хардуера. Например, ако миньор има устройство, което може да генерира скорост от 30 MHz, тогава има 30 милиона хешове в секунда (хеш е преобразуване от състояние в състояние - или за допълнително опростяване, 1 изчисление).
По този начин GPU, който произвежда скорост на трансфер от 30 MHz, прави изчисления от 30 милиона в секунда.
Колкото по-висока е скоростта на хеширане, толкова по-голяма е вероятността миньорът да реши блока и да спечели награда за блок. Вероятността миньор да реши блока може да бъде оценена по следната формула:
P = вероятност за решаване на блок
Y = обща скорост на хеширане на мрежата, която представлява общата скорост на хеширане на всички майнери в момента
Може би сте чували за майнинг ферми, които са огромни индустриални складове, пълни с оборудване за минно дело, които имат единствената цел да копаят криптовалути. Може да има хиляди свързани графични процесори или ASIC (специфични за приложението интегрални схеми), които се комбинират, за да направят общата мощност на хеширане много по-голяма от единица минно оборудване. Всичко това е предназначено да направи блок по-вероятно да бъде решен и миньорът да спечели награда.
Наградите за добив са компенсации (под формата на новосъздадени монети), генерирани от системата за заплащане на работата на миньорите, когато са решили криптографския пъзел, необходим за експлоатация на нов блок.
В момента наградата за добив на биткойни е 12,5 биткойна на блок. Майньорите трябва да се състезават помежду си в мрежата, за да решат първи блока и да получат наградата. Следователно, колкото по-висока е скоростта на хеширане, толкова по-голям е шансът да получите награди за добив. За да подобрят възвръщаемостта на инвестициите, минните компании и частните лица често трябва да инвестират достатъчно в оборудване и електричество, за да увеличат шансовете си за успешен добив.
Въпреки това, с драстичното увеличение на общата скорост на хеширане на биткойн мрежата, става почти невъзможно човек да може да копае биткойн сам поради ограничени ресурси. Следователно групите за добив позволяват на хората да обединяват ресурси и да допринасят за добива си от външни източници. По този начин групите за добив могат да спечелят повече ресурси, за да се конкурират помежду си, а отделните лица могат да споделят ползите пропорционално на техния процент на хеширане, като спомагат за смекчаване на нестабилността, с която могат да се сблъскат, когато добиват сами.
Всеки 210 000 блока намалява наполовина възнаграждението за добив. Биткойн започна с награда от 50 BTC, след това през 2012 г., 25 BTC, а през 2016 г. отново се намали наполовина до 12,5 BTC. През 2020 г. наградата за Block ще бъде намалена наполовина отново до 6.25 и така нататък, докато не бъдат извлечени всички 21 милиона BTC.
Различните видове криптовалути имат различни награди за добив и различни програми за стартиране на токени. Те могат да бъдат намерени в Бялата книга на тази криптовалута.
Наградата за блока се събира в транзакция на coinbase, която се отнася до първата транзакция в блок. Използва се от майньорите за събиране на награда за блока или допълнителни такси за транзакции.
Такси за транзакции
Тъй като възнагражденията от копаенето на биткойн и други валути, работещи чрез механизма на PoW, постепенно ще намаляват, има друг тип стимул за миньорите да правят транзакции. Тези стимули се наричат мрежови такси. За валути, които работят в съответствие с PoW консенсуса, потребителите трябва да плащат таксата за мрежа и добив за всяка транзакция. Тази такса за транзакция може да варира при различни условия на трафик и за различни валути. Таксата за транзакция е остатъчната сума на неизразходвани записи. Обикновено се изчислява в сатоши на байт.
Таксите за транзакции са стимул за миньорите да проверят вашата транзакция. Може също да не плащате такси за транзакции или да плащате намалени такси, но това значително ще намали шансовете ви транзакцията да бъде включена в следващия блок.
Има и някои валути, които имат ниска или никаква такса за транзакция и обикновено прилагат различен консенсус (напр. DPoS, PBFT) или различни технологии (напр. DAG), някои често срещани примери са XRP, EOS и IOTA.
Биткойн наполовина
За разлика от фиатните валути, чието предлагане варира и се контролира от централните банки, биткойнът е определен на 21 милиона монети. Причината, поради която биткойнът не може да бъде „отпечатан“ лесно, е, че графикът му на доставки е предварително програмиран. Никое предприятие не може едностранно да промени предлагането на биткойн, без да придобие доминиращ дял от децентрализирано предприятие.
Поради половината, наградата за блока ще бъде намалена наполовина за всеки 210 000 минирани блока. Тъй като всеки блок отнема около 10 минути, разделянето наполовина трябва да се извърши на около 1458 дни или 4 години, цифра, която се споменава в много крипто литератури.
Половината вече се е случила два пъти. Първото събитие се проведе на 28/11/2012, когато възнаграждението за добив беше намалено от 50 BTC на 25 BTC, а второто на 09/07/2016, когато възнаграждението за добив беше намалено от 25 BTC на 12,5 BTC. Следващата половина се очаква да се състои около 12/05/2020, когато възнаграждението за добив ще бъде намалено от 12,5 BTC на 6,25 BTC.
Поради загуба на частни ключове или повреда на хардуера, някои биткойн монети са трайно загубени и не могат да бъдат възстановени, което прави реалната доставка много по-ниска от теоретичната стойност. Изобретателят на биткойн Сатоши Накамото също има значително количество биткойн монети, които са останали недокоснати, след като са били добити преди няколко години.
Как работят транзакциите с биткойн?
Ще представим процедурите за транзакции с биткойн със следния сценарий:
Боб, онлайн търговец, решава да приеме биткойн като плащане.
Алис, купувач, има биткойн монети и иска да купува стоки от Боб.
Портфейлите са файлове, които осигуряват достъп до множество биткойн адреси.
Адресът е низ от букви и цифри, като 1HULMwZEJEPech43BKJL1ybLCWrfDpN. Всеки адрес има собствен баланс от биткойн монети.
Представете си адресите си като банкови сметки, но те работят малко по-различно. Потребителите на биткойн могат да създават колкото се може повече адреси.
Клиентският софтуер за биткойн генерира биткойн адреси за потребители.
Когато Боб създава нов адрес, той всъщност генерира „двойка криптографски ключове“, състояща се от частен ключ (който само вие знаете) и публичен ключ (известен на всеки). Ако подпишете съобщение с частен ключ, то може да бъде проверено с помощта на подходящия публичен ключ. Новият адрес на Боб е уникален публичен ключ и съответният частен ключ се съхранява в портфейла му. Публичният ключ позволява на всеки да провери дали съобщението, подписано с частния ключ, е валидно.