ეთერიუმის Whitepaper

CryptoZ Georgia
ტექნოლოზი
36 min readMay 17, 2020

ინგლისურ ენაზე ეთერიუმის whitepaper-ის ორიგინალში სანახავად გადადით ამ ბმულზე.

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

ეს ფართოდ მოხსენიებული აპლიკაციები მოიცავს ბლოკჩეინზე დამყარებულ ციფრულ აქტივებს, რომლებიც წარმოადგენს ჩვეულ ვალუტებს და ფინანსურ ინსტრუმენტებს, არაფუნქციურ აქტივებს, როგორიცაა დომეინების სახელები (namecoin), ასევე უფრო კომპლექსურ აპლიკაციებს, როგორიცაა დეცენტრალიზებული გაცვლითი ბაზრები, ფინანსური დერივატივები, ციფრული პირისპირა ქსელის კაზინოები და ბლოკჩეინზე დამყარებული საიდენტიფიკაციო და სარეპუტაციო სისტემები. ასევე, ძალიან მნიშვნელოვანი და მოთხოვნადი ასპექტია გონიერი კონტრაქტები, სისტემა, სადაც ავტომატურად ნაწილდება ციფრული აქტივები წინასწარ შემუშავებული წესების მიხედვით. მაგალითად: A-ს შეუძლია, გაანაღდოს N თანხა ყოველ დღე, B-ს შეუძლია Y თანხის განაღდება ყოველ დღე, A-ს და B-ს ერთად შეუძლიათ გაანაღდონ ნებისმიერი თანხა და A-ს შეუძლია, B-ს თანხის გატანის შესაძლებლობა წაართვას. ამ იდეის ლოგიკური გაგრძელებაა დეცენტრალიზებული ავტონომიური ორგანიზაციები (დაო). გრძელვადიანი გონიერი კონტრაქტები, რომლებიც მოიცავს აქტივებს და ინახავს მთელი ორგანიზაციის კოდირებულ წესებს. ეთერიუმი არის ბლოკჩეინი, რომელშიც ინტეგრირებულია პროგრამირების ტურინგ-დასრულებული ენა. ის საშუალებას იძლევა, შეიქმნას კონტრაქტები, რომელთა მეშვეობითაც მომხმარებლებს შეეძლებათ, შექმნან ნებისმიერი ზემოთ მოყვანილი სისტემა, ასევე ისეთი სისტემებიც, რომლებიც ჯერ არავის მოუფიქრებია და გაუაზრებია. და ეს ყველაფერი შესაძლებელი იქნება უბრალოდ ლოგიკური კოდების რამოდენიმე ხაზის დაწერით.​

ისტორია

დეცენტრალიზებული ციფრული ვალუტების და ასევე უძრავი ქონების რეესტრების კონცეფცია უკვე ათწლეულებია, არსებობს. 1980 და 1890-იან წლებში, უკვე არსებობდა ანონიმური ქსელში ჩართული ფულის პროტოკოლები, რომლებიც დაფუძნებული იყო პრიმიტიულ კრიპტოგრაფიაზე და ეწოდებოდა შაუმიან ბლაინდინგი (Chaumian blinding). ისინი კარგად უზრუნველყოფდნენ ანონიმურობას, მაგრამ დიდი ხანი ვერ გასტანეს, რადგან უმეტესწილად დამოკიდებულები იყვნენ ცენტრალურ შუამავალზე. 1998 წელს ვეი დაის ბე-ფული იყო პირველი შეთავაზება, რომლის იდეაც მოიცავდა ფულის შექმნას კომპიუტერული ამოცანების ამოხსნით და დეცენტრალიზებული კონსესუსით, მაგრამ მას მაინც ჰქონდა ხარვეზები განხორციელებასთან დაკავშირებით. 2005 წელს, ჰალ ფინლიმ შემოგვთავაზა ‘’მრავალჯერ გამოყენებადი სამუშაოს მტკიცებულების’’ კონცეფცია, სისტემა, რომელიც იყენებს ნაწილობრივ ზემოთ ხსენებული ბე-ფულის იდეას და ადამ ბაქსის კომპიუტერების გამოთვლისთვის რთულ ჰაშქეშის ამოცანებს, რათა მივიღოთ კრიპტოვალუტა, მაგრამ ესეც კრახით დამთავრდა, რადგან სისტემა დამოკიდებული იყო სანდო ცენტრალიზებული კომპიუტერების გამოთვლებზე.

ვალუტები არის first-to-file (პირველი რომელიც გატარდება) აპლიკაცია, სადაც ტრანზაქციების თანმიმდევრობას უზარმაზარი მნიშვნელობა ენიჭება. აქედან გამომდინარე, დეცენტრალიზებულ ვალუტას სჭირდება დეცენტრალიზებული კონსესუსი. Bitcoin-მდე, ყველა დეცენტრალიზებული ვალუტის შექმნის მცდელობას ჰქონდა ერთი მთავარი ბარიერი. ამის გამო, ძალიან ბევრი კვლევა ჩატარდა, რათა მოეფიქრებინათ ‘’ბიზანტინის შეცდომა’’ გამძლე ( Byzantine-fault-tolerant) დეცენტრალიზებული კონსესუსი, მაგრამ წლების განმავლობაში ეს პროტოკოლები ვერ, ან ნაწილობრივ, წყვეტდნენ ამ პრობლემას. პროტოკოლები თვლიდნენ, რომ ყველა სისტემაში მონაწილე უნდა ყოფილიყო ცნობილი და, ამასთან, ჰქონოდათ თავდაცვის კოეფიციენტი ასე: ‘’ თუ N მხარე მიიღებს მონაწილეობას, მაშინ სისტემას ეპარება N/4 თაღლითი მონაწილეები’’ აქ პრობლემა ის არის, რომ ეს სისტემა არის დაუცველი სიბილური თავდამსხმელებისგან, სადაც ერთ თავდამსხმელს შეუძლია, შექმნას ათასობით სიმულირებული ნოდი სერვერზე ან ბოტნეტის გამოყენებით და შემდეგ ეს ნოდები გამოიყენოს ცალმხრივად უმეტესი სისტემის წილის დასაცავად.

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

ბიტკოინი, როგორც მდგომარეობის გადატანის სისტემა

ტექნიკის მხრივ, ბიტკოინს შეგვიძლია მდგომარეობის გადატანის სისტემა ვუწოდოთ. აქ არის ერთი მდგომარეობა, რომელიც შედგება ყველა ბიტკოინის ფლობის ერთი პოზიციისგან და ‘’მდგომარეობის გადატანის ფუნქციისგან’’. ის იღებს მდგომარეობას და ტრანზაქციებს და გარდაქმნის მათ ახალ მდგომარეობად, რომელიც საბოლოოო გამომავალი შედეგია. სტანდარტულ საბანკო სისტემაში მდგომარეობა არის იგივე ბალანსი, ტრანზაქცია კი — მოთხოვნა, რომ X$ გადავიდეს A-დან B-ში. მდგომარეობის ფუნქცია კი A-ს აჭრის X თანხას და უმატებს მას B-ს. თუ A-ს აქვს X-ზე ნაკლები თანხა თავის ანგარიშზე, მაშინ გამომავალი პასუხი ცდომილების ტოლია.

APPLY(S,TX) > S’ or ERROR

ზემოთ ახსნილ საბანკო სისტემაში:

APPLY({ Alice: $50, Bob: $50 },”send $20 from Alice to Bob”) = { Alice: $30,

Bob: $70 }

მაგრამ:

APPLY({ Alice: $50, Bob: $50 },”send $70 from Alice to Bob”) = ERROR

ბიტკოინში მდგომარეობა არის ყველა ჟეტონების ერთობლიობა (დაუხარჯავი ტრანზაქციების გამომავალი პასუხი, აუთფუთი, UTXO), რომლებიც გამომუშავდა, მაგრამ ჯერ არ დახარჯულა. ყველა დაუხარჯავი ჟეტონი არის დენომინირებული და ეკუთვნის ვინმეს (ვინმეს ეკუთნის 20 ბაიტიან მისამართზე, რომელიც არის კრიპტოგრაფიული საჯარო გასაღები). ტრანზაქცია შეიცავს ერთ ან მეტ ინფორმაციას დაუხარჯავ ჟეტონებზე, ციფრულ ხელმოწერას, რომელსაც წარმოქმნის მომხმარებლის პირადი გასაღები და მისი საჯარო მისამართი/გასაღები და ერთ ან რამდენიმე გამომავალ შედეგს, რომელიც მოიცავს ახალ დაუხარჯავ ჟეტონებს ახალი სისტემის მდგომარეობაში. ეს ფუნქციაა:

APPLY(S,TX) > S’

რომელიც აიხსნება ასე:

  1. ყველა შემავალი ცვლადისთვის ტრანზაქციაში:
  • თუ დაუხარჯავი ჟეტონი არ არის S მდგომარეობაში, მაშინ მცდარია.
  • თუ წარმოდგენილი ციფრული ხელმოწერა არ ემთხვევა დაუხარჯავი ჟეტონის მფლობელისას, მაშინ ეს ფუნქციაც მცდარია.
  1. თუ ყველა შემავალი დაუხარჯავი ჟეტონების ჯამი ნაკლებია, ვიდრე ყველა გამომავალი დაუხარჯავი ჟეტონებისა, მაშინ ეს ფუნქცია მცდარია.
  2. ამოშალოს მდგომარეობიდან ყველა შემავალი და გამომავალი დაუხარჯავი ჟეტონები.

ამ ალგორითმის პირველი ნახევარი იცავს ტრანზაქციის გამგზავნს არ არსებული ჟეტონების დახარჯვისგან, ხოლო პირველი ფუნქციის მეორე ნაწილი იცავს გამგზავნს, რათა არ დახარჯოს სხვისი დაუხარჯავი ჟეტონები. მეორე ნაწილი კი აძლიერებს ჟეტონების ღირებულების სიზუსტეს. ეს რომ რეალური ტრანზაქციისთვის გამოვიყენოთ, მოვიყვანოთ მაგალითი: ვთქვათ, ალისას უნდა, ბობს გაუგზავნოს 11.7 ბიტკოინი. პირველ რიგში, ალისას უნდა ჰკონდეს 11.7 დაუხარჯავი ჟეტონი. ვთქვათ, ალისას აღმოაჩნდა 6+4+2=12 ბიტკოინის დაუხარჯავი ჟეტონი. იგი აკეთებს ტრანზაქციას სამი შემავალი ცვლადით და ორი გამომავალი /საბოლოო შედეგით; ერთი გამომავალი შედეგია, 11.7 BTC გაეგზავნოს მისამართს, რომელიც ეკუთვნის ბობს, ხოლო მეორე გამომავალი შედეგია ხურდა, რომელსაც იგი თავისივე თავს გაუგზავნის — 0.3 BTC.

მაინინგი:

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

ბლოკის ვალიდურების შესამოწმებელი ალგორითმი:

  • შემოწმდეს, არსებობს თუ არა წინა ბლოკის ჰაში და არის თუ არა ის ვალიდური;
  • შემოწმდეს, არის თუ არა წინა ბლოკის დროის შტამპი მის მომდევნოზე ნაკლები და ნაკლები მომდევნო ორ საათზე;
  • შემოწმდეს სამუშაოს შესრულების მტკიცებულება და მისი ვალიდურობა;
  • დაე S[0] იყოს წინა ბლოკის მდგომარეობის ბოლოში;
  • დავუშვათ, TX არის წინა ბლოკის ტრანზაქციების სია. ყველა I სთვის 0…n-1, set S[i+1] = APPLY(S[i],TX[i]), თუ ნებისმიერი აპლიკაციით მივიღებთ მცდარ პასუხს, შეწყვიტოს და დააბრუნოს მცდარი პასუხი;
  • დააფიქსიროს სწორი და დაარეგისტრიროს S[n], როგორც მდგომარეობა, ბლოკის ბოლოში.

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

ბლოკების ვალიდაციის ძალიან საინტერესო ასპექტია სამუშაოს შესრულების მტკიცებულების კონცეფცია: ყოველი ბლოკის sha256-ის ჰაში არის 256 ბიტიანი რიცხვი, რომელიც უნდა იყოს დინამიურად შესწორებად რიცხვზე ნაკლები. ეს რიცხვი კი 2-ის 190-ე ხარისხია. ამის მიზეზია ის, რომ ბლოკების პოვნა იყოს კომპიუტერულად შრომატევადი, რათა სიბილურ თავდამსხმელებს ძალიან გაუჭირდეთ მთელი ბლოკების ჯაჭვის თავიანთ სასარგებლოდ შეცვლა. რადგან sha256არის შექმნილი აბსოლუტურად ფსევდო-შემთხვევითი ფუნქციით, ბლოკის პოვნისთვის მხოლოდ ერთი გზა არსებობს — ცდა და შეცდომა, ანუ ნონსის გაზრდა და შემდეგ იმის გარკვევა, ნაპოვნი ჰაში ვალიდურია თუ არა.მიმდინარე სამიზნე არის 2192. ეს ნიშნავს, რომსაშუალოდ 264 ცდაში ვიპოვით სწორ ნონსის რიცხვს, რათა მივიღოთ ვალიდური ჰაში. ზოგადად, ყოველ 2016-ე ბლოკში ქსელი კალიბრაციას განიცდის ისე, რომ ნოდმა საშუალოდ ყოველ 10 წუთში იპოვოს ბლოკის სწორი ჰაში. ამხელა კომპიუტერული ენერგიის დახარჯვის საფასურად, მაინერებს ყოველი ბლოკის პოვნისას შეუძლიათ, თავიანთ თავს მისცენ 12.5 ბიტკოინი არსაიდან. ამასთან, თუ ტრანზაქციების დენომინაცია შემავალში უფრო მეტია, ვიდრე გამომავალ ჟეტონებში, მაინერებს შეუძლიათ, განსხვავება დაიტოვონ, როგორც ტრანზაქციის საკომისიო. მხოლოდ და მხოლოდ ეს მექანიზმი არის ახალი ბიტკოინის გამოშვების ერთადერთი მეთოდი, თავდაპირველი მდგომარეობა არ შეიცავდა არც ერთ ჟეტონს წინასწარ. უკეთ რომ გავიგოთ, თუ რა როლი აქვს მაინინგს, მოდით განვიხილოთ ქსელზე თავდასხმის მაგალითი. რადგან ბიტკოინის კრიპტოგრაფია უდაოდ დაცულია, თავდამსხმელი სამიზნედ ქსელის დაუცველ ნაწილს ამოარჩევს, რომელიცაა ტრანზაქციების ქრონოლოგია.

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

რომელიმე მაინერი პირველ პუნქტში ნახსენებ 100 ბიტკოინის ტრანზაქციას შეიტანს ბლოკში და დაადასტურებს, დავუშვათ ბლოკ 270000-ს. ერთი საათის შემდეგ, 5 ახალი ბლოკი მიემატება ქსელს და ეს ბლოკები ირიბად დაადასტურებს ამ ტრანზაქციას, რადგან მათი ჰაშები არის გადაბმული. ამ მომენტისთვის, ვაჭარი გასცემს თავდამსხმელის მიერ ნაყიდ ერთეულს. რადგან დავუშვით, რომ ეს პროდუქტი არის ციფრული, თავდამსხმელი ამას იმ წამსვე მიიღებს. ახლა თავდამსხმელი წარმოქმნის ახალ ტრანზაქციას და გაუგზავნის 100 ბიტკოინს თავის თავს. თუ იგი ამ ტრანზაქციას ქსელში გააგზავნიდა, რა თქმა უნდა, ის დადასტურებული არ იქნებოდა. მაინერები ამ ტრანზაქციას გაატარებდნენ APPLY(S,TX), შეამჩნევდნენ, რომ დახარჯული და დაუხარჯავი ტრანზაქციები ერთმანეთს უტოლდება და ეს ნიშნავს, რომ ის არ იქნებოდა ქსელის უახლეს მდგომარეობაში. ამის მაგივრად, თავდამსხმელი შექმნის ბლოკჩეინის ქსელის ‘’ორკაპს’’, ანუ დაიწყებს 270000-ე ბლოკის ახალი ვერსიის მოპოვებას, რომელიც მიუთითებს 269999-ე ბლოკს, როგორც მის წინას, მაგრამ თავისი ახალი ტრანზაქციით, რომელიც საკუთარ თავს გაუგზავნა. რადგან ბლოკების მონაცემები განსხვავდება, ამისთვის საჭირო იქნება სამუშაოს მტკიცებულების გადაკეთებაც. უფრო მეტიც, თავდამსხმელის 270000-ე ბლოკს ექნება განსხვავებული ჰაში, ამიტომ ნამდვილი 270001-დან 270005-მდე ბლოკები მას არ შეიცავენ, აქედან გამოდინარე, თავდამსხმელი და ორიგინალი ჯაჭვი გამოვა სრულიად სხვადასხვა. ორკაპების შემთხვევაში არსებობს წესი: რომელი ჯაჭვიც უფრო გრძელია, ანუ რომლის სამუშაოს მტკიცებულებაც უფრო მეტია, ის იქნება მიჩნეული ნამდვილად, ასე რომ, მაინერები გააგრძელებენ 270005-ე ბლოკზე მუშაობას, ხოლო თავდამსხმელს მოუწევს, მარტომ იმუშაოს 270000 ბლოკზე. იმისათვის, რომ მან თავისი ბლოკჩეინი, ანუ ჯაჭვი, უფრო დააგრძელოს, მას დასჭირდება უფრო მეტი კომპიუტერული სიმძლავრე, ვიდრე ყველა დანარჩენ მაინერს ერთად, ანუ 51%.

მერკელის ხე:

მარცხნივ: წარმოდგენილია ნოდების მიერ ვალიდური მერკელის ხე და მისი ტოტები.

მარჯვნივ: ნებისმიერი უზუსტობა ჯაჭვში ქმნის ცდომილებას მერკელის ტოტებში.

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

მერკელის ხე არის ბინარული ხე, რომელიც შედგება ბევრი ნოდი ფოთლებისაგან, შუალედური ნოდებისგან, სადაც თითეული ნოდი არის თავისი ორი ტოტის ჰაში და, ბოლოს, ერთი ნოდის ჰაშისგან, მიღებული თავისი ორი ტოტის ჰაშისგან, რომელიც არის ხის წვერში. მერკელის ხის დანიშნულებაა ინფორმაციის ნაწილ ნაწილ გაგზავნა არასტრუქტურულად, ანუ: ნოდმა მხოლოდ ბლოკის სათაური რომ გადმოწეროს რაიმე ერთი წყაროდან, ხოლო ხის პატარა მათთვის მისაღები ნაწილი მეორე წყაროდან, ის იქნება დარწმუნებული მერკელის ხის გამოყენებით, რომ მისი გადმოწერილი მონაცემები არის სწორი. ხის ქვემოდან ზემოთ დაჰაშვის მიზეზი: თუ თავდამსხმელი მოინდომებს რომელიმე ტრანზაქციის შეცვლას, ჰაშები მის ზემოთ შეიცვლება ავტომატურად, რაც შეცვლის მის ზემოთ არსებულ ჰაშსაც და, საბოლოოდ, ხის ფესვსაც. შედეგად შეიცვლება ბლოკის ჰაშიც, რომელიც გატარდება, როგორც განსხვავებული ბლოკი, ანუ მცდარი. მერკელის ხის პროტოკოლი უდაოდ გრძელვადიანი დაცვის მექანიზმია. ბიტკოინის ქსელში, სრული ნოდი, რომელიც ინახავს და ატარებს ყველა ბლოკს, მყარ დისკზე იკავებს 15გეგა ბაიტ ადგილს 2014 წლის აპრილის მონაცემით და იზრდება თვეში ერთი გიგაბაიტით. ამჟამად, ეს ხელმისაწვდომია პერსონალრი კომპიუტერებისთვის და ნაკლებად გონიერი ტელეფონებისთვის. სამომავლოდ კი, მხოლოდ ბიზნესებს და მოყვარულებს შეეძლებათ, მიიღონ მონაწილეობა. პროტოკოლი, რომელიც ცნობილია, როგორც გამარტივებული გადახდის ვერიფიკაცია, (SPV), საშუალებას იძლევა, არსებობდნენ განსხვავებული სახის ნოდებიც, რომლებსაც ლაით ნოდები ეწოდებათ. ისინი მხოლოდ ბლოკის სათაურებს იწერენ და დასტურსაც მხოლოდ ბლოკის სათაურების სამუშაოს მტკიცებულებით იძლევიან. ისინი იწერენ მხოლოდ იმ მერკელის ტოტებს, რომლებიც მათი ტრანზაქციებისთვისაა საჭირო. ეს საშუალებას აძლევს ლაით ნოდებს, უსაფრთხოების ფარგლებში გაიგონ ბიტკოინის ქსელის მდგომარეობა და თავიანთი ბალანსი, ეს ყველაფერი კი შესაძლებელია გაცილებით მცირე პორციის გადმოწერით ბლოკჩეინიდან.

ალტერნატიული ბლოკჩეინები:

