Tendermint là gì?
Tendermint là một giao thức cấp thấp bao gồm hai phần chính: công cụ đồng thuận blockchain và giao diện ứng dụng chung. Tendermint Core, công cụ đồng thuận blockchain, tạo điều kiện cho mạng ngang hàng và cung cấp sự đồng thuận bằng chứng về cổ phần ( PoS ). Mặt khác, Giao diện BlockChain (ABCI), hoạt động như một công cụ để các chuỗi khối liên kết với giao thức Tendermint Core.
Mục đích của Tendermint là trở thành một công cụ blockchain . Nó có nghĩa là một công cụ mà các nhà phát triển có thể sử dụng để bỏ qua mật mã kỹ thuật và nhảy vào phát triển ứng dụng và blockchain cấp cao hơn.
Tendermint Core
Tendermint Core là một phần mềm mã nguồn mở được đóng gói gồm hai phần chính. Thứ nhất, công cụ đồng thuận blockchain Byzantine Fault Tolerant. Thứ hai, một giao thức mạng p2p.
Đồng thuận chung
Đưa vào thuật toán đồng thuận của Tendermint là khái niệm cơ bản của Byzantine Fault Tolerance (BFT). Để hiểu BFT, cần phải có một cái nhìn tổng quan về những gì nó đang giải quyết: Vấn đề về tướng của Byzantine .
Một thời gian dài trước đây, một số ít tướng và quân đội của họ đang cố gắng tấn công một thành phố. Để đánh bại thành phố, tất cả các tướng cần phải tấn công cùng một lúc. Vấn đề là không ai trong số các tướng có thể biết khi nào nên tấn công thành phố. Tất cả đều tách biệt với mỗi bên của thành phố và thông tin liên lạc giữa họ không thể đồng bộ hóa. Tin nhắn có thể bị mất, bị hỏng hoặc giả mạo.
Sách trắng Tendermint của Jae Kwon
Thử thách mà các tướng phải đối mặt được cộng gộp theo cấp số nhân khi có nhiều người hoặc tin nhắn được đưa vào. Chứng minh BFT Proof-of-Stake của Tendermint cho phép một trăm người xác nhận nhanh chóng và an toàn xác nhận sổ cái của họ với nhau. Nói cách khác, tất cả các trình xác nhận đều biết khi nào sẽ tấn công thành phố.
Thuật toán Proof-of-Stake của BFT khắc phục vấn đề về Byzantine Generals bằng cách sử dụng mô hình mạng đồng bộ một phần. Về cơ bản, điều này có nghĩa là các tướng xung quanh thành phố – hoặc những người xác nhận bỏ phiếu trên một khối – không cần phải hành động vào thời điểm định sẵn. Các khối không được bỏ phiếu theo lịch hoặc kích thước được xác định trước.
Tendermint đạt được điều này bằng cách đầu tiên gán ngẫu nhiên các trình xác nhận quyền đề xuất một khối. Sau khi các khối được đề xuất, trình xác nhận bỏ phiếu trong một quy trình xác định nhiều vòng. Có nghĩa là, bước đầu tiên khá bừa bãi và bước thứ hai tuân theo một trật tự quy định.
Với Tendermint, trình xác nhận được xoay theo định dạng vòng tròn có trọng số xác định. Người xác nhận càng có nhiều cổ phần, họ càng có thể được bầu làm lãnh đạo nhiều lần hơn. Hiện tại, giao thức được giới hạn ở mức một trăm trình xác nhận, tuy nhiên, có thể tăng số lượng trình xác nhận nếu cần.
Giao diện Blockchain của ứng dụng
Xếp chồng lên nhau trên lõi Tendermint là Giao diện BlockChain ứng dụng (ABCI). ABCI là một bản sao của Byzantine Fault Tolerant của các ứng dụng được viết bằng bất kỳ ngôn ngữ nào. Bạn có thể sao chép các ứng dụng blockchain của mình được viết bằng C ++, Python, Solidity hoặc bất kỳ ngôn ngữ nào khác trên công cụ blockchain BFT prefab.
ABCI là người dịch, trình bao bọc và ổ cắm giữa các ứng dụng blockchain và công cụ blockchain Tendermint mà họ ngồi.
Xử lý các kiến trúc nguyên khối
Đặt ABCI lên trên Lõi Tendermint là một bước quan trọng trong việc hạ thấp các rào cản tiếp cận xung quanh việc phát triển với các chuỗi khối.
Hầu hết các hệ thống blockchain đều có kiến trúc nguyên khối, thường hạn chế các ngôn ngữ có thể được viết trên chúng. Ví dụ, máy ảo mã byte hoàn chỉnh Ethereum Turing giới hạn bạn với các ngôn ngữ tương thích hướng xuống với mã byte. Hiện tại, đó chỉ là Serpent và Solidity.
Ngược lại, ABCI cho phép mọi ngôn ngữ lập trình được xếp chồng lên nhau và vẫn hoàn toàn tương thích với công cụ Tendermint Core bên dưới. Các nhà phát triển không cần phải tuân theo ngăn xếp nguyên khối duy nhất của blockchain họ chọn. Thay vào đó, họ có thể tập trung vào hậu cần ứng dụng và hầu như không biết gì về blockchain.
Tương lai của Tendermint
Những người tạo ra Tendermint mã nguồn mở đã thực hiện một dự án lớn hơn nhiều có tên là Cosmos. Được thiết kế để trở thành một mạng internet của các chuỗi khối, các mạng Cosmos cùng với các ứng dụng dựa trên Tendermint.
Một phần thú vị của Cosmos là các ứng dụng ban đầu không phải được xây dựng trên Tendermint để hoạt động trong hệ sinh thái Cosmos. Cosmos mất lợi thế của replicator ứng dụng Tendermint bằng cách chăm chỉ spooning blockchains hiện lên Tendermint Core. Tendermint không chỉ là nơi sinh sản cho các ứng dụng blockchain được mô đun hóa mà còn là một máy nhân bản blockchain.
Phần kết luận
Tendermint Core và ABCI cùng nhau tạo nên Tendermint – một công cụ blockchain mã nguồn mở dành cho các nhà phát triển của bất kỳ ngôn ngữ lập trình nào để xây dựng. Tendermint chuyển các nhà phát triển tập trung ra khỏi mật mã cấp thấp và vào lớp ứng dụng.