როგორ ახერხებს ბიტკონის საკვანძო სისტემა ტრანზაქციების დასტურს?
საკვანძო სისტემა აკვირდება ყველა მიღებულ ტრანზაქციას და იწყებს რიგ შემოწმებებს, რომ დაადასტუროს იგი. თითოეული ეს სისტემა ქმნის თავის საკუთარ სატრანზაქციო ავზს, რომლებიც ძირითადად ერთმანეთის მსგავსია. პირობები შეიძლება შეიცვალოს ან განვითარდეს დროთა განმავლობაში, ამ დროინდელი სია კი შესაძლებელია ნახოთ AcceptToMemoryPool, CheckTransaction და CheckInputs ბიტკოინის პროგრამაში.
ტრანზაქციის სინტაქსისა და მონაცემების სტრუქტურა არის სწორი.
შეტანილ (input) და გამოტანილ (output) მონაცემებს აქვს ღირებულება.
ტრანზაქციის ზომა 1 მეგაბაიტზე ნაკლებია.
ფასი უნდა იყოს 0-ზე მეტი და 21 მილიონზე ნაკლები.
არც ერთ ინფუთს არ აქვს 0-ის ტოლი ჰაში.
ტრანზაქციის მონაცემების ჩაწერის დრო (locktime) ნაკლებია დასაშვები დროის მაქსიმუმზე.
ტრანზაქციის ზომა 100 ბიტზე მეტია ან ტოლი.
ხელმოწერების რაოდენობა ნაკლებია, ვიდრე ხელომოწერების ზღვარი.
ბლოკის ამხსნელი სკრიპტი (unlocking scrypt) მხოლოდ შეიტანს ინფორმაციას.
დამბლოკავი სკრიპტი (locking scrypt) უნდა დაემთხვეს ფორმატს უცვლელად.
ტრანზაქციის დამთხვევები უნდა მოიძებნებოდეს.
თუ კი ტრანზაქცია დაიკარგა, განათავსეთ ტრანზაქცია დაკარგულთა ავზში.
თუ ტრანზაქცია არის პირველი ბლოკში (coinbase), მაშინ ტრანზაქციას უნდა ჰქონდეს 100 თანხმობა.
ინფუთისთვის უნდა არსებობდეს აუთფუთი და ის არ უნდა იყოს დახარჯული.
შეამოწმეთ, რომ თითოეული ინფუთის ღირებულება საჭირო ფარგლებს არ სცდება.
უარყავით ტრანზაქცია, თუ ინფუთის ღირებულება ნაკლებია, ვიდრე აუთფუთის.
უარყავით ტრანზაქცია, თუ მისი ღირებულება ზედმეტად დაბალია, რომ თავისუფალ ბლოკში მოხვდეს.
ბლოკის ამხსნელი სკრიპტი თითოეული ინფუთისთვის უნდა იყოს დადასტურებული აუთფუთის დამბლოკველი სკრიპტის საწინააღმდეგოდ.