Блок тізбегі Bitcoins-ті екі рет жұмсауға қалай жол бермейді?

Кез-келген криптовалюта жасаушының бірінші кезектегі мәселесі – бұл екі есе жұмсау мәселесі. Бұл жеке тұлғаның осы криптовалютаның теңгерімін бірнеше рет жұмсау жағдайларын білдіреді, бұл шығындар туралы жазба мен осы криптовалютаның мөлшері, сондай-ақ оны тарату тәсілі арасындағы айырмашылықты тиімді түрде тудырады.

Екі жақты шығындар мәселесі – қолма-қол ақшада жоқ проблема; егер сіз сэндвич үшін төлемді 10 долларлық купюрамен жасасаңыз, оны сэндвич жасаушыға тапсырсаңыз, сіз бұрылып, сол 10 долларды басқа жерде жұмсай алмайсыз. Bitcoin сияқты сандық валютаны қолданатын транзакция толығымен цифрлық түрде жүреді. Бұл мәміле туралы мәліметтерді көшіріп, сол BTC-ді бір иеленуші бірнеше рет өткізе алатын етіп қайта трансляциялауға болатындығын білдіреді. Төменде біз криптовалюта жасаушылар екі есе шығындар болмайтынын қалай сақтандырғанын қарастырамыз.

Негізгі өнімдер

  • Цифрлық валюта ұғымында туындайтын техникалық мәселе – біреудің цифрлық ақшаны қайталап, оны екі немесе одан да көп жерде бір уақытта жұмсау мүмкіндігі.
  • Бұл «екі жұмсау» проблемасы Bitcoin-тің блок-тізбегіне негізделген крипто-валюталарында алдын-ала жұмыс дәлелі (PoW) деп аталатын консенсус механизмін қолдану арқылы алдын алады.
  • Бұл PoW блокчейн кітабындағы өткен транзакциялардың сенімділігін қамтамасыз етіп қана қоймай, сонымен қатар екі жақты шығындарды анықтайтын және алдын алатын «кеншілердің» орталықтандырылмаған желісі арқылы жүзеге асырылады.

Блокчейн туралы түсінік

Биткоин сияқты сандық валютаны құрайтын блокчейн өздігінен екі жақты шығындардың алдын ала алмайды. Керісінше, тиісті криптовалютаға қатысты барлық транзакциялардың барлығы блокчейнге орналастырылады, онда олар бөлек тексеріліп, растау процесі арқылы қорғалады. Биткоинге және басқа да көптеген криптовалюталарға қатысты осылайша расталған транзакциялар қайтымсыз болады; олар көпшілікке жарияланып, мәңгілікке сақталады.

Биткоин екі еселенген шығындар мәселесін шешкен алғашқы сандық валюта болды. Ол осы растау механизмін іске асырып, жалпыға бірдей, әмбебап кітап жүйесін қолдана отырып жасады. Осылайша, Bitcoin blockchain 2009 жылы криптовалютаның негізін қалағанға дейінгі уақытпен белгіленген транзакциялар туралы жазбаларды сақтайды.

Биткоин тілімен айтқанда, « блок » дегеніміз – тұрақты жазылатын мәліметтер файлы. Барлық соңғы транзакциялар блоктарға жазылады, мысалы биржадағы биржалық операциялар кітабы. Блоктардан ақпарат бірнеше минут сайын кітапқа қосылады; желідегі барлық түйіндер блокчейн кітабының көшірмесін жүргізеді. Пайдаланушылар биткоинге арналған блокчейнді шарлай алады және транзакцияларды тек сан жағынан қарастырады. Кез-келген мәміле кезінде сатып алушы мен сатушының жеке басы туралы мәліметтер жоғары деңгейлі шифрлаумен қорғалған, бұл сонымен қатар кітапты сыртқы көздердің бұзуынан сақтайды. Блокчейн кітабы жаңартылған кезде, Bitcoin әмияндары да жаңартылады.

Қосарланған шығындармен жұмыс

Сізде 1 BTC бар деп елестетіп көріңіз және сіз оны екі бөлек транзакцияда екі рет өткізуге тырысасыз. Сіз мұны екі бірдей Bitcoin әмиянының мекен-жайына бірдей BTC жіберу арқылы жасай аласыз. Осы екі транзакция кейін расталмаған транзакциялар пулына түседі. Бірінші транзакция растау механизмі арқылы мақұлданғаннан кейін келесі блокта тексерілетін болады. Алайда, екінші транзакция растау процесінде жарамсыз деп танылады және расталмайды. Егер екі транзакция бір мезгілде растау үшін пулдан шығарылса, онда растамалардың ең көп саны бар транзакция блокчейн құрамына кіреді, ал екіншісі жойылады.