ბლოკჩეინის იდეის გამოყენებას სხვადასხვა აპლიკაციებში დიდი ისტორია აქვს. 2005 წელს, ნიკ სზაბომ შემოგვთავაზა კონცეფცია — ‘’უძრავი ქონების მფლობელობის დაცულობა’’, რომელიც გვთავაზობდა შემდეგ იდეას: ‘’ახალი მიღწევები ტირაჟირებულ მონაცემთა ბაზებში’’ ბლოკჩეინის ტექნოლოგიებს მისცემდა საშუალებას, უფრო დაცულად შეენახათ/დაერეგისტრირებინათ, თუ ვინ რა ქონებას/მიწას ფლობდა. შედეგად, შემუშავდებოდა საკარმიდამოს ფლობის, ირიბი ფლობის, ანდა საქართველოს მიწის გადასახადის ინფრასტრუქტურის კონცეფცია. სამწუხაროდ, იმჟამად არ არსებობდა ეფექტური ტირაჟირებული მონაცემთა ბაზის სისტემა, რის გამოც ზემოთ მოცემული პოროტოკოლი ვერ დამკვიდრდა პრაქტიკაში. 2009 წლის შემდეგ, როდესაც ბიტკოინის დეცენტრალიზებული კონსესუსის იდეა წარდგენილ იქნა ფართო მასებისთვის, რამდენიმე ალტერნატიული ბლოკჩეინის აპლიკაციებმა ზრდა დაიწყო:

  • Namecoin — შეიქმნა 2010 წელს. იგი ყველაზე კარგად აღიწერება, როგორც სახელების რეგისტრაციების დეცენტრალიზებული მონაცემთა ბაზა. დეცენტრალიზებულ აპლიკაციებში, როგორებიცაა Tor, Bitcoin, BitMessage, უნდა არსებულიყო ანგარიშების იდენტიფიკაციის საშუალება, რათა ადამიანებს შეძლებოდათ ერთმანეთთან ურთიერთობა, მაგრამ ყველა არსებულ აპლიკაციებში ერთადერთი საიდენტიფიკაციო საშუალება იყო ფევსდო-შემთხვევითი ჰაში, რომელიც გამოიყურება ასე: 1LW79wp5ZBqaHW1jL5TCiBCrhQYtHagUWy. რა თქმა უნდა, ადამიანისთვის უფრო მისაღებია, ჰქონდეს თავისი ანგარიში სახელით ‘’თომა’’, მაგრამ პრობლემა ისაა, რომ თუ თომას შეუძლია, ჰქონდეს ანგარიში თავისი სახელით, სხვაც შექმნის იგივე ანგარიშს იგივე სახელით და ისიც განასახიერებს თომას. არსებობს მხოლოდ ერთი გამოსავალი: FIRST-TO-FILE (ვინც პირველი გაატარებს) პარადიგმა, ხოლო ვინც მეორე დარეგისტრირდება, ის ვერ შეძლებს, აიღოს იგივე კომბინაცია. ეს კონცეფცია ძალიან კარგად მოერგო ბიტკოინის კონსესუსის პროტოკოლის მსგავს კონცეფციას. ნეიმკოინი არის ერთ-ერთი უძველესი და წარმატებული სახელების რეგისტრაციების სისტემა, რომელიც შეიქმნა ზემოთ ხსენებული პროტოკოლის გამოყენებით.
  • COLORED Coins (ფერადი ჟეტონები, პირადი ჟეტონები) — ფერადი ჟეტონების პროტოკოლის დანიშნულებაა ადამიანებს მიეცეთ საშუალება, თავისი საკუთარი ციფრული ვალუტები შექმნან ბიტკოინის ქსელის გამოყენებით. ფერადი ჟეტონების პროტოკოლში, ვინმე მიანიჭებს რაიმე ფერს გარკვეულ დაუხარჯავ ბიტკოინებს (UTXO) , ხოლო პროტოკოლი რეკურსიულად ამოიცნობს სხვა დაუხარჯავი ჟეტონების ფერსაც და ერთი ფერის მქონე დახარჯულ ჟეტონებს ჩათვლის, როგორც ერთ ცალკე ვალუტას. ეს აძლევს მომხმარებლებს საშუალებას, იქონიონ საფულე მხოლოდ ერთი ფერის დაუხარჯავი ჟეტონებით და ისინი გადააგზავნ-გადმოაგზავნიან მათ ისე, როგორც ეს ბიტკოინის შემთხვევაში ხდება. ბლოკჩეინის ისტორიის შემოწმებით გაირკვევა, რომელი დაუხარჯავი ჟეტონი რა ფერისაა.
  • MetaCoins — მეტა ჟეტონების იდეა მდგომარეობს იმაში, რომ მათი პროტოკოლი არსებობს ბიტკოინის პროტოკოლზე დაყრდნობით; ისინი იყენებენ ბიტკოინის ტრანზაქციებს თავიანთი ტრანზაქციების გასატარებლად, მაგრამ განსხვავებული აქვთ მდგომარეობის გარდამავალი ფუნქცია — apply. რადგან მეტაჟეტონების პროტოკოლს არ შეუძლია არა ვალიდური ტრანზაქციების შეჩერება ბიტკოინის ბლოკჩეინში, შემოდის დამატებითი წესი, რომლის თანახმადაც, თუ APPLY’(S,TX) არის მცდარი, პროტოკოლი არასწორად მიიჩნევს შემდეგ ფუნქციას APPLY’(S,TX) = S. ეს საშუალებას იძლევა, მარტივი მექანიზმით შეიქმნას სხვა კრიპტოვალუტა — პოტენციურად უფრო დახვეწილი პროტოკოლი, რომელიც ვერ გამოიყენება ბიტკოინის ბლოკჩეინში, მაგრამ იმუშავებს ძალიან პატარა ვებ დეველოპერული დანახარჯით, რადგან იყენებს ბიტკოინის ქსელისა და მაინინგის პროტოკოლებს.

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

ბიტკოინის პროტოკოლზე დაშენების მიდგომას, მეორეს მხრივ, ერთი გარღვევა აქვს — პროტოკოლზე დაშენებისას გამარტივებული ვერიფიკაცია მემკვიდრეობით არ მიჰყვება დაშენებულ პროტოკოლებს. ეს ვერიფიკაცია ბიტკოინისთვის იმიტომ მუშაობს კარგად, რომ მას შეუძლია გამოიყენოს ბლოკჩეინის/მერკელის სიღრმე, როგორც ვალიდაციის პროქსი/ძირი/წარმომადგენელი. როდესაც ტრანზაქციების წინაპარი ტრანზაქციები უკვე ძალიან გრძელია, ისინი მოწმდება შეძლებისდაგვარად ძველი ტრანზაქციიდან, რაც იძლევა იმის საანდოობას, რომ ყველა ტრანზაქცია მართლაც ბიტკოინის მდგომარეობის ნაწილი იყო. ბლოკჩეინზე დაფუძნებულ მეტა პროტოკოლებს არ შეუძლიათ ბლოკჩეინის შეჩერება, რათა არავალიდური ტრანზაქციები შეიტანონ საკუთარ ქსელში, თავიანთი პროტოკოლების კონტექსტიდან გამომდინარე. სრულიად დაცული მარტივი გადახდების ვერიფიკაციის(SPV) მეტა პროტოკოლების დანერგვის შემთხვევაში, მას დასჭირდება, რომ გამოიკვლიოს და დაასკანეროს ყველაფერი დასაწყისამდე ბიტკოინის ბლოკჩეინში, რათა გაარკვიოს, თუ რომელი ტრანზაქცია იქნება ვალიდური. ამჟამად, ყველა ბიტკოინზე დაშენებული „მსუბუქი“ მეტა პროტოკოლი დამოკიდებულია სანდო ცენტრალურ სერვერებზე მონაცემების ბაზებისთვის, არადა კრიპტოვალუტების უმთავრესი დანიშნულებაა ნდობის ფაქტორის მოსპობა, რაც ამ შემთხვევაში მიღწეული არ არის.

სკრიპტი:

ყველანაირი პროგრამული ექსტენსიების გარეშეც, ბიტკოინის პროტოკოლი მოიცავს გონიერი კონტრაქტების პატარა ასპექტს. დაუხარჯავი ჟეტონები (utxo) ბიტკოინში შეიძლება არა მხოლოდ საჯარო მისამართის საკუთრება იყოს, არამედ უფრო რთული სკრიპტისაც, რომელიც გამოხატულია ძალიან მარტივი პროგრამული ენით. ამ პარადიგმაში, ტრანზაქციამ, რომელიც ხარჯავს დაუხარჯავ ჟეტონს, უნდა წარმოადგინოს მონაცემები, რომლებიც აკმაყოფილებს სკრიპტს. საბაზისო საჯარო მისამართების ფლობის მექანიზმიც კი სკრიპტებით არის დანერგილი/იმპლემენტირებული: სკრიპტი იღებს ელიფსური მრუდის ხელმოწერას, როგორც შემავალი ცვლადი (ინფუთ), ადარებს მას ტრანზაქციას და მისამართს, რომელიც ფლობს ამ დაუხარჯავ ჟეტონებს (utxo) და პასუხად იძლევა 1-ს, თუ ვერიფიკაცია წარმატებით დასრულდა და 0-ს — თუ წარუმატებლად. სხვა, უფრო რთული სკრიპტებიც არსებობს მრავალი სხვა და სხვა დანიშნულებისთვის. მაგალითად, შეიძლება დაიწეროს სკრიპტი, რომელიც მოითხოვს 3 პირადი გასაღებიდან 2-ს, რათა გაიცეს დასტური მულტი-ხელმოწერით (‘’multising’’). ეს ხდება ფართოდ გამოყენებადი კორპორატიული აქაუნთებისთვის, დაცული ანაბარის ანგარიშებისთვის და ამა თუ იმ ვაჭრების ესქროუ სიტუაციებისთვის. სკრიპტები ასევე შეიძლება გამოყენებულ იქნას კომპიუტერული ამოცანების ამოხსნის დროს ჯილდოს განაწილებისას. უფრო მეტიც, შესაძლებელია დაიწეროს სკრიპტი, რომელიც ამბობს: ‘’ეს ბიტკოინის დაუხარჯავი ჟეტონი არის შენი, თუ წარმოადგენ მარტივი გადახდების ვერიფიკაციის მტკიცებულებას, რომ შენ გადააგზავნე ‘’დოუგქოინი’’ -ის გარკვეული დენომინაცია ჩემი მისამართით’’. ეს იძლევა ჯვარედინა-კრიპტოვალუტების ერთმანეთში გაცვლის საშუალებას, მაგრამ სკრიპტების იმპლემენტაციას ბიტკოინში გააჩნია მნიშვნელოვანი საზღვრები:

  • ტურინ დაუსრულებელი (turing incomplete) — რა თქმა უნდა, არსებობს უამრავი სკრიპტი, რომელსაც ბიტკოინში გამოვიყენებთ, მაგრამ ყველა ასეთი არაა. მთავარი კატეგორია, რომელიც აკლია ამ სიას, არის ლუპების (loop) უსასრულობა. ეს არის იმისათვის, რომ თავიდან ავიცილოთ უსასრულო ლუპი ტრანზაქციის ვერიფიკაციისას. თეორიულად, ეს გადალახვადი ბარიერია სკრიპტის პროგრამისტებისთვის, რადგან შესაძლებელია ნებისმიერი ლუპის სიმულაცია მოცემული კოდის უამრავჯერ გამეორებით, და მასში‘’თუ’’ ს გამოყენებით, მაგრამ ამას მივყავართ ისეთ სკრიპტამდე, რომელიც ძალიან არაეფექტურია მოცულობით. მაგალითად, ალტერნატიული ელიფსური მრუდის ხელმოწერების ალგორითმისთვის, საჭირო იქნება ყველა კოდის 256-ჯერ გამეორება და გამრავლება ინდივიდუალურად.
  • გაურკვეველი ოდენობის (value-blindness) — არ არსებობს დაუხარჯავი ჟეტონის სკრიპტისთვის საშუალება, გააკონტროლოს ზუსტი რიცხვი გამოტანის შემთხვევაში. ამისთვის ყველაზე კარგი მაგალითია ჰედჯირებული კონტრაქტი, გულთმისანი კონტრაქტი, სადაც A და B შეიტანენ 1000$ ღირებულების ბიტკოინს, 30 დღის შემდეგ სკრიპტი 1000 $ BTC-ს გაუგზავნის A-ს ხოლო დანარჩენს — B-ს. ამ შემთხვევაში, საჭირო იქნება, რომ გულთმისანმა გათვალოს 1 ბიტკოინის ღირებულება დოლარებში, მაგრამ ამ შემთხვევაშიც სახეზეა ნდობისა და ინფრასტრუქტურის ძალიან დიდი განვითარება მოთხოვნების განხრით ისეთი ცენტრალიზებულ სისტემების საპირისპიროდ, რომლებიც უკვე არსებობენ. რადგან დაუხარჯავი ჟეტონები არის „ან ყველაფერი ან არაფერი“ პრინციპით, ამის მიღწევა შესაძლებელი იქნება მხოლოდ საკმაოდ არაეფექტური გზით, სადაც UTXO -ს (დაუხარჯავ ჟეტონებს) ექნება ბევრი სხვადასხვა დენომინაცია (ერთი UTXO, რომელიც იქნება 2 აყვანილი K ხარისხში, სადაც K უნდა იყოს ყველა რიცხვი 30 მდე) სადაც გულთმისანი (oracle) სკრიპტი აირჩევს, რომელი გაუზავნოს A-ს და რომელი — B-ს.
  • მდგომარეობის სიმწირე (lack of state) — UTXO შეიძლება არსებობდეს ორ მდგომარეობაში — დახარჯული ან დაუხარჯავი, არ არსებობს მრავალნაირი კონტრაქტების, ან სკრიპტების შესაძლებლობა, რომელიც ინარჩუნებს შიდა მდგომარეობას მათ მიღმა. ეს ართულებს მრავალდონიანი კონტრაქტების ვერსიების შემუშავებას, დეცენტრალიზებულ გაცვლით ბაზრებს, ან ორდონიან კრიპტოგრაფიულ პროტოკოლებს (რომელიც აუცილებელია დაცული კომპიუტერული ჯილდოებისთვის). ეს კიდევ იმას ნიშნავს, რომ დაუხარჯავი ჟეტონებით შესაძლებელი იქნება მხოლოდ მარტივი, ერთჯერადი კონტრაქტების შედგენა და არა რაიმე რთულისა და მრავალ ფუნქციურის, როგორებიცაა დეცენტრალიზებული ორგანიზაციები. ამასთან, ეს მეტა პროტოკოლების დანერგვას უფრო ართულებს. ბინარულობა და ოდენობის გაურკვევლობა (ზემოთ ახსნილი) გამოტანის ლიმიტირებას შეუძლებელს ხდის.
  • ბლოკჩეინის მიმართ ბრმა — დაუხარჯავი ჟეტონები (UTXO) ვერ აღიქვამს ისეთ ინფორმაციას, როგორიცაა ნონსი და ჰაში. ეს საკმაოდ ზღუდავს აპლიკაციებს აზარტული თამაშებისთვის და სხვა მრავალი კატეგორიისთვის, რომელიც შემთხვევითობის საშუალებას ართმევს სკრიპტების ენას ამ აპლიკაციებში.

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

