Polkadot-ის პარაჩეინები: დეტალური მიმოხილვა

ფოტო - Polkadot-ის პარაჩეინები: დეტალური მიმოხილვა
პარაჩეინი კონკრეტული აპლიკაციის მონაცემთა სტრუქტურაა. ის გლობალურადაა შეთანხმებული და ურთიერთქმედებს Polkadot-ის სარელეო ქსელის (relay chain) ვალიდატორებთან, რომლებიც პასუხისმგებელნი არიან ზოგადად სისტემის მუშაობის კოორდინაციაზე. პარაჩეინი თითქმის ყოველთვის იღებს ბლოკჩეინის ფორმას, მაგრამ ეს სავალდებულო პირობა არ არის.
პარაჩეინებს შეუძლიათ შექმნან საკუთარი ტოკენი და აამოქმედონ საკუთარი ეკონომიკა. მათ არ სჭირდებათ ისეთი სქემები, როგორიცაა PoS, მაგრამ Polkadot მათ საკუთარი იდეების განხორციელების სრულ თავისუფლებას აძლევს, იქნება ეს სტეიკინგი თუ ტრანზაქციის საკომისიო საკუთარ ტოკენში.  სარელეო ქსელი უზრუნველყოფს ყველა ტრანზაქციის შესრულებას, პარაჩეინის წესების მიუხედავად.

პარაჩაინებს შეუძლიათ ერთმანეთთან ურთიერთქმედება. ამისთვის გამოიყენება Cross-Consensus Message Format (XCM, კროს-კონსენსუსური შეტყობინებების ფორმატი) - სტანდარტი, რომელიც განსაზღვრავს, თუ როგორ უნდა გადაიცეს შეტყობინებები. მისი საშუალებით დეველოპერები განსაზღვრავენ მონაცემებსა და წყაროებს, რომლებსაც მათი ქსელები მიიღებენ და გაგზავნიან. XCM-ის მეშვეობით კომუნიკაცია ხორციელდება არა მხოლოდ ქსელებს შორის, არამედ სმარტ კონტრაქტებსა და ხიდებს შორის. XCM-ის საკვანძო ელემენტია კოლატორები.

ვინ არიან კოლატორები?

პარაჩეინების მომსახურებას ეწევიან ქსელური ადმინისტრატორები - კოლატორები (collators). ისინი ძალიან ჰგვანან ნებისმიერი სხვა ბლოკჩეინის ვალიდატორებს, მაგალითად Ethereum-ის, მაგრამ  უსაფრთხოების გარანტიებზე Polkadot-ია პასუხისმგებელი. როგორც ქსელის მონაწილეები (ბლოკჩეინ კვანძი, ნოდი), ისინი მხარს უჭერენ პარაჩეინის სრულ ნოდას, ინახავენ მის შესახებ ყველა საჭირო ინფორმაციას, აგროვებენ პარაჩეინის მომხმარებლების ტრანზაქციებს, აერთიანებენ მათ ბლოკის კანდიდატებად და ქმნიან მდგომარეობის გადასვლის დადასტურებას (state transition proofs Proof-of-Validity, PoV). კოლატორების მოტივაციასა და წახალისებაზე პარაჩეინია პასუხისმგებელი. 

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

როგორ მუშაობს პარაჩეინის პროტოკოლი?

პროტოკოლის მთავარი მიზანია პარაჩეინის ბლოკის გაყვანა შექმნიდან  ჩართვამდე პროცესის მეშვეობით.  სარელეო ქსელთან დაკავშირებული თითოეული პარაჩეინისთვის ის შეიძლება მრავალჯერ და პარალელურად მეორდებოდეს. პროტოკოლში მონაწილეობენ ვალიდატორები და კოლატორები. ზოგადი სქემა ასე გამოიყურება:

თავად პროტოკოლი შედგება სამი ეტაპისგან, რომლებიც ორ განყოფილებას შეიცავს: ჩართვის კონვეიერი (inclusion pipeline) და დადასტურების პროცესი (approval process). ქვემოთ მოცემულია ბლოკის მოძრაობა (თეთრი კვადრატი) ყველა ეტაპზე მარჯვნიდან მარცხნივ.

ჩართვის კონვეიერი

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

ამ განყოფილების საკვანძო მომენტები (სურათზე პროცესი მარჯვნიდან მარცხნივ მიდის):

1. ვალიდატორები ენიშნება ყველა პარაჩეინს "ვალიდატორის დანიშვნის" (validator assignment) პროცედურის გამოყენებით.

2. კოლატორი ქმნის პარაჩეინის ბლოკის კანდიდატს PoV-თან ერთად.

3. კოლატორი აგზავნის კანდიდატს და PoV-ს დანიშნულ ვალიდატორებთან. კანდიდატი იღებს სტატუსს „მივლინებული“ (seconded).

4. ვალიდატორები მონაწილეობენ „კანდიდატების მხარდაჭერის“ (candidate backing) ქვესისტემაში. კანდიდატები, რომლებიც აგროვებენ საკმარისი რაოდენობით სანდოობის დასტურებს, ხდებიან გამაგრებულები (backable). მათი გამაგრება ხელმოწერილი დასტურების ნაკრებია.

5. სარელეო ქსელის ბლოკის ავტორი შეირჩევა BABE-ის (Blind Assignment for Blockchain Extension), ბლოკის წარმოების მექანიზმის მეშვეობით. ავტორს შეუძლია მონიშნოს 1-მდე გამაგრებული ბლოკი თითოეული პარაჩეინისთვის, რათა ჩართოს ის სარელეო ქსელის ბლოკში. ამის შემდეგ კანდიდატი  ითვლება გამაგრებულად (backed).

6. კანდიდატი იღებს სტატუსს „ხელმისაწვდომობის მოლოდინში“ (pending availability), მაგრამ ჯერ არ ითვლება პარაჩეინის ნაწილად.

7. სარელეო ქსელის მომდევნო ბლოკებში ვალიდატორები მონაწილეობენ „ხელმისაწვდომობის განაწილების“ (availability distribution) ქვესისტემაში, კანდიდატის ხელმისაწვდომობის უზრუნველსაყოფად.

8. ამ ეტაპზე, სარელეო ქსელის მდგომარეობის მანქანა იღებს საკმარის ინფორმაციას, რათა ბლოკის PoV-ის ხელმისაწვდომად ჩათვალოს. შემდეგ ბლოკი იცვლის სტატუსს „ჩართულზე“ (included) და ითვლება პარაჩეინის ნაწილად, შემდეგ კი გადადის სრული ბლოკების (პარაბლოკები) კატეგორიაში.

ზოგიერთ შემთხვევაში, კანდიდატი შეიძლება არ იყოს ჩართული პარაჩეინში:

1. კოლატორი ვერ გადასცემს ბლოკს ვერც ერთ დანიშნულ ვალიდატორს.

2. კანდიდატი არაა მხარდაჭერილი ვალიდატორების მიერ „კანდიდატების მხარდაჭერის“ ქვესისტემაში.

3. სარელეო ქსელის ბლოკის ავტორმა კანდიდატი არ აირჩია.

4. კანდიდატის PoV მიუწვდომელია თაიმაუტის დროს და გამორთულია სარელეო ქსელიდან.

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

დადასტურების პროცესი

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

დადასტურების პროცესი შეიძლება დაიყოს შემდეგ ეტაპებად:

1. პარაბლოკები ელოდებიან დადასტურებას დროის “ფანჯრის” ფარგლებში.

2. ამ დროის განმავლობაში ხდება მეორადი ვალიდატორების  დამოუკიდებლად გამოძახება თითოეული პარაბლოკის მეორადი შემოწმების ჩასატარებლად.

3.მეორადი ვალიდატორები იღებენ PoV-იან პარაბლოკს და ხელახლა ხდება შემოწმების ფუნქციის ამოქმედება.

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

5. პარაბლოკი ან დასტურდება, ან უარყოფილი იქნება.

დამტკიცების პროცესის ვიზუალური წარმოდგენა (მარჯვნიდან მარცხნივ):

იმისათვის, რომ აპლიკაციამ გამოიყენოს Polkadot-ის პარაჩეინი და სარელეო ქსელი, მას სჭირდება სლოტზე წვდომა.

პარაჩეინის სლოტები

ამჟამად, პარაჩეინის ხელმისაწვდომი სლოტების რაოდენობა რამდენიმე წლით შეზღუდულია. მათი რაოდენობა მხოლოდ 100-ია და თავად სლოტები ნაწილდება შემდეგნაირად:

1. სისტემური პარაჩეინები შეიცავს Polkadot-ის პროტოკოლის ძირითად ფუნქციებს, მაგრამ პარაჩეინებში და არა სარელეო ქსელში.

2. პარაჩეინის აუქციონები - აუქციონები, სადაც მომხმარებლები ხმას აძლევენ პროექტს საკუთარი DOT ტოკენებით. გამარჯვებული ქირაობს სლოტს. იმ შემთხვევაში, თუ პროექტი ვერ ახერხებს იჯარის განახლებას, ის ხდება პარათრედი.

3. პარათრედები (Parathreads) არის იდეა პარაჩეინებისთვის Polkadot-ზე დროებითი წვდომისა, სლოტის დაქირავების აუცილებლობის გარეშე, რომელიც გაზიარებულია კონკურენტ ქსელებს შორის. ზოგიერთ მათგანს არ აქვს სლოტის დაქირავების შესაძლებლობა. ისინი ამას არამიზანშეწონილად თვლიან, რადგან თითოეულ შესრულებულ ბლოკზე ხდება გადახდა.

რისთვის უნდა გამოვიყენოთ პარაჩეინები?

პარაჩეინები Polkadot-ის სისტემის მასშტაბირებას ახდენენ  ტრანზაქციების პარალელურად დამუშავების ხარჯზე, ქსელის მთლიანი უსაფრთხოების შენარჩუნებით.

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

მნიშვნელოვანია აღინიშნოს პარაჩეინების პოტენციალიც. მაგალითად:

1. მაღალსიხშირული ქსელების შექმნა, რომლებიც ასრულებენ ბევრ სწრაფ ტრანზაქციას დიდი ოპტიმიზაციის შედეგად;

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

3. ქსელების შექმნა, სადაც ხორციელდება სმარტ კონტრაქტები.

Polkadot-ის დეველოპერებიც კი თვლიან, რომ სამომავლოდ პარაჩეინების გამოყენების სრული პოტენციალი ჯერ კიდევ არ არის გახსნილი.