Бұл екі еселенген шығыстар мәселесімен тиімді айналысқанымен, ондай мәселелер де жоқ емес. Мысалы, екінші (сәтсіз) транзакцияны жоспарлаған алушының транзакцияға қатысуы болмас еді, алайда ол адам күткен битокинді ала алмады. Көптеген саудагерлер транзакцияның кем дегенде 6 растамасын күтуде (бұл транзакцияның келесі алты блогы қарастырылып отырған мәміледен кейін блокчейнге қосылғанын білдіреді). Осы кезде саудагер транзакцияның дұрыс екеніне сенімді бола алады.

Бұл жүйеде екі жақты шығындар жасауға мүмкіндік беретін басқа осалдықтар бар. Мысалы, егер шабуылдаушы қандай да бір жолмен желінің қуатының кем дегенде 51% -ын басқара алса, олар екі есе шығындар жасай алады. Егер шабуылдаушы қандай да бір тәсілмен осы есептеу күшін басқара алса, олар транзакцияларды кері қайтарып, жеке, жеке блокчейн құра алады. Алайда, биткоиннің қарқынды өсуі іс жүзінде бұл шабуылдың мүмкін еместігін сақтандырды.

Жұмыстың дәлелі және «Тау-кен ісі» түсіндірілді

Енді сәл көбірек техникалық білейік. Іс жүзінде екі есе жұмсауға тырысу сияқты қолданушылықты анықтайтын тәсіл – бұл  жұмыс дәлелі ретінде қызмет ететін хэштер, сандардың ұзын жолдары (PoW). Берілген деректер жиынтығын хэш функциясы арқылы орналастырыңыз (bitcoin SHA-256 пайдаланады), және ол тек бір хэш тудырады. «Қар көшкінінің әсерінен», бірақ бастапқы деректердің кез-келген бөлігінің өзгеруі тіпті мүлдем танылмайтын хэшке әкеледі. Бастапқы мәліметтер жиынтығының өлшемі қандай болмасын, берілген функциямен құрылған хэш бірдей ұзындықта болады. Хэш – бұл біржақты функция: оны бастапқы деректерді алу үшін пайдалану мүмкін емес, тек хэшті тудырған деректердің бастапқы деректермен сәйкестігін тексеру үшін.

Bitcoin операцияларының жиынтығы үшін кез-келген хэшті құру қазіргі заманғы компьютер үшін өте маңызды емес болар еді, сондықтан процесті «жұмысқа» айналдыру үшін биткоин желісі белгілі бір «қиындық» деңгейін орнатады. Бұл параметр жаңа блок « қазылған » етіп реттеледі – жарамды хэш жасау арқылы блокчейнге қосылады – шамамен 10 минут сайын. Қиындықты орнату хэшке арналған «мақсатты» орнату арқылы жүзеге асырылады  : мақсат неғұрлым төмен болса, жарамды хэштер жиыны соғұрлым аз болады және оны құру қиынырақ болады. Іс жүзінде бұл нөлдердің ұзын жолынан басталатын хэшті білдіреді: мысалы, № 429818 блогына арналған хэш – 00000000000000004dd3426129639082239efd583b5273b1bd75e8d78ff2e8d. Бұл блокта 1000-нан сәл асатын битокинмен, сондай-ақ алдыңғы блоктың тақырыбымен байланысты 2012 транзакция бар. Егер пайдаланушы бір транзакция сомасын 0.0001 биткоинға өзгерткен болса, нәтижедегі хэш танылмайтын болып, желі алаяқтықтан бас тартады.

Берілген мәліметтер жиынтығы тек бір хэш жасай алатындықтан, кеншілер мақсатты деңгейден төмен хэш шығаратынына қалай көз жеткізеді? Олар енгізуді nonce деп аталатын бүтін санды қосу арқылы өзгертеді   («сан бір рет пайдаланылды»). Жарамды хэш табылғаннан кейін, ол желіге таратылады, ал блок блокчейнге қосылады.

Тау-кен жұмыстары – бұл бәсекелестік процесс, бірақ бұл жарысқа қарағанда лотерея. Орташа алғанда, он минут сайын біреу жұмысының қолайлы дәлелдерін жасайды, бірақ кім болады, ол кез-келген адамның болжауы. Тау-кен блоктарының мүмкіндігін жоғарылату үшін кеншілер бассейнге бірігеді, бұл транзакция үшін төлемдер жасайды және шектеулі уақытқа жаңадан жасалған битокиндердің сыйақысын алады.

Жұмыстың дәлелі блок-тізбектің кез-келген аспектісін өзгертуді өте қиын етеді, өйткені мұндай өзгеріс барлық келесі блоктарды қайта өндіруді қажет етеді. Сондай-ақ, бұл пайдаланушыға немесе пайдаланушылар пулына желінің есептеу қуатын монополиялауды қиындатады, өйткені хэш функцияларын орындау үшін қажетті техника мен қуат қымбатқа түседі.