Tendermint là gì?
Tendermint là một cơ chế đồng thuận được sử dụng để tạo ra các ứng dụng blockchain hoạt động trên nhiều máy tính một cách an toàn và đáng tin cậy. Nó giúp đảm bảo rằng dữ liệu trên mạng lưới blockchain luôn thống nhất và có khả năng xử lý lỗi Byzantine Fault đến mức tối đa 33% các máy tính gặp sự cố.
Tendermint sử dụng hình thức đồng thuận dựa trên cổ phần (Proof of Stake), trong đó một nút ngẫu nhiên từ một tập hợp các nút kiểm duyệt được chọn để đề xuất các giao dịch mới và thêm vào chuỗi blockchain. Điều đặc biệt là giao dịch trên Tendermint được xác nhận ngay lập tức.
Tendermint có một kiến trúc module, có nghĩa là các phần quan trọng của nó, như quy trình đồng thuận và mạng lưới, được tách biệt khỏi ứng dụng chính. Điều này giúp các nhà phát triển dễ dàng xây dựng các ứng dụng blockchain mà không cần lo lắng về việc cài đặt riêng biệt của cơ chế đồng thuận.
Tendermint hoạt động như thế nào?
Tendermint chia thành hai phần: một là động cơ đồng thuận của blockchain và hai là giao diện ứng dụng thông thường. Động cơ đồng thuận gọi là Tendermint Core, đảm bảo rằng mọi giao dịch được ghi lại trên tất cả các máy tính theo cùng một thứ tự. Giao diện ứng dụng được gọi là ABCI (Application BlockChain Interface), cho phép xử lý giao dịch bằng bất kỳ ngôn ngữ lập trình nào. Nhà phát triển có thể sử dụng Tendermint để xây dựng ứng dụng trên nền tảng này và tự do lựa chọn ngôn ngữ lập trình và môi trường phát triển.
Tendermint Core
Tendermint Core là một giao thức đồng thuận BFT không đồng bộ. Các validator lần lượt đề xuất và bỏ phiếu cho các khối. Nếu một khối không được xác nhận, giao thức chuyển sang vòng tiếp theo và đề xuất một khối mới. Bỏ phiếu xảy ra trong hai giai đoạn, với giai đoạn pre-commit và pre-vote. Nếu hai phần ba của các validator pre-commit cho một khối, thì khối đó được xác nhận.
Nếu một khối không được xác nhận vì người đề xuất mất kết nối hoặc mạng chậm, các validator đợi một thời gian ngắn để nhận đầy đủ đề xuất khối trước khi tiếp tục. Điều này làm cho Tendermint được xác định là một giao thức đồng thuận yếu đồng bộ. Validator tiếp tục sau khi họ đã nghe từ hai phần ba của tất cả các validator.
An toàn được đảm bảo miễn là ít hơn một phần ba của các validator có sự cố Byzantine. Vì vậy, các validator không thể xác nhận các khối xung đột ở cùng một độ cao. Một khi một validator pre-commit cho một khối, nó bị khóa và khối đó sau đó được pre-vote hoặc có thể được mở khóa và pre-commit cho một khối mới.
ABCI
ABCI cho phép các nhà phát triển viết các ứng dụng chống lỗi Byzantine bằng bất kỳ ngôn ngữ lập trình nào. Nó kết nối lớp đồng thuận Tendermint Core và bộ công cụ phát triển phần mềm Cosmos (Cosmos SDK). Nó bao gồm ba loại thông điệp được gửi từ Tendermint Core đến lớp ứng dụng. ABCI truyền tải ba thông điệp phản hồi tương ứng từ lớp ứng dụng:
- Thông điệp DeliverTX gửi từng giao dịch trong blockchain. Ứng dụng kiểm tra tính hợp lệ của mỗi giao dịch được nhận với thông điệp này.
- Thông điệp CheckTX để kiểm tra tính hợp lệ của giao dịch. Mempool kiểm tra tính hợp lệ của giao dịch và truyền tải nó.
- Thông điệp Commit được đặt vào tiêu đề khối sau và được sử dụng để tính toán cam kết mật mã đối với trạng thái ứng dụng hiện tại.
Tendermint Core tạo ba kết nối ABCI đến ứng dụng; một cho việc xác nhận giao dịch khi phát trực tuyến trong mempool, một cho động cơ đồng thuận để chạy đề xuất khối và một kết nối nữa để truy vấn trạng thái ứng dụng.
Đồng thuận Tendermint và Cosmos
Tendermint là một cơ chế đồng thuận được sử dụng trong hệ sinh thái Cosmos để đảm bảo tính nhất quán của dữ liệu trên mạng lưới blockchain Cosmos. Cosmos là một blockchain tầng 1 (layer-1) với ba tầng quan trọng:
- Tầng ứng dụng (application layer): Tầng này xử lý giao dịch và duy trì trạng thái của mạng lưới, cho phép ứng dụng chạy trên blockchain.
- Tầng mạng lưới (networking layer): Tầng này đảm bảo truyền tải thông tin và giao tiếp giữa các giao dịch và blockchain.
- Tầng đồng thuận (consensus layer): Tầng này quyết định trạng thái của mạng lưới và đảm bảo rằng các giao dịch được xác thực một cách nhất quán.
Tendermint là cơ chế đồng thuận cốt lõi của tầng đồng thuận trong Cosmos. Tầng ứng dụng Cosmos cung cấp cho các nhà phát triển khả năng xây dựng trên nền tảng của mạng lưới Cosmos hoặc sử dụng Cosmos SDK để xây dựng trên một trong các blockchain tương thích với giao tiếp qua IBC (Inter-Blockchain Communication).
Cosmos SDK là bản triển khai của giao diện ABCI và là phần modular của hệ sinh thái Cosmos. Nó cho phép các nhà phát triển xây dựng các ứng dụng dựa trên Cosmos hoặc các blockchain khác tương thích với IBC. Khi một đội phát triển muốn xây dựng một ứng dụng phi tập trung cho tài chính (DApp) ví dụ, họ có thể sử dụng Cosmos SDK như một lựa chọn cắm và chạy để xây dựng một DApp tương thích với Cosmos và các blockchain khác qua IBC. Kết nối với cơ chế đồng thuận Tendermint thông qua ABCI.
Tương lai của Tendermint
Tendermint là một phần quan trọng của hệ sinh thái Cosmos, đóng góp bằng việc cung cấp phần mềm và bộ công cụ phát triển cho Cosmos. Họ cũng đang phát triển một cửa hàng ứng dụng tiền điện tử (Emeris) sẽ là một nền tảng độc nhất để tương tác với các ứng dụng phi tập trung.
Ngoài ra, Cosmos đang mở rộng hệ sinh thái của mình với phiên bản Cosmos 2.0. Blockchain Cosmos sẽ đóng vai trò là tầng kết nối giữa các chuỗi IBC khác nhau và tạo giá trị cho hệ thống kinh tế Cosmos. Điều này cho thấy tương lai của Tendermint và Cosmos rất tiềm năng và hứa hẹn, với việc phát triển ứng dụng tiền điện tử và kết nối các chuỗi blockchain qua IBC để tạo một mạng lưới phi tập trung mạnh mẽ hơn.
Trả lời