მონეტები SHA256-ზე. რა არის ბიტკოინის დაშიფვრის ალგორითმი? ბიტკოინის ჰეშირების ალგორითმის სუსტი და ძლიერი მხარეები

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

ამბავი

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

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


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

ანალიზი პირველად 2003 წელს გამოსცადეს, მაგრამ მაშინ არანაირი დაუცველობა არ აღმოჩნდა. დროთა განმავლობაში, გამოთვლითი ძალა განვითარდა. 2008 წელს აღმოაჩინეს შეჯახება SHA-512 და SHA-256-ის გამეორებებისთვის. იმავე წლის სექტემბერში შემუშავდა შეჯახების შექმნის მეთოდი SHA256-ის 31 და SHA-512-ის 27 გამეორებისთვის.

ცხადია, დადგა დრო ახალი კრიპტორეზისტენტული ფუნქციის შემუშავების. 2012 წელს NSA-მ SHA-3 გამოიგონა. თანდათანობით, განახლებული ალგორითმი ჩაანაცვლებს თავის ნაკლებად კრიპტორეზისტენტულ წინამორბედებს.

მაინინგი SHA 256-ზე

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

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

  • CPU (ცენტრალური დამუშავების ერთეული);
  • GPU (ვიდეო ბარათები);
  • ASIC (აპლიკაციის სპეციფიკური მოწყობილობა).

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


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

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

თუმცა, ამის გამოთვლა ადვილია. არსებობს კალკულატორები sha256-ზე მაინინგის მომგებიანობის გამოსათვლელად. მაგალითად, https://www.coinwarz.com/miningprofitability/sha-256. ფორმაში შეიყვანეთ თქვენი აღჭურვილობის ჰეშრეიტი (გამოთვლითი სიმძლავრე), ენერგიის მოხმარება და მისი ღირებულება, სერვისი გამოთვლის თქვენს მოგებას.

ალტკოინები SHA-256

მოდით შევხედოთ კრიპტოვალუტების სიას და სიას, რომლებიც მუშაობენ sha 256-ზე.

Bitcoin Cash (BCH)

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

Namecoin (NMC)

ეს არის ბიტკოინის ტექნოლოგიაზე დაფუძნებული სახელი-მნიშვნელობის კომბინაციების შენახვისა და გადაცემის სისტემა. მისი ყველაზე ცნობილი აპლიკაციაა დომენის სახელების განაწილების სისტემა, რომელიც დამოუკიდებელია ICANN-ისგან და, შესაბამისად, შეუძლებელს ხდის დომენის ხელახალი ფლობას. Namecoin ამოქმედდა 2011 წელს, ის მუშაობს Bitcoin მაინინგ პროგრამულ უზრუნველყოფაზე, რომელიც გადაგზავნილია სერვერზე, სადაც მუშაობს Namecoin.

DigiByte (DGB)

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

  • დაბალი ცვალებადობა მიიღწევა გამოშვებული მონეტების დიდი რაოდენობის გამო (21 მილიარდამდე), რაც უზრუნველყოფს მათ დაბალ ღირებულებას და მარტივად გამოყენებას გამოთვლებში;
  • უფრო სწრაფი ტრანზაქციები ორ წელიწადში ერთხელ ბლოკის ზომის გაორმაგებით;
  • დაბალი საკომისიო ან საკომისიოების გარეშე;
  • მაინინგის პროცესი დაყოფილია ხუთ ალგორითმად, რომელიც საშუალებას გაძლევთ მონეტების მოპოვება ერთმანეთისგან დამოუკიდებლად. შეგიძლიათ გამოიყენოთ ASIC SHA-256-ისთვის და Scrypt-ისთვის, ვიდეო ბარათები Groestl-ისთვის და Skein-ისთვის და პროცესორი Qubit-ისთვის.

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


ბიტკოინის დაშიფვრა ეფუძნება SHA-256-ს, სპეციალურ ალგორითმს, რომელიც პროგრამის კოდის ნაწილია. მისი ამოცანაა შეყვანილი მონაცემების გადაყვანა სიმბოლოების კონკრეტულ ნაკრებად (ანბანური და რიცხვითი წარმოდგენით) და ინფორმაციის დაცვა. ასეთ ქმედებებს ჰაშინგს უწოდებენ. რა არის ამ ალგორითმის დახვეწილობა? რატომ არის საჭირო და როგორ მუშაობს? რა არის დადებითი და უარყოფითი მხარეები? ამ და სხვა რიგ პუნქტებს დეტალურად განვიხილავთ.

რა დაშიფვრის ალგორითმი აქვს ბიტკოინს და სად გამოიყენება?

კრიპტოვალუტაზე, მისი ფუნქციონირებისა და მაინინგის თავისებურებებზე განხილვისას კრიპტო ქსელის მონაწილეები აუცილებლად ხვდებიან ისეთ ფართოდ გავრცელებულ განმარტებას, როგორიცაა ბიტკოინის დაშიფვრის ალგორითმი. BTC შემუშავების დღიდან დღემდე (2018 წლის 13 აგვისტო) გამოიყენება SHA-256, რომელიც აუცილებელია ბიტკოინის ქსელში შემდეგი პრობლემების გადასაჭრელად:

  1. BTC მისამართების ფორმირება (გამოიყენება ტრანზაქციებზე).
  2. მაინინგი (სამუშაო მტკიცებულება).
  3. უსაფრთხოებისა და ანონიმურობის საჭირო ხარისხის მიღწევა.
  4. ციფრული ხელმოწერისთვის და მისი ამოცნობისთვის.