ეთერიუმი/ Ethereum/ETH

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

ეთერიუმის ანგარიშები

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

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

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

მესიჯი და ტრანზაქცია:

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

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

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

მესიჯების მექანიზმის მნიშვნელოვანი შედეგი ეთერიუმში არის ‘’პირველი კლასის მოქალაქე’’ — იდეა იმისა, რომ კონტრაქტებს და გარე ანგარიშებს აქვთ თანაბარი ძალაუფლება, მათ შეუძლიათ მესიჯის გაგზავნაც და ახალი კონტრაქტის შექმნაც. ეს აძლევს კონტრაქტებს საშუალებას, შეასრულოს მრავალი სხვადასხვა როლი, მაგალითად: შესაძლებელი იქნება დეცენტრალიზებული ორგანიზაციის (კონტრაქტი) წევრი იყოს ესქროუ ანგარიში (მეორე კონტრაქტი), რომელიც არის პარანოიდი მომხმარებელი და ჰქონდეს პირადი კვანტუმ გამძლე ლამპორტ ხელმოწერა, (მესამე კონტრაქტი) და ასევე თანა ხელმომწერი პიროვნება, რომელიც იყენებს 5 გასაღებს ხელმოსაწერად უკეთესი თავდაცვისთვის (მეოთხე კონტრაქტი). ეთერიუმის პლატფორმის სიძლიერე არის ის რომ, დეცენტრალიზებულ ორგანიზაციას და ესქროუ კონტრაქტს არ მოუწევს იმაზე ნერვიულობა, თუ რა სახის ანგარიშს ფლობს ნებისმიერი მხარე კონტრაქტში.​

ეთერიუმის მდგომარეობის შეცვლის ფუნქცია

ეთერიუმის მდგომარეობის გარდაცვლის ფუნქცია — APPLY(S,TX), S — ასე შეიძლება აიხსნას:

  1. შემოწმდეს, არის თუ არა ტრანზაქცია კარგად ჩამოყალიბებული (სწორი რიცხვების ჰაში და ასე შემდეგ), ემთხვევა თუ არა ნონსი გამომგზავნის ანგარიშის ნონსს; თუ არა, მაშინ ის მცდარია.
  2. დაითვალოს ტრანზაქციის საკომისიო, როგორც STARTGAS * GASPRICE და გამოარკვიოს გაგზავნის მისამართი ციფრული ხელმოწერიდან. ჩამოაჭრას საკომისიო გამგზავნის ანგარიშს და გაზარდოს გამგზავნის ნონსის რიცხვი. თუ საკმარისი ბალანსი არ არის ანგარიშზე, მაშინ მცდარია.
  3. შეასრულოს GAS = STARTGAS, და გაზის თითო ბაიტზე აიღოს გარკვეული ოდენობა ტრანზაქციის გამოყენებული ბაიტებისთვის.
  4. გადაიტანოს ტრანზაქციის დენომინაცია გამგზავნის ანგარიშიდან მიმღების ანგარიშზე; თუ მიმღების მისამართი არ არსებობს, მაშინ შექმნას. თუ მიმღების ანგარიში არის კონტრაქტი, გაუშვას კონტრაქტის კოდი იქამდე, სანამ ან გაზი არ გათავდება, ან ტრანზაქცია არ დასრულდება.
  5. თუ ტრანზაქცია არ დასრულდა, რადგან გამგზავნს არ აღმოაჩნდა საკმარისი ფული, ან კოდის შესრულებაში გაზი ამოიწურა, დააბრუნოს საყსისი მდგომარეობა საკომისიოს გარდა და მისცეს ეს საკომისიო მაინერს.
  6. სხვაგვარად, დაუბრუნოს დარჩენილი საკომოსიოს გაზი გამომგზავნს, და გაუგზავნოს საკომისიო გაზის გამოყენებისთვის მაინერს.

მაგალითად, კონტრაქტის კოდი არის ასეთი:

if !contract.storage[msg.data[0]]:

contract.storage[msg.data[0]] = msg.data[1]

აღვნიშნავ, რომ რეალურად კონტრაქტის კოდი იწერება დაბალი დონის EVM კოდით. ეს არის სერპენტის ენაზე დაწერილი მაგალითი, რომელიც მაღალი დონის ენაა სიცხადისთვის და ის შესაძლებელია კონვერტირდეს დაბალი დონის EVM კოდად. დავუშვათ, რომ კონტრაქტის საცავი იწყება სიცარიელიდან და შემდეგ იგზავნება 10 ეთერის 2000 გაზისა და 0.001 ეთერის გაზის ფასის ტრანზაქცია ორი მონაცემით [2; CHARLIE]. მდგომარეობის გარდაცვლის ფუნქცია ასეთი იქნება:

  1. შემოწმდეს, არის თუ არა ტრანზაქცია კარგად ფორმირებული;
  2. შემოწმდეს, აქვს თუ არა გამომგზავნს მინიმუმ 2000*0,001=2 ეთერი. თუ აქვს, მაშინ გამოაკლოს 2 ეთერი გამგზავნის ანგარიშს.
  3. Gas-ის ინიციალიზაცია = 2000. დავუშვათ, რომ ტრანზაქცია არის სულ 170 ბიტი, ხოლო ბიტის საკომისიო — 5. 170*5=850. გამოვაკლოთ მას ეს 850 და დაგვრჩება 1150 გაზი.
  4. გამოვაკლოთ 10 ეთერი გამგზავნის ანგარიშს და მივამატოთ კონტრაქტ ანგარიშს.
  5. გაიშვას კოდი; ამ შემთხვევაში, ეს მარტივია. კოდი ამოწმებს, არის თუ არა კონტრაქტის საცავი გამოყენებული 2 ინდექსით, შეამჩნევს, რომ ასე არ არის და ინდექსს დააყენებს 2-ს ჩარლის შესატყვისი რიცხვისთვის. დავუშვათ, ამ კოდის ნაბიჯებისთვის საჭიროა 187 გაზი, აქედან გამომდინარე, დარჩენილი გაზის რაოდენობა იქნება 1150–187=963
  6. დაუმატოს 963*0,001=0,963 გამომგზავნის ანგარიშს და მიღებული მდგომარეობა დატოვოს, როგორც შედეგი.

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

კოდების შესრულება:

კოდები ეთერიუმ კონტრაქტებში იწერება დაბალი დონის, დასტისებურ წყობაზე დაფუძნებულ (stack-based) ბიტკოდის ენაზე, რომელსაც ეწოდება ‘’ ეთერიუმის ვირტუალური მანქანის კოდი’’, ანუ იგივე EVM კოდი. კოდი შედგება მრავალსერიიანი ბიტებისგან, სადაც თითო ბიტი წარმოადგენს ოპერაციას.ზოგადად, კოდის შესრულება არის უსასრულო ლუპი, რაც შედგება ოპერაციის უსასრულოდ შესრულებისგან, მიმდინარე პროგრამის ათვლისგან და იწყება 0 რიცხვით. შემდეგ, ის პროგრამის ამთვლელს ზრდის 1-ით ყოველ ჯერზე, სანამ კოდის დასასრულს არ მიაღწევს, იქამდე, სანამ სწორი ან მცდარი შედეგის ინსტრუქციას არ მიიღებს. ოპერაციებს აქვთ წვდომა სამი სახის საცავთან, სადაც ინახება მონაცემები:

  • დასტის საცავი, a last-in-first-out (ბოლოს შესული პირველი გამოდის) კონტეინერი, სადაც 32 ბაიტიანი რიცხვები შეიძლება ჩაიწეროს და ამოიწეროს.
  • მეხსიერება, უსასრულოდ ზრდადი საცავის ადგილი;
  • კონტრაქტის გრძელ ვადიანი საცავი, გასაღებების და ოდენობითი საცავი, სადაც გასაღებები და რიცხვები არის 32 ბიტის მოცულობის. დასტის და მეხსიერების საცავისგან განსხვავებით, რომლებიც ახლდებიან კომპუტაციების დასრულებისთანავე. ეს საცავი ინახება გრძელვადიანი პერიოდით.

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

evm კოდის ფორმალური შესრულების მოდელი არის მარტივი, როდესაც მიმდინარეობს ეთერიუმის ვირტუალური მანქანის პროცესი. მისი სრული კომპუტაციური მდგომარეობა შეიძლება გადმოიცეს tuple-ით (ბლოკის-მდგომარეობა, ტრანზაქცია, მესიჯი, კოდი, მეხსიერება, დასტა, პერსონალური კონპიუტერი, გაზი.). აქ ბლოკის მდგომარეობა არის გლობალურად ქსელის მდგომარეობა, სადაც შემავალია ყველა ანგარიში, მათი ბალანსები და საცავი. შესრულების ყველა რაუნდს და თითეულ ინსტრუქციას აქვს თავისი შესატყვისი განმარტება იმის თაობაზე, თუ როგორ გავლენას ახდენს ის tuple-ზე.

ბლოკჩეინი და მაინინგი:

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

  1. შემოწმდეს, არსებობს თუ არა წინა ბლოკი და არის თუ არა ის ვალიდური;
  2. შემოწმდეს ბლოკის დროის შტამპი, რომელიც არის წინა მითითებული ბლოკის დროის შტამპზე მეტი და მომავალში 15 წუთით დროზე ნაკლები.
  3. შემოწმდეს, არის თუ არა ბლოკის ნომერი, სირთულე, ტრანზაქციის ფესვი, ბიძა ფესვი და გაზის ლიმიტი ვალიდური.
  4. შემოწმდეს, რომ სამუშაოს მტკიცებულება ბლოკზე არის ასევე ვალიდური
  5. დაე s[0] იყოს წინა ბლოკის მდგომარეობის ფესვი.
  6. დაე TX იყოს ბლოკის ტრანზაქციების სია, N ტრანზაქციებით, ყველა 0…n-1, setS[i+1] = APPLY(S[i],TX[i]). თუ რომელიმე აპლიკაცია დააბრუნებს პასუხად მცდარს და თუ მთლიანად დახარჯული გაზი ბლოკში ამ მომენტამდე აჭარბებს GASLIMIT-ს (გაზის ლიმიტს), მივიღოთ მცდარი პასუხი (error)
  7. დაე S_FINAL იყოს S[N] , მაგრამ ბლოკის ჯილდოს გადახდით მაინერისთვის.
  8. შემოწმდეს, არის თუ არა S_FINAL -ი მდგომარეობის ფესვის ტოლი. თუ ასეა, მაშინ ბლოკი ვალიდურია, სხვანაირად, ბლოკი არ არის ვალიდური.

ასეთი მიდგომა ერთი შეხედვით შეიძლება არაეფექტურად მოგვეჩვენოს, რადგან ყველა ბლოკში უნდა მოთავსდეს მთლიანი ქსელის მდგომარეობის ინფორმაცია, მაგრამ, რეალურად, ეფექტურობა უნდა შევადაროთ ბიტკოინის ქსელს. ამის მიზეზი ის არის, რომ მდგომარეობა ინახება ხის პრინციპით და თითოეული ბლოკის შემდეგ იცვლება ხის მხოლოდ პატარა ნაწილი. აქედან გამომდინარე, ზოგადად, ორი ბლოკის შეცვლის შემთხვევაში, მხოლოდ ხის პატარა ნაწილების შეცვლა არის საჭირო. ამიტომ, მონაცემები იქნება შენახული ერთხელ, მითითებული კი — ორჯერ მიმთითებლების მეშვეობით, ანუ ხის ქვე ჰაშებით. სპეციალური ხის ტიპი, რომელიც ცნობილია ‘’პატრიციას ხის’’ სახელით, გამოყენებულია, რათა ზემოთ მოყვანილი პროცესი შესრულდეს. ეს ასევე მოიცავს მოდიფიკაციებს მერკელის ხის კონცეფციაზე, რომელიც საშუალებას იძლევა, ნოდები ეფექტურად დაემატოს ან წაიშალოს და არა მხოლოდ მოდიფიცირდეს. რადგან ქსელის მთლიანი მდგომარეობა ინახება ბოლო ბლოკში, არ არის საჭირო მთლიანი ბლოკჩეინის ისტორიის შენახვა. ეს სტრატეგია რომ არსებობდეს ბიტკოინის ბკლოკჩეინშიც, იგი დაზოგავდა 5–20 ჯერ მეტ მეხსიერების ადგილს.

აპლიკაციები:

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

მონეტების სისტემა:

ბლოკჩეინში ჟეტონების სისტემებს ბევრი აპლიკაცია აქვს, დაწყებული ქვე-ვალუტებით, რომლებიც ასახავს დოლარს ან ოქროს, ან კომპანიის აქციებს, ინდივიდუალური ჟეტონებით გონიერი ქონების ამსახველად, დაცული დაუვიწყარი კუპონებით და ჟეტონების სისტემებით, რომლებსაც არანაირი კავშირი აქვს ტრადიციულ ღირებულების სისტემებთან. ეს უკანასკნელნი გამოიყენება ქულებზე დამყარებული ინცენტივების სისტემებში. ჟეტონების სისტემების იმპლემენტაცია, რაც არ უნდა გასაკვირი იყოს, ძალიან მარტივია. საკვანძო ფუნდამენტური იდეა ვალუტისთვის თუ ჟეტონების სისტემებისთვის არის მონაცემთა ბაზა ერთი ოპერაციით: გამოვაკლოთ X ერთეული A-ს და მივუმატოთ ეს X ერთეული B-ს იმ პირობით, რომ (i) X-ს ჰქონდა არა უმცირეს X ერთეული ტრანზაქციის შესრულებამდე და A ადასტურებს ტრანზაქციას. აქედან გამომდინარე, ჟეტონების სისტემის იმპლემენტაციისთვის საჭიროა ეს ლოგიკა დავნერგოთ კონტრაქტში.

საბაზისო კოდი ჟეტონების სიტემის დასანერგად სერპენტის პროგრამულ ენაში იწერება შემდეგნაირად:

from = msg.sender

to = msg.data[0]

value = msg.data[1]

if contract.storage[from] >= value:

contract.storage[from] = contract.storage[from] value

contract.storage[to] = contract.storage[to] + value

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

ფინანსური დერივატივები და სტაბილური ვალუტები.

ფინანსური დერივატივები გონიერი კონტრაქტების ყველაზე გავრცელებული აპლიკაციებია და ერთ-ერთი ყველაზე ადვილად გასაწერი კოდებში. ასეთი სახის ფინანსური კონტრაქტებისთვის მთავარი სირთულე ისაა, რომ მათი უმეტესობისთვის აუცილებელია, დაუკავშირდნენ გარე ფასის ამთვლელს. მაგალითად, საკმაოდ მისაღები აპლიკაციაა გონიერი კონტრაქტი, რომელიც ახდენს ჰედჯირებას ეთერის გაცვლითი კურსის მერყეობის საწინააღმდეგოდ დოლართან მიმართებაში, მაგრამ ამის გასაკეთებლად, კონტრაქტმა უნდა იცოდეს, თუ რა არის ეთერის და დოლარის გაცვლითი კურსი. ამის შესასრულებლად, ყველაზე მარტივი მეთოდია ‘’მონაცემთა ფიდ’’ კონტრაქტი, რომელიც უზრუნველყოფილია მესამე პირის მიერ (მაგ NASDAQ) და რომელიც იძლევა საშუალებას, განაახლოს კონტრაქტი საჭიროებისამებრ და უზრუნველყოს ინტერფეისი, რომელიც სხვა კონტრაქტებს საშუალებას აძლევს, გამოუგზავნონ მესიჯები, რათა მან დაუბრუნოს ინფორმაცია ფასზე.

ჰედჯირების კონტრაქტი გამოიყურება ასე:

  1. დაველოდოთ მხარე A-ს, რომ შემოიტანოს 1000 ეთერი
  2. დაველოდოთ მხარე B-ს, რომ შემოიტანოს 1000 ეთერი.
  3. ჩაიწეროს 1000 ეთერის დოლარის ღირებულება, დაითვალოს მონაცემთა ფიდ- ის კონტრაქტიდან, შეინახოს საცავში, დავუშვათ = $X
  4. 30 დღის შემდეგ, A-ს, ან B-ს, შეეძლოს, გამოითხოვოს/დაპინგოს კონტრაქტი, იმისათვის, რომ $X-ის ღირებულების ეთერი გაეგზავნოს A-ს და დანარჩენი B-ს. (ისინი ისევ გამოიყენებენ მონაცემთა ფიდ კონტრაქტს ახალი ფასის გასაგებად)

ასეთ კონტრაქტს ექნება უდიდესი პოტენციალი კრიპტო-კომერციაში. ერთი უმთავრესი პრობლემა, რომელიც ახასიათებს კრიპტოვალუტებს ამჟამად, არის ფასის მერყეობა. ამასთან, ძალიან ბევრ მომხმარებელს და ვაჭარს უნდა, იყოს დაცული და ადვილად იყენებდეს, როდესაც საქმე კრიპტოგრაფიულ ქონებასთან აქვს. არავის არ სურს, დაკარგოს ღირებულების 23% სულ რაღაც ერთ დღეში. აქამდე, ამ პრობლემის ყველაზე ფართოდ გავრცელებული გადაჭრის გზა იყო გამომცემლით გამყარებული აქტივები: იდეა ისაა, რომ გამომცემელი ქმნის ქვე ვალუტას, რისი გამოცემის ან გაუქმების უფლებაც აქვს, სადაც ის გასცემს თითო ვალუტას თითო გარკვეულ ღირებულებაზე, მაგალითად ოქროზე ან ვერცხლზე. გამომცემელი ამ შემთხვევაში იძლევა პირობას, რომ ის დააბრუნებს იმ ღირებულების ერთეულს, რამდენ კრიპტო-აქტივსაც გავუგზავნით. ამ მექანიზმით შესაძლებელია, ნებისმიერი არა კრიპტოგრაფიული ქონება დომინირებდეს კრიპტოგრაფიულ ქონებაზე, სადაც გამომცემელი უნდა იყოს სანდო.

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

საიდენტიფიკაციო და რეპუტაციის სისტემები:

ყველაზე ადრეულმა ალტერნატიულმა კრიპტოვალუტამ, ნეიმკოინმა (namecoin), სცადა, გამოეყენებინა ბიტკოინის მაგვარი ბლოკჩეინი, რათა ეწარმოებინა სახელების რეგისტრაციის სისტემა, სადაც მომხმარებლებს შეეძლებოდათ სახელების დარეგისტრირება საჯარო მონაცემთა ბაზაში სხვა მონაცემებთან ერთად. ასევე, შეძლებოდათ დნს დომეინ სახელების დარეგისტრირებაც, მაგალიტად (bitcoin.org), ან ნეიმქოინის ქეისი bitcoin.bit, IP მისამართებზე. სხვა გამოყენების შემთხვევები იყო მეილების ვერიფიკაციის და პოტენციურად უფრო განვითარებული რეპუტაციის სისტემებიც. აქ გაჩვენებთ ნეიმქოინისნაირი სახელების რეგისტრაციის კოდს ეთერიუმის პლატფორმაზე.

if !contract.storage[tx.data[0]]:

contract.storage[tx.data[0]] = tx.data[1]

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

დეცენტრალიზებული ფაილების საცავი:

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

ასეთი სისტემის საკვანძო იდეა არის დეცენტრალიზებული დროპბოქსის კონტრაქტი. ეს კონტრაქტი მუშაობს ასე: პირველი, საჭირო მონაცემები იყოფა ბლოკებად, კოდირდება ბლოკების პირადი თავდაცვისთვის და ამ ბლოკებით იწყობა მერკელის ხე. შემდეგ, კეთდება კონტრაქტი, რომლის მიხედვითაც ყოველ N ბლოკში, კოტრაქტი გამოიყენებს შერჩვით ინდექსს მერკელის ხიდან (წინა ბლოკის ჰაშის გამოყენებით, როგორც შერჩევის წყარო). შემდეგ, მისცემს X რაოდენობის ეთერს პირველივე პირს, რათა უზრუნველყოს ტრანზაქცია გამარტივებული გადახდის ვერიფიკაციის მსგავსი ფლობის მტკიცებულებით რომელიმე მერკელის ხის ინდექსისთვის ბლოკში. თუ მომხმარებელს მოუნდება, ჩამოტვირთოს თავისი ფაილები, შეეძლება, გამოიყენოს მიკრო ტრანზაქციების არხი (მაგ.: გადაუხადოს 1 სზაბო ყოველ 32 ბიტზე), რათა ჩამოტვირთოს ფაილი. საკომისიოს მხრივ, გადამხდელისთვის ყველაზე ეფექტური გზაა, საერთოდ არ გაასაჯაროოს ტრანზაქცია, არამედ შეცვალოს ის უფრო მომგებიანით, სადაც ყოველ 32 კილობაიტში იქნება ერთი და იგივე ნონსი.

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

დეცენტრალიზებული ავტონომიური ორგანიზაციები:

დეცენტრალიზებული ორგანიზაციების ზოგადი კონცეფცია არის ციფრული ერთეული, რომელსაც ჰყავს წევრები ან მფლობელები და უმრავლესობას, ვთქვათ 67%-ს, აქვს ამ ერთეულის ფონდის დახარჯვისა და მის კოდში მოდიფიკაციების შეტანის უფლება. წევრები კოლექტიურად გადაწყვეტენ, თუ როგორ დაიხარჯოს ამ ერთეულის ფონდი. ‘’დ.ა.ო’’ — სფონდის დახარჯვის/განაწილების მეთოდები მრავალნაირია, დაწყებული ჯილდოებით, გათამაშებებით, ხელფასებით და უფრო ეგზოტიკური შიდა ვალუტებითაც სამუშაოს წახალისებისთვის. ეს იდეურად არასამთავრობო ორგანიზაციების ან ტრადიციული კომპანიის იდენტურია იურიდიული განხრით, მაგრამ იყენებს ბლოკჩეინს, როგორც ამ პოლიტიკის გამტარებელს. ამ დრომდე, ყველაზე მეტი დისკუსია მიმდინარეობს დაოს კაპიტალისტურ მოდელზე, ანუ ‘’დეცენტრალიზებულ ატვტონომიურ კორპორაციებზე’’ (დაკ), თავისი დივიდენდის მიმღები აქციონერებით და გაცვლადი/გასხვისებადი წილებით. ასევე, ალტერნატივა, რომელიცაა ‘’დეცენტრალიზებული ავტონომიური საზოგადოება/კომუნა ’’, სადაც ყველა წევრს ექნება ხმის მიცემის თანაბარი ძალაუფლება და საჭირო იქნება, 67%-მა გადაწყვიტოს ახალი წევრის დამატება ან არ დამატება. მოთხოვნა, რომ ერთ პირს ეკუთვნოდეს მხოლოდ ერთი ხმა, უნდა უზრუნველყოს თვითონ ამ ჯგუფის უმრავლესობამ.

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

  • [0,i,K,V] დაარეგისტრიროს შემოთავაზება, რომ ინდექსმა i-მ შეცვალოს საცავის მისამართი K ინდექსზე, V ოდენობით.
  • [0,i] დაარეგისტრიროს ხმის მიცემა i-ს შემოთავაზების სასარგებლოდ
  • [2,i] დაასრულოს შემოთავაზება, თუ მოგროვდება ხმების საკმარისი რაოდენობა

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

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

სხვა აპლიკაციები:

  1. დანაზოგის ელექტრონული საფულე — დავუშვათ, ალისას უნდა თავისი დანაზოგი შეინახოს დაცულად, მაგრამ ნერვიულობს, რომ ის დაკარგავს მას, რადგან ვიღაც დაუჰაკავს პირად გასაღებს. ის ჩადებს ამ დანაზოგს ბობთან კონტრაქტში, ანუ ბანკში, რომელიც ასე გამოიყურება:
  • ალისას შეუძლია, გამოიტანოს თავისი დანაზოგის 1% დღეში
  • ბობს შეუძლია, გამოიტანოს ფონდის 1% დღეში, მაგრამ ალისას თავისი პირადი გასაღებით შეუძლია, ბობს ეს ფუნქცია აუკრძალოს
  • ალისას და ბობს ერთად შეუძლიათ, რამდენიც უნდათ იმდენი გამოიტანონ

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

  1. მოსავლის დაზღვევა — შესაძლებელი იქნება ფინანსური დერივატივების კონტრაქტის გაკეთება, სადაც ფასის ინდექსის მაგივრად, კონტრაქტი გამოიყენებს ამინდის ინდექსს. თუ ფერმერი აიოვაში ყიდულობს დერივატივს, რომელიც იხდის აიოვაში ნისლის რევერსიულად, თუ აიოვაში იქნება გვალვა, იგი ავტომატურად მიიღებს თანხას და თუ იქნება წვიმიანი ამინდები, მაშინ ფერმერი იქნება კმაყოფილი, რადგან ეს კარგი იქნება მოსავლისთვის.
  2. დეცენტრალიზებული მონაცემთა ფიდი — ფინანსური ‘’კონტრაქტი განსხვავებისთვის’’ შეიძლება იყოს მონაცემთა ფიდის მიწოდების დეცენტრალიზებული საშუალება. ამ პროტოკოლს ეწოდება “SchellingCoin”. SchellingCoin მუშაობს შემდეგნაირად: ყველა N მხარე დებს სისტემაში მონაცემს, მაგალითად ETH/USD ფასს. მონაცემები და ოდენობები შემდეგ დახარისხდება 25-ე და 75-ე პროცენტულ ზღვარს შორის ყველა მიიღებს ჟეტონებს, როგორც ჯილდოს. ყველას ეკუთვნის ინცენტივი/ჯილდო კითხვაზე სწორი პასუხის გაცემისთვის და შემედგ შეთანხმებაზე და მხოლოდ ერთ რამეზე უმეტესობას შეთანხმება მოუწევს, არის სიმართლე. ეს თეორიულად ქმნის პროტოკოლს, რომელსაც შეეძლება, დეცენტრალიზებულად უზრუნველყოს ნებისმიერი მონაცემი, ETH/USD ფასი, ტემპერატურა ბერლინში, ან ნებისმიერი რთული კომუტაციის პასუხი.
  3. გონიერი მრავალ-ხელმოწერიანი ესქროუ — ბიტკოინი მრავალ ხელმოწერიანი ტრანზაქციების კონტრაქტების შექმნის საშუალებას იძლევა, მაგალითად, 5-იდან 3 გასაღებით შეიძლება დონდების დახარჯვა. ხოლო ეთერიუმს შეუძლია შემდეგი: 5-იდან 4-ს შეუძლია, მთლიანად დახარჯოს ფონდი, 5-იდან 3-ს შეუძლია, დახარჯოს 10% დღეში და 5-იდან 2 გასაღებს შეუძლია, დახარჯოს 0.5 % დღეში. უფრო მეტიც , ეთერიუმის მულტიხელმოწერა არის ასინქრონული, 2 მხარეს შეუძლია, დაარეგისტრიროს ხელმოწერები სხვადასხვა დროს ბლოკჩეინში და ბოლო ხელმოწერა ავტომატურად გაგზავნის ტრანზაქციას.
  4. ქლაუდ კომპუტაცია — ეთერიუმის ვირტუალური მანქანის (EVM) ტექნოლოგია შეიძლება გამოვიყენოთ ვერიფიკაციული კომპიუტერული გარემოს შესაქმნელად, სადაც ერთი მხარე მოსთხოვს მეორე მხარეს, რომ მათ მაგივრად გააკეთოს კომპუტაციები და მისი ნებისამებრ მოსთხოვოს ამის მტკიცებულება შერჩევითად ჩექპოინტების არჩევით და კომპუტაციებს შემოწმებით. ეს საშუალებას იძლევა, შეიქმნას ქლაუდ კომპუტაციების ბაზარი, სადაც ნებისმიერ მომხმარებელს შუძლია, მონაწილეობა მიიღოს თავისი ლეპტოპით, პერსონალური კომპიუტერით თუ სპეციალური სერვერით. რა თქმა უნდა, ასეთი სისტემა ყველანაირი დავალებებისთვის არ იქნება გამოსადეგი. დავალებებისთვის ან ამოცანებისთვის, რომლებსაც სჭირდება მაღალი დონის შიდა კომუნიკაცია, ეს სისტემა რთულად შესრულებადია.
  5. პირისპირა აზარტული თამაშები — რამდენიმე აზარტული თამაშის პროტოკოლი, როგორიცაა ფრანკ სტაიანო და რიჩარდ კლეიტონის Cyberdice, მარტივად დანერგვადია ეთერიუმის ბლოკჩეინზე. აზარტული თამაშების პროტოკოლის ყველაზე მარტივი კონტრაქტია ‘’განსხვავების კონტრაქტი’’ შემდეგი ბლოკის ჰაშზე. იმავე ნაწილიდან შესაძლებელია უფრო დახვეწილი პროტოკოლების დაშენება, რომლებიც შესაძლებელს გახდის აზარტული თამაშების პროტოკოლის დაშენებას თითქმის ნულოვანი საკომისიოებით და თაღლითობის გამძლეობით.
  6. პროგნოზირებადი ბაზრები — უკვე მოვიყვანეთ ორაკლი, ან “SchellingCoin“, პროგნოზირებადი ბაზრებიც დასანერგად ადვილია ეთერიუმის ბლოკჩეინში. პროგნოზირებადი ბაზრების კონცეფციამ და SchellingCoin პროტოკოლმა ერთად, შეიძლება დამტკიცონ, რომ ისინი არის დეცენტრალიზებული ორგანიზაციები მართვის საშუალება.
  7. ჯაჭვზე დაშენებული დეცენტრალიზებული საბაზრო სივრცე — მიღწევადია იდენტიფიკაციის და რეპუტაციების სისტემების გამოყენებით.

