Nguyên lý tạo khối và Thuật toán bảo mật Blockchain

Nguyên lý tạo khối

Các giao dịch sau khi được gửi lên trên mạng lưới blockchain sẽ được nhóm vào các khối. Các giao dịch trong cùng một khối được coi là đã xảy ra cùng một lúc và các giao dịch chưa được thực hiện trong một khối được coi là chưa được xác nhận. Mỗi nút có thể nhóm các giao dịch với nhau thành một khối và gửi nó vào mạng lưới như một hàm ý cho các khối tiếp theo được gắn vào sau đó.

Vì bất kỳ nút nào cũng có thể tạo một khối mới nên có một câu hỏi đặt ra là cả hệ thống sẽ đồng thuận với khối nào sẽ là khối tiếp theo?

Để được thêm vào blockchain, mỗi khối phải chứa một đoạn mã đóng vai trò như một đáp án cho một vấn đề toán học phức tạp được tạo ra bằng hàm mã hóa băm không thể đảo ngược. Cách duy nhất để giải quyết vấn đề toán học như vậy là đoán các số ngẫu nhiên, những số khi mà kết hợp với nội dung khối trước tạo ra một kết quả đã được hệ thống định nghĩa. Điều này nhiều khi có thể mất khoảng một năm cho một máy tính điển hình với một cấu hình cơ bản có thể đoán đúng các con số đáp án của vấn đề toán học này.

Tuy nhiên, do trong mạng lưới luôn có một số lượng lớn các máy tính đều tập trung vào việc đoán ra dãy số này nên mạng lưới quy định mỗi khối được tạo ra sau một quãng thời gian là 10 phút một lần. Nút nào giải quyết được vấn đề toán học như vậy sẽ được quyền gắn khối tiếp theo lên trên chuỗi và gửi nó tới toàn bộ mạng lưới.

Vậy điều gì sẽ xảy ra nếu hai nút giải quyết cùng một vấn đề cùng một lúc và truyền các khối kết quả của chúng đồng thời lên mạng lưới?

Trong trường hợp này, cả hai khối được gửi lên mạng lưới và mỗi nút sẽ xây dựng các khối kế tiếp trên khối mà nó nhận được trước tiên, tuy nhiên hệ thống blockchain luôn yêu cầu mỗi nút phải xây dựng trên chuỗi khối dài nhất mà nó nhận được. Vì vậy, nếu có sự mơ hồ về việc khối nào là khối cuối cùng thì ngay sau khi khối tiếp theo được giải quyết thì mỗi nút sẽ áp dụng vào chuỗi dài nhất.

Do xác suất việc xây dựng các khối đồng thời là rất thấp nên hầu như không có trường hợp nhiều khối được giải quyết cùng một lúc và nhiều lần tạo ra các khối nối đuôi khác nhau, do đó toàn bộ chuỗi khối sẽ ổn định và nhanh chóng hợp nhất thành một chuỗi khối duy nhất mà mọi nút đều đồng thuận.

Thuật toán bảo mật Blockchain

Nếu có bất kỳ sự bất đồng về khối nào được đại diện sau cùng của chuỗi thì điều này sẽ dẫn đến khả năng gian lận. Nếu một giao dịch xảy ra trong một khối thuộc về đuôi ngắn hơn khi khối tiếp theo được giải quyết, giao dịch đó sẽ trở lại thành giao dịch chưa được xác nhận vì tất cả các giao dịch khác được nhóm vào trong khối kia.

Hãy xem cách Dũng có thể tận dụng sự mơ hồ về chuỗi kết thúc để thực hiện một cuộc tấn công với tên gọi “giao dịch kép”.

Dũng gửi tiền cho Thảo, Thảo sau đó giao hàng hóa cho Dũng, vì bây giờ các nút luôn coi chuỗi với đuôi dài hơn là các giao dịch đã được xác nhận nên nếu Dũng có thể tạo ra một đuôi dài hơn nữa chứa giao dịch đảo ngược lại với cùng tham chiếu đầu vào, Thảo sẽ mất cả tiền bạc và hàng hóa của cô ấy.

