Byzantine Fault Tolerance: ბლოკჩეინის უცნობი თავისებურება

ფოტო - Byzantine Fault Tolerance: ბლოკჩეინის უცნობი თავისებურება
ბიზანტიური დაზიანებამედეგობა — ბლოკჩეინის უნარია, იმუშაოს იმ პირობებში, როდესაც ზოგიერთი კომპიუტერული კვანძი ქსელიდან ქრება, ან ცდილობს, მთელი სისტემა დააზიანოს.
BFT-ის მიზანია, ბლოკების ჯაჭვში შეფერხებების პრევენცია მოახდინოს. ამისთვის ის გადაწყვეტილებები გამოყენება, რომლებიც, მავნე კვანძების არსებობის მიუხედავად, მუშა და სანდო ნოდებითაა მიღებული. თუ ბიზანტიური დაზიანებამედეგობა არ არსებობს, ბლოკჩეინში, შესაძლოა, არასწორი და საშიში ტრანზაქციები ჩაიწეროს, რომლებიც მონაცემთა უსაფრთხოებას არღვევს.

განაწილებული რეესტრების გარდა, Byzantine Fault Tolerance-ს თვითმფრინავების ძრავებში, ატომურ ელექტროსადგურებსა და სხვა მექანიზმებში იყენებენ, რომელთა შრომისუნარიანობა მოწყობილობების დიდ რაოდენობასთან არის დაკავშირებული.

ბიზანტიელი გენერლების პრობლემა

ტერმინის წარმოშობა ლოგიკური პრობლემისგან მომდინარეობს, რომლის სახელწოდებაა "ბიზანტიელი გენერლების პრობლემა". ის Microsoft Research-ის 1982 წლის სტატიაშია აღწერილი. ჰიპოთეზური  თავსატეხი სიტუაციის სირთულის აღსაწერად გამოიგონეს, რომლის დროს კომპიუტერულმა კვანძებმა საერთო შეთანხმებას უნდა მიაღწიოს.

წარმოიდგინეთ, რომ გვიანი ანტიკურობის ოთხი გენერალი მტრის ციხესიმაგრის აღებაზე უნდა შეთანხმდეს. ისინი სხვადასხვა ლოკაციებზე იმყოფებიან, ამიტომ კომუნიკაცია მხოლოდ შიკრიკების დახმარებით შეუძლიათ. 

გენერლები ბოლომდე  ვერ იქნებიან დარწმუნებულები, რომ მიღებული ინფორმაცია სწორია. შესაძლოა, მათ შეცდომით არასწორ მონაცემებს აწვდიან, ან ერთ-ერთი მათგანი მოღალატეა.

ამ პრობლემის გადაწყვეტა მექანიზმის შემუშავებაა, რომელიც ავტომატური მოლაპარაკების უნარს გამოიწვევს, მიუხედავად იმისა, რომ რამდენიმე არასანდო კვანძებთან დაკავშირებით პრობლემა არსებობს. მას "ბიზანტიური დაზიანებამედეგობა" ეწოდა და შეუძლია, მანამ იმუშაოს, სანამ მატყუარების რაოდენობა, რომლებიც მოვლენების განვითარებაზე გავლენას ახდენენ, მონაწილეთა მესამედს არ აღემატება. 

როგორ უკავშირდება კონსენსუსის ალგორითმები BFT-ს?

BFT კონსენსუსის ალგორითმების (და არა მხოლოდ*) გამოყენებით მიიღწევა. ეს წესებისა და პირობების გარკვეული ერთობლიობაა, რომელთა შესრულება ბლოკჩეინში ტრანზაქციების ჩასაწერადაა საჭირო. ეს უსაფრთხოებას უზრუნველყოფს და "ბიზანტიელი გენერლების პრობლემას" წყვეტს. 

მაგალითად, პირველივე კონსენსუსის ალგორითმში Proof-of-Work (მუშაობის დადასტურება), კვანძებში თანხმობა მას შემდეგ ხდება, რაც ერთ-ერთი მაინერი რთულ დაშიფრულ განტოლებას პირველი ამოხსნის. მაშინ მისი კვანძი ვალიდატორი ხდება, ტრანზაქციებს ამოწმებს და მათ ბლოკჩეინში ამატებს, მომხმარებელი კი ამისთვის ჯილდოს იღებს. 

ყველაზე პოპულარულ მექანიზმს Proof-of-Stake კონსენსუსის მისაღწევად განსხვავებული პირობები აქვს. ასეთი ქსელის მონაწილეებმა ტოკენები სტეიკინგზე უნდა გადაიტანონ, რათა ტრანზაქციების დადასტურების უფლება მიიღონ. რაც უფრო მეტი თანხაა დაბლოკილი, მით მეტია ჯაჭვში ბლოკის დამატებისა და ბლოკჩეინის მხარდაჭერის სანაცვლოდ დამატებითი ტოკენების მიღების შანსი. 

არსებობს მრავალი სხვა მექანიზმი, რომელთა დახმარებითაც კვანძები ერთმანეთთან თანხმდება. მათ შესახებ ჩვენს სტატიაში "კონსენსუსის ეგზოტიკური ალგორითმები"  წაიკითხეთ.

*ციფრული ხელმოწერები, განაწილებულ კვანძებს შორის ურთიერთქმედების შეზღუდვა - ასევე ბიზანტიური დაზიანებამედეგობის მიღწევის საშუალებას იძლევა.

რა არის პრაქტიკული ბიზანტიური დაზიანებამედეგობა?

Practical Byzantine Fault Tolerance (pBFT) — კონსენსუსის ალგორითმია, რომელიც 90-იანი წლების ბოლოს შეიქმნა. ხშირად, ახალი თაობის ბლოკჩეინებში მას, როგორც დამატებითს იყენებენ. ის შემუშავდა სისტემებისთვის, რომლებსაც მოთხოვნაზე პასუხისთვის დროში შეზღუდვა არ აქვს. მექანიზმს კონსენსუსის მიღწევის სწრაფი სიჩქარე გააჩნია და ბიზანტიური დაზიანებამედეგობის წინა შემუშავებებთან არის დაკავშირებული. pBFT-ს მთავარი კვანძი და მეორადი კვანძები აქვს, რომლებიც საერთო შედეგისთვის მუშაობს.

პრაქტიკული ალგორითმის სახით, Byzantine Fault Tolerance ასე მუშაობს:

?️ ტრანზაქცია მთავარი კვანძისკენ იგზავნება.
?️ ის მას მეორად კვანძებს გადასცემს.
?️ ისინი მოთხოვნას ერთად ამუშავებს და პასუხს სისტემაში აგზავნის.
?️ ტრანზაქცია დასტურდება, როდესაც ქსელი სხვადასხვა კვანძიდან ერთნაირი გადაწყვეტილებების მესამედზე მეტს იღებს.

მთავარი ნოდი დროდადრო იცვლება. თუ ის კლიენტის მოთხოვნას არ პასუხობს, მის ნაცვლად სპეციალური პროტოკოლი მუშაობს. როგორც წესი, მეორად კვანძებს კენჭისყრის გზით შეუძლიათ, მთავარი სერვერი მათი აზრით უფრო შესაფერისით შეცვალონ. 

პრაქტიკულ ბიზანტიური დაზიანებამედეგობას თავიანთ არქიტექტურაში ისეთი ბლოკჩეინები იყენებენ, როგორიცაა Hyperledger, Cosmos, Minter, Zilliqa.