მოდიფიცირებული GHOST- ის იმპლემენტაცია

‘’Greedy Heaviest Observed Subtree’’ (GHOST) პროტოკოლი არის ინოვაცია, რომელიც პირველად შემოგვთავაზა იონათან სომპოლინსკიმ და ავივ ზოჰარმა 2013 წლის დეკემბერში. GHOST-ის პროტოკოლის მოტივაციაა, შეამციროს ტრანზაქციების დადასტურების დრო, მაგრამ ამჟამად მას უსაფრთხოების პრობლემა აქვს, ბლოკების ჩარჩენილობის მაღალი მაჩვენებლით. ვინაიდან ბლოკების გავრცელებას ქსელში სჭირდება რაღაც გარკვეული დრო, თუ A მოიპოვებს ბლოკს და ამავდროულად B-ც მოიპოვებს სხვა ბლოკს, B მაინერის ბლოკი იქნება ტყუილად მოპოვებული და უსაფრთხოებისთვის გამოუსადეგარი, რადგან A-მ და B-მ ერთი და იგივე ბლოკები მოიპოვეს, მაგრამ A-ს ბლოკს უფრო მეტი ტრანზაქცია მიემატა და, შესაბამისად, მისი ჯაჭვი უფრო დაგრძელდა, ვიდრე B-სი. უფრო მეტიც, არსებობს ცენტრალიზაციის რისკიც: თუ ‘’A’’ მაინერი სამომპოვებლო ბრიგადაში მოიპოვებს 30% ჰაშ-სიმძლავრით, ხოლო ‘’B’’-ს აქვს 10% ჰაშ-სიმძლავრე, ‘’A’’-ს ექნება შანსი, რომ წარმოქმნას ჩარჩენილი ბლოკი 70% შემთხვევაში, ხოლო ‘’B’’-ს ექნება 90% რისკის ალბათობა. ამასთან, თუ ბლოკებს შორის ინტერვალი იქნება მცირე, რათა წარმოიქმნას ბლოკების მაღალი ჩარჩენილობის განაკვეთი, მაინერი ‘’A’’ თავისი ჰაშ-სიმძლავრით იქნება საგრძნობლად მომგებიანი ვიდრე ‘’B’’. აქედან გამომდინარე, ბლოკჩეინები, რომლებსაც ბლოკებს შორის პატარა ინტერვალი აქვს დიდი ალბათობით მოიპოვებენ უმეტესი ქსელის სიძლიერეს, რათა ჰქონდეთ ქსელის მაინინგზე დე-ფაქტო მმართველობა.

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

ეთერიუმში დანერგილია გამარტივებული GHOST პროტოკოლი, რომელიც ითვლის ბლოკებს, მაგრამ 5 წინაპრის ჩათვლით. განსაკუთრებით ითვალისწინებს ჩარჩენილ ბლოკებს, მაგრამ მხოლოდ წინაპარი ბლოკების მეორე და მეხუთე ნათესავებამდე. ასეთ წესს აქვს თავისი მიზეზი. პირველი ის არის, რომ ყველა ბლოკის გამოთვლა გამოიწვევდა ძალიან ბევრ გართულებას წინაპარი ბლოკების ვალიდაციისთვის. მეორე, ულიმიტო GHOST პროტოკოლი, როგორც არის დანერგილი ეთერიუმში, მაინერებს უხსნის ჯილდოს, რომელსაც ისინი იღებენ მთავარ ქსელში/ჯაჭვში. საბოლოოდ, გამოთვლები გვაჩვენებს, რომ 5 დონიანი GHOST პროტოკოლი ინცენტივიზაციით, 95%-ით უფრო შედეგიანია, თუნდაც ბლოკების შექმნას 15 წამი დასჭირდეს, მაინერი 25% ჰაშ სიმძლავრით 3%-ზე მეტ ცენტრალიზების ამონაგებს ვერ ახერხებს.

საკომისიოები:

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

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

  • ‘’A’’ ტრანზაქციისთვის საჭიროა ‘’K’’ ოპერაცია, ჯილდო ამ ოპერაციაზე კი ‘’KR’’-ია, რომელსაც მიიღებს მაინერი და სადაც ‘’R’’ ჯილდოს აწესებს გამგზავნი (საკომისიო), ‘’K’’-სა და ‘’R’’-ს ოდენობა გარკვეულ დონეზე ჩანს მაინერისთვის.
  • ოპერაციის ხარჯი ჩავთვალოთ, რომ არის ‘’C’’ ნებისმიერი მაინერისთვის
  • არის სულ ‘’N’’ მაინერი ნოდები, ყველა ერთი და იგივე მაინინგ ძალით.(1/ნ სულ)
  • არ არსებობს არამაინერი სრული ნოდები

ამ შემთხვევაში, მაინერი იქნება კმაყოფილი, თუ ტრანზაქციის დამუშავების მოსალოდნელი ჯილდო იქნება ხარჯზე მეტი. ამიტომ, მოსალოდნელი ჯილდო იქნება ‘’ KR/N’’, რადგან ყველა მაინერს აქვს შემდეგი ბლოკის პოვნის თანაბარი შანსი, ხოლო ხარჯი იქნება ‘’KC’’. მაინერი შეიტანს ტრანზაქციას ბლოკში, თუ ‘’CR/N>KC, ან R>NC’’. აღვნიშნოთ რომ ‘’R’’ არის ოპერაციის წინა საკომისიო, რომელსაც აწესებს გამგზავნი, და ის მინიმუმია, რათა გამგზავნს მეტი სარგებელი დარჩეს, ხოლო ‘’NC’’ არის ხარჯი, რომელსაც წევს მთელი ქსელი ოპერაციის შესასრულებლად. აქედან გამომდინარე, მაინერი მოგებაში რჩება მაშინ, როდესაც მხოლოდ იმ ტრანზაქციებს შეიტანს ბლოკში, რომლის უტილიტარული ამონაგები გადააჭარბებს მის ხარჯს.

მაგრამ რეალურად, ჩვენი დაშვებიდან უამრავი გადახვევა არსებობს:

  1. მაინერი ხარჯავს იმაზე მეტს ტრანზაქციის გასატარებლად, ვიდრე სხვა ნოდები, რომლებიც ამას ადასტურებენ, რადგან ზედმეტი ვერიფიკაციის დრო აჭიანურებს ბლოკის ქსელში გავრცელებას და ზრდის ‘’ჩარჩენილი ბლოკის’’ წარმოქმნის შანსს.
  2. რეალურად, არსებობს არა მაინერი სრული ნოდები.
  3. მაინინგ სიმძლავრე შეიძლება განაწილდეს არათანაბრად.
  4. სპეკულანტები, პოლიტიკური მტრები და ადამიანები, რომლებსაც სურთ, ქსელს მიაყენონ ზიანი, არსებობენ რეალურ სამყაროში, და მათ შეუძლიათ ააწყონ კონტრაქტი, რომლის დანახარჯი ბევრად ნაკლებია, ვიდრე ნოდები, რომელთა ვერიფიცირებასაც უკეთებენ მას.

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

blk.oplimit = floor((blk.parent.oplimit * (EMAFACTOR — 1) + floor(parent.opcount * BLK_LIMIT_FACTOR)) /EMA_FACTOR)

BLK_LIMIT_FACTOR და EMA_FACTOR არიან მუდმივი ცვლადები და დავაყენეთ 65536 და 1,5 იმ დროისათვის, მაგრამ დიდი შანსია, ისინი შეიცვალოს უფრო მეტი ანალიტიკური გამოკვლევების შემდგომ.

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

ეთერიუმის ვირტუალური მანქანის (evm) მნიშვნელოვანი ასპექტია ის, რომ იგი არის ტურინგ დასრულებული. ეს ნიშნავს, რომ ვირტუალურ მანქანას შეუძლია კოდების ენაზე ნებისმიერი კომპუტაციის ჩატარება, უსასრულო ლუპების ჩათვლით. ვირტუალური მანქანა ლუპების საშუალებას ორი გზით იძლევა. პირველი: არსებობს JUMP-ის (გადახტომის) ინტრუქცია, რომლის დროსაც პროგრამა ხტება კოდის უკანა/წინა ნაწილში და JUMPI ინსტრუქცია, რომელიც არის პირობით გადახტომის ინსტრუქცია, მაგალითად ისეთი პირობის დაშვება, როგორიცაა: x < 27: x = x * 2.

მეორე: კონტრაქტებს შეუძლიათ, მოუხმონ სხვა კონტრაქტებს, პოტენციურად შესაძლებელია ლუპირება მათი რეკურსიით. მაგრამ ამას მივყავართ პრობლემამდე: შეუძლია ბოროტად განზრახულ მომხმარებელს ნოდის უსასრულო ლუპში გაშვებით მათ ზიანი მიაყენოს? ეს პრობლემა ჩნდება კომპიუტერული მეცნიერების პრობლემის გამო, რასაც ეწოდება ‘’halting problem’’ (გაჭედვის პრობლემა). არ არსებოს შემთხვევა, სადაც სრულად ცნობილია, ნებისმიერი პროგრამა როდესმე გაჩერდება, თუ არა, ანუ გაიჭედება თუ არა.

როგორც ზემოთ უკვე ავხსენით, ეთერიუმში ტრანზაქციებს კომპიუტერული/კალკულაციური ნაბიჯების წარმოქმნის ლიმიტი აქვთ და თუ კომპუტაცია ლიმიტს გასცდება, იგი ბრუნდება საწყის მდგომარეობაში, საკომისიოები კი მაინც გადასახდელია. ‘’მესიჯებიც’’ ამავე პრინციპით მუშაობს. მაგალითად:

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

ტურინგ დასრულებულობის ალტერნატივა არის ტურინგ დაუსრულებლობა, სადაც არ არსებობს jump & jumpi ინსტრუქციები. აქ დასაშვებია მხოლოდ ერთი კონტრაქტის ასლი. ტურინგ დაუსრულებლობა არ წარმოადგენს დიდ ლიმიტს. ყველა კონტრაქტიდან, რაც კი ჩვენ განვიხილეთ, მხოლოდ ერთს სჭირდება ლუპების არსებობა. ეს ლუპიც, შესაძლებელია, სკრიპტებით იყოს იმიტირებული კოდის 26-ჯერ გამეორებით. ტურინგ დაუსრულებლობა რეალურად არ არის პრობლემების გადაჭრის გზა. მოვიყვანოთ კონტრაქტის მაგალითი:

C0: call(C1); call(C1);

C1: call(C2); call(C2);

C2: call(C3); call(C3);

C49: call(C50); call(C50);

C50

გავუშვათ კოდის პირველი ნაბიჯი და ცვლილება შევინახოთ საცავში.