Vậy làm thế nào để hệ thống ngăn chặn hình thức gian lận này?

Mỗi khối chứa một tham chiếu đến khối trước đó, và tham chiếu đó là một phần của vấn đề toán học cần được giải quyết để truyền khối sau tới mạng lưới. Vì vậy, rất khó để tính toán trước một loạt các khối bởi nó cần tính ra một số lượng lớn các số ngẫu nhiên cần thiết để giải quyết một khối và đặt nó trên blockchain.

Dũng sẽ ở trong một cuộc đua chống lại phần còn lại của mạng lưới để giải quyết vấn đề toán học nhằm giúp anh đặt khối tiếp theo vào chuỗi. Và ngay cả khi anh ấy giải quyết được nó trước bất kỳ ai khác, thì cũng rất khó có thể tiếp tục giải quyết 2, 3 hoặc nhiều khối tiếp theo, vì quá trình này Dũng phải cạnh tranh với toàn bộ mạng lưới.

Như vậy, liệu Dũng có thể sử dụng một máy tính siêu nhanh để tạo ra các dự đoán ngẫu nhiên đủ nhanh để cạnh tranh với toàn bộ mạng lưới trong việc giải quyết các khối không?

Thực tế là ngay cả với một máy tính rất nhanh, thì với số lượng lớn các thành viên trong mạng lưới sẽ rất khó cho Dũng có thể giải quyết một vài khối liên tiếp trong một khoảng thời gian đủ ngắn để thực hiện một cuộc tấn công “giao dịch kép”.

Dũng sẽ cần kiểm soát từ 50% công suất tính toán của toàn bộ mạng lưới để có 50% cơ hội giải quyết một khối trước khi một số nút khác thực hiện, và thậm chí trong trường hợp này sảy ra Dũng cũng chỉ có 25% cơ hội để giải quyết hai khối liên tiếp. Càng nhiều khối được giải quyết liên tiếp, xác suất mà Dũng có thể thành công càng thấp.

Các giao dịch trong mạng lưới blockchain của bitcoin được bảo vệ bởi một cuộc chạy đua tính toán toán học: với bất kỳ kẻ tấn công nào muốn cạnh tranh với toàn bộ mạng lưới.

Do đó, giao dịch ngày càng an toàn hơn theo thời gian. Và những khối đã được thêm vào chuỗi trong quá khứ bao giờ cũng an toàn hơn so với những khối mới được thêm vào. Bởi một khối được thêm vào chuỗi trung bình cứ 10 phút một lần cho nên trong khoảng 1 giờ kể từ khi giao dịch được nhóm vào trong khối đầu tiên của nó sẽ tạo ra một xác suất khá cao rằng giao dịch đã được xử lý và không thể đảo ngược.

Đừng quên đăng ký Otis Report - Nơi cung cấp và cập nhật nhanh nhất mọi thông tin vĩ mô và phương pháp đầu tư tăng trưởng với giá trị vượt thời gian.

Hãy đăng ký và tham gia các nhóm, channel của Otis Report dưới đây để được thảo luận cùng các chuyên gia và nhiều Otiser khác:

Bạn đã đăng ký thành công Otis Report
Xác minh thành công! Giờ đây, bạn đã có toàn quyền truy cập vào tất cả nội dung cao cấp của Otis Report.
Lỗi! Không thể đăng ký. Liên kết không hợp lệ.
Chào mừng trở lại! Bạn đã đăng nhập thành công.
Lỗi! Không thể đăng nhập. Vui lòng thử lại.
Thành công! Tài khoản của bạn đã được kích hoạt hoàn toàn, bây giờ bạn có quyền truy cập vào tất cả nội dung.
Lỗi! Kiểm tra Stripe thất bại.
Thành công! Thông tin thanh toán của bạn đã được cập nhật.
Lỗi! Cập nhật thông tin thanh toán không thành công.