SHA-256 ალგორითმი აქტუალურია არა მხოლოდ ბიტკოინისთვის, არამედ სხვა მონეტებისთვის, კერძოდ, Bitcoin Cash, Mazacoin, Peercoin, Namecoin და სხვა კრიპტოვალუტებისთვის. გარდა ამისა, SHA-2 (SHA-256-ის საფუძველი) გამოიყენება მრავალი პროტოკოლის შესაქმნელად, რომლებიც შექმნილია ინტერნეტში მონაცემების დასაცავად, კერძოდ, SSL, TSL და სხვა.

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

ბიტკოინის დაშიფვრის ალგორითმი - როგორ მუშაობს მარტივი სიტყვებით


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

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

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

ბიტკოინის დაშიფვრის სისწორე კონტროლდება ოთხი მოთხოვნით:

  1. შემოსულ მონაცემებში ცვლილებების შეტანისას, ჰეშის რაოდენობა იგივე რჩება.
  2. ჰეშირების დროს მიიღება ინდივიდუალური ჰეშის ჯამი (სიმბოლოების ნაკრები უნდა იყოს უნიკალური).
  3. გასაღების შექმნა ჰეშირების გამოყენებით ძალიან რთულია.
  4. ჰეშები შეუქცევადია. ეს ნიშნავს, რომ შეყვანის მონაცემებთან მუშაობა დასაშვებია საპირისპირო მოქმედების შესრულების შესაძლებლობის გარეშე.

როგორ მოქმედებს ეს ბიტკოინში?

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

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

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

როდის გამოჩნდა ბიტკოინის დაშიფვრის ალგორითმი - მოკლე ისტორია


ტერმინი "SHA" არის სამი სიტყვის აბრევიატურა: "უსაფრთხო ჰეშირების ალგორითმი". ბიტკოინი იყენებს SHA-256-ს, ხოლო აღნიშნული ჰეშის ფუნქციის „ბაზა“ არის SHA-2, რომელიც მოიცავს ბევრ კრიპტო ალგორითმს (მათ შორის 256).

SHA-2-ის შემქმნელები არიან შეერთებული შტატების NSA, სპეციალური სააგენტო, რომელიც ეხება ქვეყნის ეროვნული უსაფრთხოების საკითხებს. ალგორითმის შემუშავებისა და ტესტირების შემდეგ, ის 2002 წელს გამოვიდა საზოგადოებისთვის. ახალი SHA-2 ასევე მოიცავდა პირველ ჰეშის ფუნქციას SHA-1 (შეიქმნა 7 წლით ადრე - 1995 წელს). SHA-2-ის დანერგვის შემდეგ გამოვიდა ალგორითმის მრავალი ვარიანტი, რომელთაგან ერთ-ერთი გამოიყენა სატოში ნაკამოტომ ბიტკოინის შექმნისას 2009 წელს.

დეველოპერების მიზანი იყო გამოექვეყნებინათ ალგორითმი, რომელიც უზრუნველყოფდა სიმბოლოების შემთხვევითი ნაკრებიდან გარკვეული სიგრძის კონკრეტული მნიშვნელობის ფორმირებას. Მათ ეს გააკეთეს. მომავალში, მიღებული პარამეტრი გამოყენებული იქნება ინფორმაციის იდენტიფიცირებისთვის (შემოწმებისთვის). SHA-2-ის თავდაპირველი მიზანია დაიცვას მონაცემები სხვადასხვა სერვისებზე და დღეს (2018 წელს) SHA-256 ცნობილია, პირველ რიგში, როგორც ალგორითმი, რომელიც გამოიყენება მონეტების მაინინგში.

2012 წელს სისტემა გაუმჯობესდა და გამოჩნდა ჰეშის ფუნქციის განახლებული ვერსია - SHA-3. ითვლება, რომ დროთა განმავლობაში ახალი განვითარება ჩაანაცვლებს წინა ალგორითმებს, რაც გააუმჯობესებს უსაფრთხოების ისედაც მაღალ ხარისხს.

ბიტკოინის დაშიფვრის ალგორითმის მახასიათებლები


SHA-256-ის არსი მარტივია. საწყისი შეტყობინება დამატების შემდეგ იყოფა ბლოკებად და თითოეული მათგანი 16 სიტყვაა. შედეგად მიღებული ელემენტები გადიან სპეციალურ ციკლებს, რომლებიც მოიცავს 64 ან 80 ეტაპს. თითოეულ მათგანზე ორი სიტყვა გარდაიქმნება, ხოლო ტრანსფორმაციის ვარიანტი იქმნება დარჩენილი სიტყვებით. შედეგად მიღებული პარამეტრები შეჯამებულია ჰეშის შესაქმნელად.

ალგორითმის მუშაობის დროს გამოიყენება 6 ბრძანება:

  • "xor" - შლის "OR".
  • "shr" - გადააქვს ინდიკატორი ბიტების საჭირო რაოდენობის მიხედვით მარჯვნივ კონკრეტული სიხშირით.
  • "rots" - ცვლის ინდიკატორს ბიტების საჭირო რაოდენობის მიხედვით მარჯვნივ (კონკრეტული ციკლის გამოყენების გარეშე).
  • "II" - ელემენტების კავშირი, რომლებიც ბუნებით ხაზოვანია.
  • "და" - "და".
  • "+" - თვალთვალი.
პროტოკოლის მახასიათებლები:
  1. შეტყობინების ხანგრძლივობის ზედა ზღვარი არის 33 B.
  2. მაქსიმალური სიჩქარის პარამეტრია 139 MiB/s.
  3. სიტყვის ზომა - 4 B.
  4. ციკლში გამეორებების რაოდენობაა 64.
  5. ბლოკის ელემენტის ზომაა 64 B.
  6. მთლიანი ჰეშის კოდია 32 B.

ბიტკოინის დაშიფვრის ალგორითმი მაინინგში


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

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

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

  1. 2009 წელს BTC-ის გაჩენის შემდეგ, ისევე როგორც 2010 წლის შუა რიცხვებამდე, აქტუალური იყო ცენტრალური გადამამუშავებელი ერთეულის (CPU) გამოყენება.
  2. 2011 წლის შუა რიცხვებამდე მაინერები იყენებდნენ კომპიუტერებს ვიდეო ბარათებით (GPU).
  3. 2013 წლის დასაწყისამდე FGPA პოპულარული იყო, ისევე როგორც GPU ფერმები.
  4. 2014 წელს გამოჩნდა ASIC. მათ შეასრულეს არსებული აღჭურვილობა შესრულებაში. ამის მიუხედავად, 2017 წლის დასაწყისამდე მაინერები იყენებდნენ GPU ფერმებს და მუშაობდნენ აუზებში, მაგრამ 2017 წლის ბოლოსთვის და დღემდე აქტუალურია მხოლოდ - მაინერები. სხვა აღჭურვილობის გამოყენება წამგებიანია.
აღნიშნული მოწყობილობები გამოიყენება საინტერესო ჰეშის ფუნქციის შესარჩევად და ახლის გენერირებისთვის. რაც უფრო მაღალია მოწყობილობის ჰეშრეიტი (გამოთვლითი სიმძლავრე), მით უფრო სწრაფად ხდება მონაცემების დახარისხება და ნაკლები დრო სჭირდება გამოსავლის პოვნას.

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

ბიტკოინის ჰეშირების ალგორითმის სუსტი და ძლიერი მხარეები


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

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

  1. კონტროლი BTC მაინინგის მონაწილეების მიერ. აქ მუშაობს იგივე პრინციპი, როგორც სააქციო საზოგადოებაში (სს), როდესაც კომპანიის მონაწილეებს აქვთ აქციების გარკვეული რაოდენობა. რაც უფრო მეტი ძალაა კონცენტრირებული კრიპტო ქსელის მაინერების ხელში, მით უფრო ძლიერი იქნება მათი გავლენა მთლიან სისტემაზე. გარდა ამისა, 2018 წელს მაინინგის მზარდი სირთულის გამო, შესამჩნევია მაინინგის ტენდენცია გადავიდეს კერძო მაინერების ხელიდან მსხვილი ორგანიზაციების კონტროლზე, რომლებიც მონაწილეობენ ვირტუალური მონეტების მაინინგის აღჭურვილობის შექმნაში. ბიტკოინების მისაღებად კერძო მაინერმა უნდა დახარჯოს დიდი თანხები ASIC-ების შესაძენად, დაუკავშირდეს ერთ-ერთ აუზს და გადაიხადოს ელექტროენერგია. თუ თქვენ დაზოგავთ აღჭურვილობას, წარმოება კარგავს მომგებიანობას.
  2. ზემოთ განხილული სიტუაციის შედეგია ის ფაქტი, რომ ბიტკოინების „ლომის“ წილი კონცენტრირებულია მსხვილი მაინინგ კომპანიების მფლობელების ხელში. თუ გავითვალისწინებთ, რომ ყველა მიღებული ბიტკოინი არ გადის გაყიდვაში, ასეთი ორგანიზაციები იქცევიან ინვესტორებად და მონეტების მცველებად. შედეგად, მიმოქცევაში არსებული მონეტების რაოდენობა მცირდება. გარდა ამისა, კრიპტოვალუტის დაგროვება საშუალებას გაძლევთ გავლენა მოახდინოთ დეცენტრალიზაციაზე, ისევე როგორც BTC-ის გაცვლით კურსზე ვაჭრობის პროცესში.
  3. არსებული ხარვეზების გამო SHA-256 ალგორითმი თანდათან წარსულს ჩაბარდა და მის ადგილს უფრო მოწინავე პროექტები იკავებს. მაგალითად, Scrypt, Ethash, Blake-256, Equihash და სხვები პოპულარობას იძენს. ახალ ალგორითმებს აქვთ უკეთესი დაცვა და უსაფრთხოების დონე, რამაც აიძულა მრავალი კრიპტოვალუტის შემქმნელები დაეტოვებინათ მოძველებული SHA-256 უფრო მოწინავე ტექნოლოგიების სასარგებლოდ.
  4. დეველოპერების მიერ გამოვლენილი ძირითადი შეცდომების გამოსწორების მიუხედავად, ზოგიერთი დაუცველობა ვერ მოიხსნა (2008 წელს აღმოაჩინეს შეჯახება 22 გამეორებისთვის). სწორედ ამიტომ გაგრძელდა SHA-ს განვითარება და მეორე ვერსია შეიცვალა SHA-3-ით.
2009 წელს მე იძულებული გავხდი გამომეყენებინა SHA-256, რადგან კრიპტოვალუტის შექმნის დროს სახელმწიფო მთავრობებმა მიიღეს ეს პროტოკოლი. იმ დროს იგი აქტიურად გამოიყენებოდა მონაცემთა დაცვისთვის ზოგიერთ სამთავრობო პროგრამაში და ასევე გამოიყენებოდა კომერციულ სექტორში. აღმოჩნდა, რომ პროტოკოლი გარკვეული პრობლემების გადასაჭრელად შეიქმნა, სინამდვილეში კი სულ სხვაგვარად არის მოთხოვნა.

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

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

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

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

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

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

ჩვენ ვხსნით მასალების სერიას, რომელშიც შევეცდებით ავხსნათ ყველაზე ხელმისაწვდომი ფორმით, თუ რა დგას ამ იდუმალი აკრონიმების უკან, როგორიცაა Scrypt, SHA-256, X11 და სხვა. დავიწყოთ კრიპტოვალუტების სამყაროსთვის ყველაზე მნიშვნელოვანი (მაგრამ არა საუკეთესო) ალგორითმით - SHA-256. სწორედ ეს არის ბიტკოინის განვითარების საფუძველი. მანამდე კი განვსაზღვროთ ძირითადი ტერმინოლოგია - განვსაზღვროთ ტერმინების "მაინინგი" და "ჰეშის" მნიშვნელობა.

რა არის მაინინგი?

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

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

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

რა არის ჰაში?

ტერმინი „ჰაში“, რომელიც ყველასთვის გასაგები არ არის, ზემოთ იყო ნახსენები. ეს არის დაშიფვრის ერთ-ერთი ფუნდამენტური კონცეფცია ზოგადად და SHA-256 ალგორითმში, კერძოდ. მოდით განვმარტოთ, რას ნიშნავს ეს და გადავხედოთ ყველაზე მნიშვნელოვან საკითხებს.

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

მოვიყვანოთ მაგალითი. ჩვენ შეგვიძლია „გამოვკვებოთ“ ჰეშის ფუნქციები, ვთქვათ, რომანის ტექსტი A.S. პუშკინის ლექსში „ევგენი ონეგინი“, და გამომავალი იქნება თექვსმეტობითი კოდი დაახლოებით ასე:. რა თქმა უნდა, შეუძლებელია ამ კოდის უკან „გაშლა“ და „ევგენი ონეგინად“ გადაქცევა. მაგრამ როგორც კი შეცვლით ერთ სიმბოლოს ლექსში, თუნდაც დაამატებთ ერთ სივრცეს, შედეგად ჰეში გარდაიქმნება აღიარების მიღმა. მოცულობა ასევე არ მოქმედებს ჰეშის კოდის სიგრძეზე. ამრიგად, თქვენ შეგიძლიათ შეიყვანოთ ერთი სიმბოლო "a" ფუნქციაში და გამომავალი იქნება ზუსტად იგივე სიგრძის ფსევდო შემთხვევითი სიმბოლოების ნაკრები.

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

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

სწორი ჰეშის ძიება ხორციელდება უამრავი პრობლემის გადაჭრის შედეგების უბრალოდ ძიებით. SHA-256 ალგორითმში ჰეშის „სისწორე“ განისაზღვრება ჰეშის ჯამის დასაწყისში ნულების რაოდენობით. ალგორითმის მიერ განსაზღვრული გამოთვლებით ასეთი ჰეშის კოდის აღმოჩენის ალბათობა უმნიშვნელოა - ერთი შანსი მილიონობით გამოსავალში. ზუსტი ალბათობა განისაზღვრება კონკრეტული კრიპტოვალუტის დეცენტრალიზებულ სისტემაში არსებული სირთულის დონით.

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

SHA-256 პროტოკოლის მახასიათებლები

პირველი, ცოტა ისტორია. თავდაპირველად, SHA-256 დაშიფვრის ალგორითმი, უფრო სწორად, მისი პროტოტიპი, გამოიგონეს "ბოროტი" NSA-ს (აშშ-ის ეროვნული უსაფრთხოების სააგენტო) კედლებში ახლა შორეულ 2002 წელს. რამდენიმე თვეში ის შეიცვალა და ოფიციალურად იყო წარმოდგენილი ეროვნული მეტროლოგიური უნივერსიტეტის მიერ ფედერალურ დონეზე. ორი წლის შემდეგ გამოვიდა მისი მეორე, გაუმჯობესებული ვერსია.

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

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

ბიტკოინის სისტემაში მაინინგის ფარგლებში გამოთვლების განხორციელებისას, მიღებული ჰეშის კოდის ვარგისიანობის ნიშანი არის ნულების რიცხვი ხაზის დასაწყისში. მე-17-ის ბოლოს, მე-18-ის დასაწყისის მდგომარეობით, საჭირო წინა ნულების რაოდენობაა 17 (+/-). ასეთი კოდის აღმოჩენის ალბათობა არის დაახლოებით 1 1.4*10 20-ში. ეს არის საოცრად მცირე რიცხვი, რომელიც ეწინააღმდეგება გაგებას და შედარებულია ჩვენი პლანეტის ყველა ქვიშიან პლაჟზე გარკვეული ფორმის ქვიშის მარცვლის პოვნის ალბათობასთან. სწორედ ამიტომ ბიტკოინის მოპოვება მოითხოვს ამდენ გამოთვლით ძალას და ამდენ ელექტროენერგიას.

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

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

პროტოკოლი მოიცავს ინფორმაციის დაყოფას 512 ბიტიან ფრაგმენტებად თითოეული (ან 64 ბაიტი, რაც იგივეა, რადგან 1 ბაიტი = 8 ბიტი). შემდეგ კრიპტოგრაფიული „შერევა“ ხდება ალგორითმის თანდაყოლილი სქემის მიხედვით და გამომავალი არის 256 ბიტიანი ჰეშის კოდი. ჰეშირების ოპერაცია ხორციელდება 64 გამეორებით, რაც შედარებით ცოტაა, განსაკუთრებით გაჩენილ ახალ კრიპტოგრაფიულ ალგორითმებთან შედარებით.

SHA-256-ის ძირითადი ტექნიკური პარამეტრები შემდეგია:

  • ბლოკის ზომა: 64 ბაიტი;
  • შეტყობინების მაქსიმალური სიგრძე: 33 ბაიტი;
  • მიღებული ჰეშის კოდის ზომა: 32 ბაიტი;
  • გამეორებების რაოდენობა ერთ რაუნდში: 64;
  • მაქსიმალური სიჩქარე: დაახლოებით 140 MiB/s (მბიბიტი წამში).

თავის მუშაობაში ალგორითმი იყენებს ცნობილ Merkle-Damgard ტექნიკას, რომელიც გულისხმობს საწყისი ინდიკატორის ბლოკებად დაყოფას ცვლილებების შეტანისთანავე. ბლოკები, თავის მხრივ, იყოფა 16 სიტყვად.

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

SHA-256-ის ევოლუცია

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

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

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

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

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

ალგორითმის ნაკლოვანებები

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

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

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

ალგორითმის თითოეული გამეორება საკმაოდ პრიმიტიულად გამოიყურება - ძირითადი ორობითი ოპერაცია პლუს 32 ბიტიანი დამატება. ამიტომ SHA-256-ზე დაფუძნებული ASIC-ები ასე სწრაფად გაჩნდა, ნულზე ამრავლებდა "სახლის" მაინერების ყველა იმედს მხოლოდ პროცესორით და რამდენიმე ვიდეო ბარათით.

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

Შემაჯამებელი

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

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

SHA-256 პროტოკოლი ამჟამად კრიპტოვალუტის ბაზრის ლომის წილს იკავებს, მაგრამ ახალი ალტერნატივები უკვე თავდაჯერებულად უბიძგებს მას. მაგალითად, მეორე ყველაზე პოპულარული და „ძვირადღირებული“ საძვალე, Ethereum, იყენებს Ethash პროტოკოლს, რომელსაც ადრე ეწოდებოდა Dagger. პროტოკოლი იმდენად კარგია, რომ Ethereum დღემდე ინარჩუნებს მაქსიმალურ დეცენტრალიზაციას და ASIC მაინერები მისი მაინინგისთვის ჯერ კიდევ არ არსებობს ბუნებაში. შესაძლოა, Ethash ჩაანაცვლებს აშკარად მოძველებულ SHA-256-ს.

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

თუ მაინინგს განვიხილავთ ჩვეულებრივი ადამიანის პერსპექტივიდან, რომელსაც არ აქვს გამოცდილი ტექნიკური ნიუანსი, მაშინ ის ვერ იგრძნობს განსხვავებას Scrypt და SHA-256 ალგორითმებს შორის. ორივე პროტოკოლზე ASIC თითქმის ერთნაირად გამოიყურება, მოიხმარენ დაახლოებით ერთსა და იმავე რაოდენობის ელექტროენერგიას და აქვთ ზუსტად იგივე ვენტილატორის ხმაური. სხვა რამ არის კრიპტოვალუტის განაკვეთები, რომლებსაც ეს იგივე ASIC ამუშავებს, მაგრამ ეს სრულიად განსხვავებული ამბავია.

შემდეგ მასალას ამ თემის ფარგლებში მივუძღვნით აღნიშნულ ალტერნატიულ დაშიფვრის პროტოკოლს Scrypt.

SHA 256 არის კრიპტოგრაფიული ინსტრუქციების ნაკრები კრიპტოვალუტების მაინინგისთვის. სხვა სიტყვებით რომ ვთქვათ, ის საიმედოდ იცავს ქსელში არსებულ ყველა ტრანზაქციას და ართულებს ელექტრონული მონეტების მოპოვებას. ეს აბრევიატურა ნიშნავს Secure Hashing Algorithm, რაც ნიშნავს უაღრესად პოპულარულ და ეფექტურ ჰეშინგ მეთოდს.

SHA 256-ის არსი არის ინფორმაციის გადაქცევა მნიშვნელობებად, რიცხვებად. ამ ჯაჭვს აქვს ფიქსირებული სიგრძე. ეს ნიშნავს, რომ ნებისმიერი ინფორმაცია, რომელსაც თქვენ გადასცემთ ქსელში, დაშიფრული იქნება სპეციალური მნიშვნელობებით - იდენტიფიკატორებით (ID).

ტრანზაქციების განხორციელებისას SHA 256 ალგორითმი ID-ს ადარებს პირვანდელ მონაცემებს, რომელთა მოძიება შეუძლებელია და შემდეგ უზრუნველყოფს ტრანზაქციაზე წვდომას. ეს პროტოკოლი ახლა გამოიყენება კრიპტოვალუტების მაინინგში, როგორიცაა BTC და BCH.

გარეგნობის ისტორია