ახლა გავაგზავნოთ ტრანზაქცია ‘’A’’-სთან. ამ 51 ტრანზაქციაში, ჩვენ გვაქვს კონტრაქტი, რომელსაც სჭირდება 2-ის 50-ე ხარისხის კომპუტაციური ნაბიჯები. მაინერები ამხელა კომპუტაციური ნაბიჯების რაოდენობას თავიდანვე აღმოაჩენენ, სადაც კონტრაქტები სხვა კონტრაქტებს მოუხმობენ, მაგრამ ამ შემთხვევაში, მაინერებმა კოდის მეშვეობით უნდა აკრძალონ კონტრაქტების მიერ ოპერაციაში სხვა კონტრაქტების ჩართვა გაუთავებლად. კიდევ ერთი პრობლემატური ასპექტია ის, რომ მესიჯის მისამართის ველი არის ცვლადი. ზოგადად, შეუძლებელია წინასწარ იცოდე, მოყვანილი კონტრაქტი რომელ სხვა ახალ კონტრაქტს მოიხმობს. აქედან გამომდინარე, ტურინგ დაუსრულებლობა, რაც არ უნდა უცნაურად ჟღერდეს, ძალიან რთულად გასაკონტროლებელია, ხოლო ტურინგ დასრულებულობა ჯდება კონტროლის ლიმიტის ზღვრებში. მაგრამ რატომ არ შეიძლება, რომ ამ შემთხვევაში პროტოკოლი იყოს ტურინგ დასრულებული?

ვალუტა და გამოშვება:

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

● 1: wei

● ¹⁰¹²: szabo

● ¹⁰¹⁵: finney

● ¹⁰¹⁸: ether

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

  • ეთერი იქნება გამოშვებული ვალუტად, სადაც 1 ბიტკოინი ეღირება 1337–2000 ეთერი. ადრეულ მყიდველებს ექნებათ შესაძლებლობა, უფრო იაფადაც იყიდონ ეს ვალუტა. ეთერის გაყიდვით მოპოვებული მთლიანი ბიტკოინების რაოდენობა დაიხარჯება დეველოპერების და მკვლევრების ხელფასებისთვის და კვლევების უზრუნველსაყოფად.
  • გაყიდული ეთერების 0,099x გამოიყენება ადრეული პროექტის მხარდამჭერებისთვის და ინვესტორებისთვის, ხოლო კიდევ 0,099x — გრძელვადიანი კვლევითი პროექტებისთვის.

გაყიდული ეთერების 0,26x განაწილდება მაინერებზე ყოველწლიურად უსასრულო ვადით.

გამოშვების დეტალები ვრცლად:

სამუდამო წრფივი მიწოდების მოდელი ამცირებს იმის რისკს, რასაც ბიტკოინის შემთხვევაში სიმდიდრის არასამართლიან კონცენტრაციად თვლიან, რაც სამომავლო თაობებს და ახლაც მცხოვრებ ადამიანებს თანაბარ შანს აძლევს, რომ ეს ვალუტა მოიპოვონ, მაგრამ ამავდროულად ის წინააღმდეგობაშია ეთერის ცვეთასთან, რადგან მიწოდების ზრდის ტემპი, როგორც პროცენტული ინდექსი, იქნება 0-თან ახლოს დროის განმავლობაში. ჩვენ ასევე თეორიულად ჩამოვაყალიბეთ, რომ, რადგან ჟეტონები დროთა განმავლობაში იკარგება (სიკვდილიანობა, გაუფრთხილებლობდა და ასე შემდეგ), ეს შეიძლება პროცენტულად გადავიტანოთ ყოველწლიურ დანაკარგად წელიწადში. აქედან გამომდინარე, მთლიანი ვალუტის მიწოდება დასტაბილიზირდება დროთა განმავლობაში, მაგალითად, თუ დანაკარგი წლიურად იქნება 1% და მიწოდება გაიზრდება 26-ჯერ, 0,26-ჯერ გაიზრდება მოპოვებაც, 0.26-ჯერ გაიზრდება დანაკარგიც წელიწადში, რაც შექმნის ეკვილიბრიუმს.

მაინინგის/მოპოვების ცენტრალიზაცია:

ბიტკოინის მაინინგის ალგორითმი მუშაობს მაინერების SHA256 ალგორითმის ამოხსნით, ბლოკის სათაურის ჰაშებისა, მილიონჯერ, გაუთავებლად, სანამ რომელიმე ნოდი არ იპოვის ჰაშის იმ ვერსიას, რომელიც ნაკლებია 2-ის 190-ე ხარისხზე, მაგრამ ალგორითმის ეს ვერსია დაუცველია ორი სახის ცენტრალიზებისათვის: მაინინგის ეკოსისტემა დომინირებულია ასიკების მიერ, კომპიუტერული ჩიპები, რომელიც სპეციალურად შემუშავებულია ბიტკოინის მოსაპოვებლად და ბევრად მომგებიანია. ეს ნიშნავს, რომ ბიტკოინის მოპოვება არის ცენტრალიზებული, რისთვისაც საჭიროა მილიონობით კაპიტალი, რათა ეფექტურად მოიპოვონ ბიტკოინი. მეორე, ბიტკოინის მაინერები რეალურად ბლოკის ვალიდაციას არ ახორციელებენ ლოკალურად. ისინი არიან დამოკიდებულნი მაინინგ ავზებზე, რომლებიც უზრუნვეყოფენ ბლოკების სათაურებს. ეს უკანასკნელი შედარებით უარესი პრობლემაა. ამჟამად არსებობს მაინინგ ავზები, რომლებიც აკონტროლებენ ბიტკოინის ქსელის 50% სიმძლავრეს. ეს არის წახალისებული იმ ფაქტით, რომ მაინერებს შეუძლიათ სურვილისამებრ შეიცვალონ მინინგ ავზები, იმ შემთხვევაში თუ რომელიმე ავზი გადაწყვეტს ქსელზე თავდასხმას 51% სიმძლავრის შემთხვევაში.

ეთერიუმის მაინინგის შემთხვევაში, გამოიყენება ალგორითმი, სადაც შერჩევითად გენერირდება უნიკალური ჰაშ ფუნქცია ყოველ 1000 ნონსზე, რათა ასიკების გამოყენება არ მოხდეს ეთერიუმის მაინინგის შემთხვევაში. ასეთი სტრატეგია, რა თქმა უნდა, ვერ შეამცირებს ცენტრალიზირების რისკს 0-მდე, მაგრამ ეს არცაა საჭირო. აღვნიშნოთ, რომ ყველა ინდივიდუალური მომხმარებელს თავიანთ ლეპტოპზე ან პერსონალურ კონპიუტერზე, შეეძლება ჩაატაროს გარკვეული კომპუტაციები სრულიად უფასოდ, მხოლოდ ელექტროენერგიის საფასურად, მაგრამ 100% კომპიუტერის ძალის გამოყენების შემთხვევაში, დამატებითი მაინინგ და ელექტრო დანახარჯები გაუჩნდებათ. ასიკ მაინერების კომპანიებს უწევთ ბლოკის პირველივე ჰაშის ამოხსნისთანავე გადაიხადონ მოწყობილობის და ელექტროენერგიის ხარჯები. აქედან გამომდინარე, თუ ცენტრალიზირების მოპოვების კოეფიციენტი იქნება (E + H) / E -ზე ნაკლები, თუნდაც ასიკები გამოუშვან ეთერიუმის მაინინგისთვის, ყოველთვის იქნება ადგილი ჩვეულებრივი მაინერებისთვის.

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

მასშტაბურობა:

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

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

ახლო მომავალში, ეთერიუმი ორი საშუალებით აპირებს ამ პრობლემებთან გამკლავებას. პირველი არის ის, რომ არა უმცირეს ყველა ნოდისა ვალდებული იქნება, იყოს სრული ნოდი. მეორე კი, ყველა ტრანზაქციის დასრულებისას იქნება მდგომარეობის ფესვის ჰაში ბლოკჩეინში, თუნდაც ბლოკის ვალიდაცია იყოს ცენტრალიზირებული. ერთი პატიოსანი ნოდიც რომ არსებობდეს, ეს პრობლემა მოგვარებადი იქნება ვერიფიკაციის პროტოკოლით. თუ მაინერი გამოაქვეყნებს არავალიდურ ბლოკს, ბლოკი ან უნდა იყოს ცუდად ფორმატირებული, ან მდგომარეობა S[n] — არასწორი. რადგან ცნობილია, რომ S[0] არის სწორი, უნდა არსებობდეს საწყისი მდგომარეობა s[i], რომელიც არის არასწორი, სადაც S[i-1] არის სწორი. დამადასტურებელი ნოდი წარმოადგენს ინდექსს I, ასევე არასწორობის მტკიცებულებასაც ამასთან ერთად, რომელიც შედგება პატრიციას ხის ქვე ნოდების ტოტებისგან, სადაც APPLY(S[i-1],TX[i]) -> S[i] უნდა დამუშავდეს. ნოდებს შეეძლებათ იმ ნოდების ტოტების გამოყენება და კალკულაციების ჩატარება და აღმოაჩენენ, რომ გენერირებული s[i] არ ემთხვევა წარმოდგენილ s[i]-ს.

შეჯამება:

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

დასკვნა:

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

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

ბიბლიოგრაფია:

1. Intrinsic value: https://tinyurl.com/BitcoinMag-IntrinsicValue

2. Smart property: https://en.bitcoin.it/wiki/Smart_Property

3. Smart contracts: https://en.bitcoin.it/wiki/Contracts

4. B-money: http://www.weidai.com/bmoney.txt

5. Reusable proofs of work: http://www.finney.org/~hal/rpow/

6. Secure property titles with owner authority: http://szabo.best.vwh.net/securetitle.html

7. Bitcoin whitepaper: http://bitcoin.org/bitcoin.pdf

8. Namecoin: https://namecoin.org/

9. Zooko’s triangle: http://en.wikipedia.org/wiki/Zooko's_triangle

10. Colored coins whitepaper: https://tinyurl.com/coloredcoin-whitepaper

11. Mastercoin whitepaper: https://github.com/mastercoin-MSC/spec

12. Decentralized autonomous corporations, Bitcoin Magazine: https://tinyurl.com/Bootstrapping-DACs

13. Simplified payment verification:https://en.bitcoin.it/wiki/Scalability#Simplifiedpaymentverification

14. Merkle trees: http://en.wikipedia.org/wiki/Merkle_tree

15. Patricia trees: http://en.wikipedia.org/wiki/Patricia_tree

16. GHOST: http://www.cs.huji.ac.il/~avivz/pubs/13/btc_scalability_full.pdf

17. StorJ and Autonomous Agents, Jeff Garzik: https://tinyurl.com/storj-agents

18. Mike Hearn on Smart Property at Turing Festival: http://www.youtube.com/watch?v=Pu4PAMFPo5Y

ავტორი: ვიტალიკ ბუტერინი

მთარგმნელი: დათა სვიმონიშვილი

რედაქტორი: ანა მიქატაძე

--

--

CryptoZ Georgia
ტექნოლოზი

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