Thợ đào (Miner) thêm các giao dịch (Transaction) vào Blockchain như thế nào?

cach-mot-miner-them-cac-giao-dich-vao-blockchain-6

Đã bao giờ bạn tự hỏi làm thế nào quá trình khai thác trên một blockchain hoạt động, hoặc làm thế nào giao dịch của bạn được xác nhận và chèn vào blockchain?

Đây là cách một giao dịch di chuyển từ ví của bạn vào blockchain, trong bảy bước.

Bước 1: Người dùng đăng xuất các giao dịch từ ví.

Bước 2: Giao dịch được chọn bởi mạng blockchain từ nơi các giao dịch chưa được xác nhận.

Bước 3: Các miner (thường được gọi là nodes) chọn giao dịch và thêm chúng vào block của họ. Một block cơ bản là một tập hợp các giao dịch (trong trường hợp này, các giao dịch chưa được xác nhận). Lưu ý rằng mỗi miner tạo block riêng, nhưng nhiều miner có thể thêm cùng một giao dịch vào các block của họ. Một ví dụ có hai miner, miner A và miner B. Cả miner A và miner B có thể quyết định đưa giao dịch X vào block của họ. Một block có kích thước cố định. Trên blockchain của Bitcoin, kích thước tối đa của một block là 2 MB. Tuy nhiên, trước khi một miner có thể thêm một giao dịch vào block của họ, nó cần phải kiểm tra xem giao dịch có đủ điều kiện để được thực hiện hay không. Họ làm điều này bằng cách kiểm tra số dư được giả định của địa chỉ người gửi trên blockchain. Nếu địa chỉ của người gửi có đủ tiền, giao dịch được coi là hợp lệ và có thể được thêm vào block. Người khai thác thường sẽ ưu tiên các giao dịch có phí giao dịch cao vì điều này có lợi hơn cho họ. Tóm tắt bước ba: các miner trên mạng chọn các giao dịch từ nhóm các giao dịch chưa được xác nhận và thu vào một block.

Bước 4: Khi một miner đã điền các giao dịch vào block, nó sẽ bắt đầu giải quyết một vấn đề toán học phức tạp duy nhất cho block đó cùng nhau. Mặc dù vấn đề cho mỗi block là khác nhau, có nghĩa là mỗi miner sẽ làm việc trên một vấn đề khác nhau kết nối với block riêng của nó, nhưng khó khăn của những vấn đề này là như nhau. Nếu bạn muốn biết thêm chi tiết về quy trình này, vui lòng tiếp tục đọc bên dưới, nếu không hãy chuyển sang bước 5.

Các vấn đề toán học mỗi miner đang phải đối mặt khi cố gắng để nhập một block vào blockchain là để tìm một hash cho dữ liệu trong block sao cho số đầu tiên trong hash là số không. Nghe có vẻ phức tạp, phải không? Hãy đến với ví dụ cụ thể sau đây:

Trước khi chúng ta tiến hành, điều quan trọng là phải biết ‘hash function’ là gì?. Đừng sợ, tôi sẽ không đi vào chi tiết quá nhiều. ’Hash function’ là làm một chuỗi các số và chữ cái biến thành một chuỗi gồm 32 ký tự có sẵn từ các chữ cái và số ngẫu nhiên. Chuỗi 32 chữ số này là ‘hash’. Nếu bất kỳ số hoặc chữ cái nào trong chuỗi chèn được thay đổi, hash cũng sẽ thay đổi hoàn toàn. Tuy nhiên, cùng một chuỗi đầu vào sẽ luôn cung cấp cùng một chuỗi đầu ra (hash).

Bây giờ hãy xem xét dữ liệu bên trong một block, đầu vào (một chuỗi dữ liệu). Khi đầu vào này được hash, nó cung cấp cho đầu ra một hash (chuỗi 32 chữ số). Một quy tắc trong chuỗi blockchain của bitcoin là chuỗi đầu ra cần phải bắt đầu bằng số 0 để cho block được thêm vào blockchain. Nhưng nếu hash không bắt đầu bằng số 0 ở đầu ra, phải làm sao? Vâng, đây là lý do tại sao miner thêm vào một đoạn mã và liên tục thay đổi nó, đoạn mã được gọi là nonce . Bởi vì nonce thay đổi, dữ liệu đầu vào cho ‘hash function’ cũng thay đổi, dẫn đến kết quả đầu ra khác nhau. Cuối cùng, miner sẽ tìm thấy một chuỗi đầu vào (chuỗi dữ liệu block và nonce) đủ điều kiện. Việc tìm nonces mất rất nhiều thời gian và sức mạnh tính toán. Xin chúc mừng nếu bạn đã vượt qua điều này! Bây giờ hãy chuyển sang bước 5.

Bước 5: Miner tìm ra giải pháp cho vấn đề toán học đầu tiên, công khai giải pháp này cho tất cả các miner khác.

Bước 6: Các miner khác bây giờ kiểm tra xem giải pháp đó có tương ứng với vấn đề của block người gửi không. Nếu nó là chính xác, các miner khác sẽ xác minh nó và đồng ý rằng block này có thể được thêm vào blockchain. Đây là nơi định nghĩa ‘proof of work’ xuất hiện. Miner tìm thấy một giải pháp và công khai ‘proof of work’ cho các miner khác, và lần lượt các miner khác xác minh xem công việc có đưa ra giải pháp đúng hay không. Trước khi các nodes khác đồng ý rằng block có thể được thêm vào blockchain, chúng sẽ được chạy một lần kiểm tra khác trên các giao dịch trong block tương ứng trước tiên. Nếu tất cả các giao dịch vẫn hợp lệ theo blockchain, các miner khác sẽ đồng ý và đạt được ‘sự đồng thuận’.

Bước 7: Nếu phần lớn các miner đạt được sự đồng thuận, block sẽ được thêm vào blockchain và dữ liệu trong block sẽ được đánh dấu xác nhận. Mỗi lần một block khác được thêm vào đầu block này, nó được gọi là ‘xác nhận’ cho giao dịch của bạn. Ví dụ: nếu giao dịch của tôi nằm trong block 502 và blockchain gồm 507 block, điều đó có nghĩa là giao dịch của tôi có 5 lần xác nhận (502–507). Càng có nhiều xác nhận giao dịch của bạn, thì kẻ tấn công sẽ phải thay đổi nó càng nhiều. Khi một block mới được thêm vào blockchain, tất cả các miner cần phải bắt đầu lại ở bước ba bằng cách tạo thành một block mới. Miner không thể tiếp tục làm việc trên block họ đang làm hai lý do:

  • Nó có thể chứa các giao dịch đã được xác nhận bởi block cuối cùng đã được thêm vào blockchain và do đó không hợp lệ
  • Mỗi block cần thêm hash của block cuối cùng đã được thêm vào blockchain vào dữ liệu.

Nếu một miner tiếp tục khai thác block mà họ đang làm việc, các miner khác sẽ nhận thấy rằng hash không tương ứng vì không chứa hash của block mới được thêm vào blockchain và sẽ loại bỏ block.

Nguồn: medium.com

Đánh giá

Để lại ý kiến của bạn:

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *