Chào bạn, Ghiền Coin đây. Cơ chế đồng thuận là bộ quy tắc giúp hàng nghìn máy tính không quen biết, không tin nhau, vẫn cùng chấp nhận một phiên bản duy nhất của sổ cái. Bí quyết của mọi cơ chế đồng thuận nằm ở một ý: làm cho việc gian lận tốn kém hơn việc làm đúng, bằng công sức tính toán hoặc bằng tài sản đặt cọc.
Đây là phần khó nhất và cũng hay nhất của blockchain. Mình sẽ kể nó như một câu chuyện về những người đưa thư không tin nhau, rồi mới đến hai cách làm phổ biến nhất.
Bài toán những người đưa tin không tin nhau
Có một bài toán cổ điển trong khoa học máy tính: nhiều vị tướng bao vây một thành, chỉ liên lạc với nhau bằng người đưa tin, và trong số họ có thể có kẻ phản bội gửi tin giả. Làm sao để những người trung thành vẫn thống nhất được một kế hoạch?
Với một cuốn sổ cái chung trên internet, vấn đề y hệt. Hàng nghìn máy tính gửi thông tin cho nhau, có máy chậm, có máy mất kết nối, có máy cố tình gửi thông tin sai. Vậy mà cuối cùng tất cả phải đồng ý trang sổ mới nhất là trang nào.
Trước khi có Bitcoin, người ta đã có nhiều lời giải cho những nhóm máy tính nhỏ, quen biết nhau. Cái khó là làm điều đó trong một mạng lưới mở, nơi ai cũng có thể tham gia, kể cả kẻ xấu, và có thể tạo ra hàng loạt danh tính giả.
Cơ chế đồng thuận của blockchain ra đời để giải bài toán trong môi trường mở như vậy.
Ý tưởng chung: bắt kẻ gian trả giá
Nếu chỉ cần bỏ phiếu theo số máy, kẻ gian sẽ tạo hàng nghìn máy giả để thắng. Vì vậy blockchain không đếm số máy, mà đếm một thứ khó làm giả: công sức tính toán, hoặc tài sản bị khoá lại.
Người muốn viết trang sổ mới phải bỏ ra cái giá đó. Nếu họ làm đúng luật, họ được phần thưởng. Nếu họ gian lận, các máy khác kiểm tra và từ chối trang của họ, và cái giá họ bỏ ra trở thành vô ích, thậm chí bị phạt.
Cách thiết kế này dựa vào một giả định quan trọng: phần lớn sức mạnh trong mạng lưới thuộc về những người có lợi khi làm đúng. Khi giả định đó không còn, mạng lưới có thể bị tấn công.
Đó là vì sao người ta hay nói một blockchain nhỏ, ít người tham gia thì dễ bị thao túng hơn một blockchain lớn.
Bằng chứng công việc
Cách thứ nhất là bằng chứng công việc. Người muốn viết trang mới phải giải một câu đố tính toán rất khó, mà cách duy nhất là cho máy tính thử đi thử lại rất nhiều lần. Ai giải được trước thì được viết trang và nhận phần thưởng.
Câu đố khó giải nhưng dễ kiểm: các máy khác chỉ cần một phép tính để xác nhận lời giải đúng. Nhờ vậy cả mạng lưới nhanh chóng đồng ý với trang mới.
Muốn viết lại lịch sử, kẻ gian phải bỏ ra công sức tính toán nhiều hơn toàn bộ phần còn lại của mạng lưới cộng lại. Với mạng lưới lớn, cái giá đó cao đến mức không đáng.
Mặt trái của bằng chứng công việc là tiêu tốn nhiều điện năng. Đây là chủ đề tranh luận lớn, mình sẽ có một tập riêng nói cả hai phía.
Bằng chứng cổ phần
Cách thứ hai là bằng chứng cổ phần. Thay vì đốt điện để giải đố, người muốn tham gia xác nhận khối phải khoá một lượng tài sản của mạng lưới làm tiền đặt cọc.
Mạng lưới chọn người viết trang mới trong số những người đặt cọc. Nếu ai đó cố tình gian lận, ví dụ ký xác nhận hai phiên bản sổ khác nhau, một phần tiền đặt cọc của họ bị cắt.
Cách này tiết kiệm năng lượng hơn nhiều. Nhưng cũng có những tranh luận riêng: người đặt cọc nhiều có tiếng nói lớn hơn, nên có lo ngại về việc tập trung quyền lực vào tay số ít.
Mình chỉ giải thích cơ chế ở đây. Việc đặt cọc tài sản để nhận thưởng là một hoạt động tài chính có rủi ro và có quy định riêng ở nhiều nơi; kênh này không hướng dẫn tham gia.
Khi mạng lưới tạm thời bất đồng
Đôi khi hai máy tìm ra trang mới gần như cùng lúc, và mạng lưới tạm có hai phiên bản. Mỗi cơ chế có quy tắc để chọn: ví dụ chuỗi nào dài hơn, tích luỹ nhiều công sức hơn thì được giữ lại, chuỗi kia bị bỏ.
Đây là lý do khi nhận một giao dịch, người ta thường đợi thêm vài khối nữa mới coi là chắc chắn. Mỗi khối thêm vào là thêm một lớp bảo đảm rằng giao dịch đó sẽ không bị đảo ngược.
Có khi bất đồng không phải do kỹ thuật mà do con người: cộng đồng không thống nhất về luật mới. Khi đó chuỗi có thể tách làm hai, mỗi bên đi theo một bộ luật. Lịch sử đã có những lần tách như vậy.
Hiểu điều này giúp bạn không ngạc nhiên khi nghe tin một blockchain tách đôi. Đó là một phần tự nhiên của một hệ thống không có người đứng đầu.
Đồng thuận không bảo vệ bạn khỏi mọi thứ
Cơ chế đồng thuận bảo vệ cuốn sổ chung, nhưng nó không biết giao dịch của bạn có bị lừa hay không. Nếu bạn tự tay chuyển tài sản cho kẻ gian, mạng lưới vẫn ghi nhận đúng luật.
Nó cũng không bảo vệ bạn khi bạn để tài sản ở một nền tảng trung gian. Lúc đó, thứ quyết định sự an toàn là nền tảng đó, không phải blockchain.
Vì vậy, khi nghe ai nói blockchain là tuyệt đối an toàn, hãy hiểu họ đang nói về cuốn sổ, không phải về túi tiền của bạn.
Tập sau mình nói về thứ gần với bạn hơn: chìa khoá và chữ ký số, cách bạn chứng minh mình là chủ của một khoản tài sản.
Câu hỏi thường gặp
Cơ chế đồng thuận là gì?
Là bộ quy tắc giúp các máy tính trong mạng lưới blockchain cùng chấp nhận một phiên bản sổ cái duy nhất, bằng cách làm cho gian lận tốn kém hơn làm đúng.
Bằng chứng công việc và bằng chứng cổ phần khác nhau thế nào?
Bằng chứng công việc đòi bỏ công sức tính toán để viết khối mới. Bằng chứng cổ phần đòi khoá tài sản làm tiền đặt cọc, gian lận thì bị cắt cọc.
Vì sao blockchain nhỏ dễ bị tấn công hơn?
Vì kẻ gian chỉ cần chiếm phần lớn sức mạnh tính toán hoặc tài sản đặt cọc của mạng lưới. Mạng lưới càng nhỏ thì cái giá đó càng thấp.
Vì sao phải đợi thêm vài khối mới coi giao dịch là chắc chắn?
Vì mạng lưới đôi khi tạm có hai phiên bản. Mỗi khối thêm vào sau giao dịch làm cho việc đảo ngược giao dịch đó càng khó.
Đồng thuận có giúp lấy lại tài sản khi bị lừa không?
Không. Đồng thuận chỉ bảo đảm sổ cái đúng luật. Nếu bạn tự chuyển tài sản cho kẻ gian, giao dịch vẫn hợp lệ trong mắt mạng lưới.