Tendermint là cơ chế đồng thuận PoS dựa trên Dung sai lỗi Byzantine (BFT) được phát triển cho Cosmos. Phần mềm ban đầu của nó được phát triển bởi Tendermint (công ty) và nguồn gốc của nó bắt đầu từ năm 2014.
Tendermint bao gồm hai thành phần công nghệ cốt lõi: công cụ đồng thuận blockchain Tendermint Core và giao diện ứng dụng phổ quát ABCI.
Tendermint Core là công cụ đồng thuận mặc định của Cosmos. Nó được sử dụng để đảm bảo rằng các giao dịch giống nhau được ghi lại theo cùng một thứ tự trên mọi máy trong mạng phi tập trung. Nói một cách đơn giản, Tendermint Core có thể sao chép thông tin trên nhiều máy để đảm bảo tính nhất quán của dữ liệu. Được hỗ trợ bởi Tendermint Core, mọi máy hoạt động chính xác trong mạng Cosmos đều có thể tìm nạp cùng một nhật ký giao dịch và tính toán cùng một trạng thái giao dịch.
Vì vậy, theo cơ chế này, mạng blockchain có thể hoạt động bình thường ngay cả khi có tới 1/3 số nút mạng gặp phải bất kỳ loại lỗi nào. Do đó, tính bảo mật của Cosmos được đảm bảo. Đồng thời, Tendermint Core còn có cơ chế khóa. Nếu bất kỳ người xác thực nào vi phạm an ninh mạng thành công hoặc cố gắng làm như vậy, họ sẽ bị Tendermint xác định và khóa. Nó giúp các mạng thực hiện trách nhiệm giải trình và xác định nguyên nhân của sự cố bảo mật nhanh nhất có thể sau khi nó xảy ra.
Mặt khác, Tendermint Core còn mang lại lợi thế đáng kể cho Cosmos về mặt hiệu suất. Sự đồng thuận của Tendermint có thể cung cấp cho Cosmos tốc độ xác nhận giao dịch nhanh chóng và đạt được xác nhận giao dịch ngay lập tức. Với sự hỗ trợ của nó, thời gian hoàn thiện khối của Cosmos là 1-2 giây và TPS tối đa theo lý thuyết có thể đạt tới 10.000.
Nhưng thiết kế của Tendermint không hoàn hảo. Vấn đề ở đây là nếu có quá nhiều nút tham gia hình thành sự đồng thuận, nó sẽ làm chậm mạng. Cosmos Hub giới hạn số lượng nút xác thực trên mạng của nó. Trong Cosmos Hub, không phải ai cũng có thể trở thành người xác nhận mạng. Chỉ các nút có 100 giá trị $ATOM được đặt cược hàng đầu mới có thể trở thành trình xác thực. Để đảm bảo hiệu suất, thiết kế này sẽ hy sinh tính phân cấp của mạng ở một mức độ nhất định.
Ngoài công cụ đồng thuận Tendermint Core, Tendermint còn bao gồm một giao diện lập trình ứng dụng phổ biến được gọi là Giao diện chuỗi khối ứng dụng (ABCI). Vai trò của ABCI là đóng vai trò là cầu nối giữa công cụ đồng thuận và ứng dụng. Tendermint BFT có thể được kết nối với các ứng dụng thông qua ABCI.
ABCI cho phép xử lý các giao dịch bằng bất kỳ ngôn ngữ lập trình nào. Không giống như các giải pháp blockchain khác được đóng gói sẵn với các ngôn ngữ kịch bản tích hợp, ABCI cho phép các nhà phát triển sử dụng bất kỳ ngôn ngữ lập trình và môi trường phát triển nào phù hợp với họ. Ví dụ, ABCI giống như một dịch giả. Nó có thể dịch bất kỳ ngôn ngữ nào sang ngôn ngữ phổ quát và giúp các ứng dụng giao tiếp với công cụ đồng thuận (truyền thông tin giao dịch).