როგორ მოხდა, რომ ბიტკოინმა დაიწყო SHA 256-ის გამოყენება? ყველაფერი დაიწყო იმით, რომ ალგორითმი გახდა SHA-2 ოჯახის წევრი, რომელსაც აქვს ჰეშის ჯაჭვის ზომა 224-512 ბიტი.

ისინი, თავის მხრივ, შეიქმნა მათი დიდი ბაბუის - SHA-1-ის საფუძველზე, რომლის ჰეშის სიგრძე 160 ბიტი იყო. ტექნოლოგია გამოჩნდა 1995 წელს და გამიზნული იყო სამოქალაქო მიზნებისთვის გამოსაყენებლად - ეს არის ჩვეულებრივი, არასახელმწიფოებრივი მნიშვნელოვანი ინფორმაციის დაშიფვრა.

SHA-2 ოჯახი, რომელსაც SHA 256 ეკუთვნის, ეროვნული უსაფრთხოების სააგენტომ 16 წლის წინ - 2002 წლის გაზაფხულზე შექმნა. ამის საფუძველზე შეგვიძლია ვთქვათ, რომ ალგორითმი მორალურად მოძველებულია. თუმცა, ის მაინც არის ერთ-ერთი უძლიერესი ალგორითმი ქსელში ტრანზაქციების დაშიფვრისთვის.

SHA 256-ის ტექნიკური პარამეტრები

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

SHA 256 ალგორითმული ინსტრუქციების მოკლე მახასიათებლები:

  • 64-ბიტიანი ბლოკები - მუშაობს ყველაზე სწრაფად 32-ბიტიან ბლოკებთან;
  • ინფორმაციის დაშიფრული ჯაჭვის პიკური სიგრძეა 33 ბაიტი;
  • შეტყობინების დაიჯესტის ზომა - 32 ბაიტი;
  • ერთი სიტყვის სტანდარტიზებული ზომაა 4 ბაიტი;
  • დაშიფვრის ციკლი ოპერაციის ერთ რაუნდში არის 64 ბაიტი;
  • სიჩქარე, რომლითაც მუშაობს ალგორითმი არის 140 Mbit/s.

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

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

კრიპტოვალუტები SHA 256 ალგორითმით

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

  • peercoin, რომლის თავისებურება ის არის, რომ კოდი იქმნება cue ball-ის საფუძველზე, მაგრამ PoS გამოიყენება მთელი ქსელის დასაცავად და PoW პასუხისმგებელია მონეტების განაწილებაზე;
  • namecoin არის ციფრული ვალუტა, რომელიც მოქმედებს როგორც დაცვის, კონფიდენციალურობისა და დეცენტრალიზაციის საშუალება; უნობტანიუმი - აქვს უკიდურესად დაბალი ინფლაცია; ყველა მონეტის მოპოვებას მინიმუმ 300 წელი დასჭირდება;
  • deutsche eMark არის გერმანული მიკროქსელი, რომელიც გამოიყენება აქტივებისა და ფულის გაცვლისთვის. თავად პროცესი ხდება შუამავლების გარეშე; betaCoin - მუშაობს იმავე პრინციპით, როგორც მსოფლიოში ცნობილი BitCoin;
  • jouleCoin - ასევე დაფუძნებულია ბაბუა ბიტკოინზე, მაგრამ უზრუნველყოფს ტრანზაქციების უფრო სწრაფ დადასტურებას;
  • steemit ცალკე საძვალე კი არ არის, არამედ მთელი პლატფორმა ბლოკჩეინზე. მისი მთავარი ამოცანაა საინტერესო პუბლიკაციების დაჯილდოება.

Litecoin ასევე იყენებს SHA 256 ალგორითმს, მაგრამ არა მთელ სისტემაში, არამედ ქვეპროგრამაში. Litecoin მაინინგისთვის გამოიყენება Scrypt უსაფრთხოების პროტოკოლი, რომელიც ზრდის მაინინგის სირთულეს და ამცირებს ASIC-ების ანაზღაურებას.

კრიპტოვალუტის მაინინგი SHA 256 ალგორითმის საფუძველზე

ელექტრონული მონეტების მოსაპოვებლად, რომლებიც დაფუძნებულია SHA-2 ოჯახზე, არ არის საჭირო სპეციალიზებული ინსტრუმენტების გამოყენება - ASIC. ორივე CPU და GPU დაფუძნებული მეურნეობები კარგად მუშაობენ მაინინგში. ეს უკანასკნელი სიჩქარით აშკარად აღემატება პირველს.

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

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

ვიდეო ბარათებს შორის, Nvidia-ს GTX 1080 Ti კარგად მუშაობს. ის აწარმოებს 1400 წარმატებულ ოპერაციას წამში. AMD ოდნავ ჩამორჩება Vega ხაზის ბარათებით - 1200 MH/s. ასევე არის უფრო იაფი ვარიანტები, როგორიცაა Radeon 7970, მაგრამ მისი სიჩქარე არ აღემატება 800 MH/s.

SHA 256 ალგორითმი, მიუხედავად იმისა, რომ ძველია, მაინც გამოიყენება ბიტკოინში, მსოფლიოში ნომერ 1 კრიპტოვალუტაში. პროტოკოლი ასევე გამოიყენება სხვა პერსპექტიულ ალტკოინებში. SHA256 თანდათან იცვლება Scrypt-ით, მაგრამ ბიტკოინი მასზე გადასვლას არ გეგმავს. მაინინგთან დაკავშირებით, ყველაფერი მარტივია - თუ ფული გაქვთ, აიღეთ ASIC მაღალი ჰეშის სიჩქარით. გსურთ უფრო ეკონომიური გადაწყვეტა? შემდეგ შექმენით ფერმა AMD ან Nvidia ვიდეო ბარათებიდან.

  • თარგმანი

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

ერთი კრიპტო რაუნდი

მაინინგი

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

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

ბიტკოინში, ჰეშის მოქმედების კრიტერიუმი არის საკმარისი რაოდენობის წამყვანი ნულები. ასეთი ჰეშის პოვნა ისეთივე რთულია, როგორც, მაგალითად, მანქანის ან ტელეფონის ნომრის პოვნა, რომელიც მთავრდება რამდენიმე ნულით. მაგრამ, რა თქმა უნდა, ჰაშისთვის ეს ექსპონენტურად უფრო რთულია. ამჟამად, მოქმედი ჰეში უნდა შეიცავდეს დაახლოებით 17 მთავარ ნულს, რომელიც დაკმაყოფილებულია მხოლოდ 1-ით 1.4x10 20-ში. თუ ანალოგიას გამოვხატავთ, მაშინ ასეთი მნიშვნელობის პოვნა უფრო რთულია, ვიდრე დედამიწის მთელ ქვიშას შორის კონკრეტული ნაწილაკის პოვნა.

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

უმრავლესობის ფუნქცია (Ma ბლოკი) მოქმედებს ბიტალურად სიტყვებზე A, B და C. თითოეული ბიტის პოზიციისთვის ის აბრუნებს 0-ს, თუ ამ პოზიციაზე შემავალი ბიტების უმეტესობა ნულია, წინააღმდეგ შემთხვევაში ის აბრუნებს 1-ს.

ბლოკი Σ0 აბრუნებს A-ს 2 ბიტით, შემდეგ თავდაპირველი სიტყვა A ბრუნავს 13 ბიტით და ანალოგიურად 22 ბიტით. შედეგად მიღებული სამი გადანაცვლებული ვერსია A-ს ემატება ბიტიურად მოდული 2 ( ნორმალური xor, (A ror 2) xor (A ror 13) xor (A ror 22)).

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

Σ1 სტრუქტურაში ჰგავს Σ0-ს, მაგრამ მუშაობს სიტყვა E-სთან და შესაბამისი ცვლის მუდმივებია 6, 11 და 25.

წითელი ბლოკები ასრულებენ 32-ბიტიან დამატებას, ქმნიან ახალ მნიშვნელობებს გამომავალი სიტყვებისთვის A და E. მნიშვნელობა W t გენერირდება შეყვანის მონაცემების საფუძველზე (ეს ხდება ალგორითმის იმ ნაწილში, რომელიც იღებს და ამუშავებს შეშირებულ მონაცემებს. ეს ჩვენს ფარგლებს სცილდება). K t არის საკუთარი მუდმივი თითოეული რაუნდისთვის.

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

ჩვენ ხელით ვამუშავებთ

ვიდეოში მე ვაჩვენებ, თუ როგორ შეგიძლიათ გაიაროთ კალმით და ქაღალდით აღწერილი ყველა ნაბიჯი. მე შევასრულე ჰეშირების პირველი რაუნდი ბლოკის მოსაპოვებლად. დამჭირდა 16 წუთი, 45 წამი.


ნება მომეცით ავხსნა ცოტა რა ხდება: მე ჩავწერე სიტყვები A-დან H-მდე თექვსმეტობითი ფორმით და თითოეულის ქვეშ გავაკეთე თარგმანი ორობით ფორმაში. Ma ბლოკის შედეგი არის C სიტყვის ქვემოთ, ხოლო A-ს მნიშვნელობები ცვლების შემდეგ და გამომავალი Σ0 გამოჩნდება A-ს ხაზის ზემოთ. Select ფუნქცია გამოჩნდება G-ს ქვემოთ, ბოლოს კი შესაბამისი გადაადგილებული ვერსიები E და მნიშვნელობა ბლოკის შემდეგ Σ1 გადადის ხაზის ზემოთ E-სთან ერთად. ქვედა მარჯვენა კუთხეში შესრულებულია დამატება, რომლის შედეგი ჩართულია როგორც ახალი A, ასევე ახალი E (პირველი სამი წითელი შემაჯამებელი ბლოკის) გამოთვლაში. ზედა მარჯვენა მხარეს გამოვთვალე A-ს ახალი მნიშვნელობა, ხოლო შუაში არის E-ის ახალი მნიშვნელობის გამოთვლა. ყველა ეს ნაბიჯი ზემოთ იყო განხილული და ადვილად შეიძლება აკონტროლოთ დიაგრამაზე.

ვიდეოში ნაჩვენები რაუნდის გარდა, ჩავატარე კიდევ ერთი - ბოლო 64-ე ჰეშინგ რაუნდი კონკრეტული ბიტკოინის ბლოკისთვის. ფოტოზე ჰეშის მნიშვნელობა მონიშნულია ყვითლად. ნულების რიცხვი ადასტურებს, რომ ეს არის სწორი ბიტკოინის ჰეში. გაითვალისწინეთ, რომ ნულები განლაგებულია ჰეშის ბოლოს და არა დასაწყისში, როგორც ადრე დავწერე. მიზეზი ის არის, რომ ბიტკოინი უბრალოდ აბრუნებს SHA-256-ის მიერ მიღებულ ბაიტებს.


SHA-256-ის ბოლო რაუნდი, რის შედეგადაც ჩანს წარმატებით მოპოვებული ბიტკოინის ბლოკი

რას ნიშნავს ეს ყველაფერი ტექნიკის მაინერების დიზაინისთვის?

SHA-256-ის თითოეული ნაბიჯი ძალიან მარტივად გამოიყურება ციფრულ ლოგიკაში - მარტივი ბიტის ოპერაციები და 32-ბიტიანი ჯამები (თუ თქვენ ოდესმე შეისწავლეთ მიკროსქემის დიზაინი, ალბათ უკვე წარმოგიდგენიათ, როგორი შეიძლება გამოიყურებოდეს ეს აპარატურაში). ამიტომ, ASIC-ები ახორციელებენ SHA-256-ს ძალიან ეფექტურად, პარალელურად ათავსებენ ასობით SHA-256 რაუნდის შემსრულებელ ერთეულს. ქვემოთ მოცემულ ფოტოზე ნაჩვენებია მაინინგ ჩიპი, რომელსაც შეუძლია გამოთვალოს 2-3 მილიარდი ჰეში წამში. მეტი ფოტო შეგიძლიათ ნახოთ Zeptobars-ზე.


Bitfury ASIC ჩიპის სილიკონის კადრი, რომელსაც შეუძლია ბიტკოინის მოპოვება წამში 2-3 გიგაჰეშზე. სურათი Zeptobars-დან. (CC BY 3.0)

ბიტკოინისგან განსხვავებით, Litecoin, Dogecoin და სხვა მსგავსი ალტერნატიული მონეტების სისტემები იყენებენ სკრიპტის ჰეშირების ალგორითმს, რომელიც არსებითად რთულია აპარატურაში დანერგვა. ეს ალგორითმი შესრულების დროს მეხსიერებაში ინახავს 1024 სხვადასხვა ჰეშის მნიშვნელობას და აერთიანებს მათ გამოსავალზე საბოლოო შედეგის მისაღებად. ამიტომ, SHA-256 ჰეშებთან შედარებით, გაცილებით მეტი მეხსიერება და მიკროსქემებია საჭირო სკრიპტის ჰეშების გამოსათვლელად. ჰეშინგის ალგორითმის შეცვლის გავლენა აშკარად ჩანს მაინინგის შესაბამისი აპარატურის შედარებისას - სკრიპტის ვერსიები (Litecoin და სხვები) ათასობითჯერ უფრო ნელია, ვიდრე SHA-256 (Bitcoin) ვერსიები.

დასკვნა

SHA-256 მოულოდნელად იმდენად მარტივი იყო, რომ მისი ხელით გამოთვლაც კი შეიძლებოდა (ელიფსური მრუდის ალგორითმი, რომელიც გამოიყენება ბიტკოინის ტრანზაქციის ხელმოწერისთვის, გაცილებით მტკივნეული იქნებოდა, რადგან ის მოიცავს 32-ბაიტიანი რიცხვების გამრავლებას). SHA-256-ის ერთი რაუნდის გამოთვლას 16 წუთი, 45 წამი დამჭირდა. ამ შესრულებით, ბიტკოინის მთლიანი ბლოკის (128 რაუნდი) ჰეშირებას დასჭირდება 1,49 დღე, ანუ ვიღებთ ჰეშირების სიჩქარეს 0,67 ჰეშის დღეში (სინამდვილეში, რა თქმა უნდა, პროცესი დააჩქარებს პრაქტიკას). შედარებისთვის, ბიტკოინის მაინერების ამჟამინდელი თაობა აწარმოებს რამდენიმე ტერაჰაშს წამში, რაც ჩემზე დაახლოებით კვინტილიონჯერ უფრო სწრაფია. ვფიქრობ, ნათელია, რომ ბიტკოინის ხელით მაინინგი არც თუ ისე პრაქტიკულია.

Reddit-ის მკითხველმა მკითხა ჩემი ენერგიის დახარჯვის შესახებ. ვინაიდან მე არ ვატარებ რაიმე სერიოზულ ფიზიკურ ძალისხმევას, შეგვიძლია ვივარაუდოთ, რომ მეტაბოლური მაჩვენებელი იქნება 1500 კილოკალორია დღეში, შემდეგ აღმოვაჩენთ, რომ ხელით ჰეშინგს სჭირდება თითქმის 10 მეგაჯოული თითო ჰეშზე. ტიპიური მოხმარების ენერგია. რკინის მაღაროელისთვის არის 1000 მაღაში თითო ჯოულზე. ამრიგად, მე ნაკლებად ენერგოეფექტური ვარ, ვიდრე სპეციალიზებული რკინის ნაჭერი 10^16-ჯერ (10 კვადრილიონი). სხვა საკითხია ენერგიის ღირებულება. ენერგიის იაფი წყაროა დონატი 23-ზე. ცენტი 200 კილოკალორიაზე მე მაქვს ელექტროენერგია 15 ცენტი ღირს 1 კილოვატ საათში, რაც დონატზე 6,7-ჯერ იაფია, შედეგად, ენერგიის ღირებულება ჰეშის თვალსაზრისით ჩემთვის, როგორც ადამიანის მაინერისთვის, 67 კვადრილიონჯერ მეტია. დიახ, გასაგებია, რომ ვერ მივიღებ, წარმატებებს გისურვებთ ბიტკოინის ხელით მაინინგში და ეს არც ქაღალდისა და კალმების ღირებულებას ითვალისწინებს!