Tóm lược
Những blockchain mà bạn biết và yêu thích có cấu trúc khá cứng nhắc. Là nhà phát triển, bạn có hai lựa chọn: tạo ứng dụng bên trong một môi trường hạn chế hoặc phân nhánh mã và tạo chuỗi của riêng bạn. Tuy nhiên, việc tạo chuỗi của riêng bạn không hề dễ dàng – bạn cũng cần bắt đầu một mạng lưới và tìm
cơ chế đồng thuận phù hợp để sử dụng.
Tendermint là phần mềm mã nguồn mở để khởi chạy các blockchain cho phép bạn viết ứng dụng bằng bất kỳ ngôn ngữ nào. Điều tuyệt vời hơn là các blockchain này có thể giao tiếp với các blockchain khác.
Tạo một mạng lưới
tiền mã hoá hoặc
blockchain tốn nhiều công sức hơn là khởi tạo một cơ sở dữ liệu. Việc này đòi hỏi phải cân bằng một cách thích hợp giữa cơ chế thưởng khuyến khích và đánh đổi giữa bảo mật, phi tập trung và khả năng mở rộng.
Không có gì ngạc nhiên khi một loạt phương pháp tiếp cận khác nhau được đưa ra bởi những đội ngũ đang tìm cách xây dựng hệ sinh thái blockchain mạnh nhất. Trong bài viết này, chúng ta sẽ cùng tìm hiểu về một phương pháp như vậy:
Tendermint.
Có thể bạn sẽ thấy quen với Tendermint nếu đã biết một chút về blockchain. Hãy cùng điểm lại một số khái niệm chính trước khi đi sâu vào giao thức này.
Hiểu về kiến trúc blockchain
Tendermint là một loại
ngăn xếp blockchain.
Bitcoin và
Ethereum cũng vậy. Hãy nhớ rằng, không chỉ về cơ sở dữ liệu blockchain, mà còn về
mạng lưới ngang hàng của
các nút, cách các nút tương tác và những điều thú vị mà bạn có thể làm với các giao dịch và
hợp đồng thông minh. Mục tiêu ở đây là để mọi người đồng thuận về một
trạng thái (như ảnh chụp nhanh cơ sở dữ liệu), ngay cả khi họ không tin tưởng người khác.
Phần lớn, các blockchain lớn ngày nay đã tìm ra bí quyết giúp việc này trở nên khả thi. Tuy nhiên, các blockchain này thường dựa trên kiến trúc nguyên khối: khái niệm kỹ thuật phần mềm có nghĩa là các thành phần được kết nối với nhau và phụ thuộc lẫn nhau. Bạn không thể chỉ lấy một thành phần, rồi gắn vào thành phần khác.
Kiến trúc nguyên khối không hề lý tưởng nếu bạn muốn có sự linh hoạt. Trong loại mô hình ngược lại (kiến trúc mô-đun), bạn có thể điều chỉnh các thành phần riêng lẻ mà không lo làm hỏng bất cứ thành phần nào. Với cấu trúc nguyên khối, bạn cần đảm bảo mọi thành phần đều duy trì khả năng tương thích khi bạn nâng cấp một thành phần nào đó.
Khi đã hiểu sự khác biệt này, chúng ta sẽ thảo luận thêm một chút về giao thức Tendermint.
Kháng lỗi Byzantine (BFT)
Có thể bạn đã biết sự thay đổi to lớn với Bitcoin là nó đã giải quyết được một thứ gọi là
Bài toán các vị tướng Byzantine. Chúng ta sẽ không đi sâu vào vấn đề này (hãy xem bài viết của chúng tôi về
Kháng lỗi Byzantine nếu bạn quan tâm). Tất cả những gì bạn cần biết là thuật ngữ này trình bày chi tiết tình huống mà người tham gia phải giao tiếp trong bối cảnh phân tán.
Những người tham gia này không biết liệu những người khác có đang nói dối hay không hoặc liệu tin nhắn mà họ gửi cho nhau có bị sửa đổi hay không. Một hệ thống được cho là có khả năng kháng lỗi Byzantine (BFT) nếu những người tham gia có thể đồng thuận về một nhóm các sự kiện, ngay cả với những vấn đề hiện tại.
Rõ ràng, trong bối cảnh phi tập trung, việc có được quyền này là rất quan trọng. Những đồng tiền mã hóa không có khả năng kháng lỗi Byzantine sẽ không hoạt động hiệu quả – bạn sẽ cần một bên điều phối tập trung, việc này sẽ làm mục đích đề ra trở nên vô giá trị. Giống như nhiều đồng tiền kỹ thuật số khác, Bitcoin giải quyết vấn đề này bằng cách sử dụng thuật toán đồng thuận
Proof of Work (PoW).
Ba lớp của một blockchain
Vậy là chúng ta đã biết điểm khác biệt giữa kiến trúc nguyên khối và kiến trúc mô-đun và chúng ta cũng biết rằng mạng lưới tiền mã hoá phi tập trung cần có khả năng kháng lỗi Byzantine. Giờ chúng ta sẽ tìm hiểu về các lớp thường thấy trong một blockchain: lớp ứng dụng, lớp đồng thuận và lớp mạng lưới.
Trước tiên, chúng tôi sẽ giải thích nhanh về thuật ngữ. Chúng tôi sẽ sử dụng các thuật ngữ “Tendermint” và “Tendermint Core” thay thế cho nhau ở đây vì chúng tôi chỉ tập trung vào công nghệ.
Tuy nhiên, Tendermint là tên của công ty (được thành lập bởi Jae Kwon - nhà phát triển đã viết whitepaper gốc), trong khi Tendermint Core là phần mềm thực tế mà công ty đang triển khai. Cụ thể hơn, phần mềm có hai thành phần chính: công cụ đồng thuận cốt lõi (Tendermint Core) và giao diện ứng dụng (ABCI).
Tendermint Core là hệ thống đạt được khả năng kháng lỗi. Về bản chất, đây là một máy tính lớn, phân tán hiển thị cho mọi người cùng một trạng thái tại cùng một thời điểm. Vì vậy, miễn là ít nhất 2/3 số người tham gia trung thực, thì mọi thứ sẽ hoạt động trơn tru. Nhưng điều này khá quen đối với blockchain khác, phải không? Vậy thì điều gì làm cho Tendermint Core trở nên đặc biệt?
Thứ nhất, cơ chế đồng thuận mà phần mềm này sử dụng là
Proof of Stake (PoS). Đối với mỗi giai đoạn, hệ thống sẽ chọn nút ngẫu nhiên từ một nhóm validator. Sau đó, nút này phải đề xuất
block tiếp theo (trong một hệ thống gọi là
round-robin). Nếu các validator khác hài lòng với block đó, thì block mới sẽ được thêm vào và chuỗi được cập nhật. Yếu tố cuối cùng là tính tức thì – không giống như Bitcoin hoặc Ethereum, không cần phải đợi
xác nhận để đảm bảo giao dịch của bạn hợp lệ.
Nhưng xin chờ chút! Tendermint Core sử dụng kiến trúc mô-đun, trong đó lớp ứng dụng tách rời khỏi lớp đồng thuận và lớp mạng lưới. Nói một cách đơn giản, điều này đồng nghĩa với việc bạn có thể gắn lớp ứng dụng của riêng bạn vào ngăn xếp. Bạn không phải lo về cơ chế thưởng khuyến khích hoặc thuật toán đồng thuận phiền phức.
Có lẽ điều này không quá hấp dẫn đối với người dùng cuối. Nhưng đối với nhà phát triển, khả năng tận dụng khung hiện có đồng nghĩa với việc nhà phát triển có thể tập trung tạo các ứng dụng mà không cần khởi động toàn bộ mạng lưới. Dữ liệu từ blockchain có thể được chuyển đến lớp tích hợp, cho phép nhà phát triển viết phần mềm bằng bất kỳ ngôn ngữ nào.
Điều kỳ diệu xảy ra nhờ một thứ được gọi là Giao diện blockchain ứng dụng, hay còn gọi là ABCI. Bạn có thể coi ABCI là các chân GPIO ở trên máy tính Pi Raspberry. Bạn có thể nối tất cả các loại bộ phận của bên thứ ba với những chân đó, từ đèn LED cho đến hệ thống phun nước phức tạp cho cây. Cũng tương tự như vậy, ABCI xác định ranh giới giữa blockchain và các ứng dụng chạy trên blockchain.
Vậy Tendermint Core có tính năng gì đặc biệt?
Việc tách biệt giao diện ứng dụng và cơ chế đồng thuận giúp một loạt ứng dụng phi tập trung trở nên linh hoạt hơn trong việc kết hợp bất kỳ ngôn ngữ lập trình nào vào logic hoạt động của ứng dụng đó.
Để có ví dụ dễ hiểu về tính năng của giao thức này, hãy nhìn vào
Ethermint: một dự án sử dụng cơ sở mã Ethereum, loại bỏ cơ chế Proof of Work và gắn Máy ảo Ethereum trên Tendermint.
Tính năng này giúp một số thứ trở nên khả thi. Đầu tiên là nhà phát triển Ethereum có thể dễ dàng chuyển hợp đồng thông minh sang công cụ mới hoặc viết hợp đồng mới bằng ngôn ngữ Solidity. Ngoài việc cung cấp chức năng Ethereum, Ethermint còn đóng vai trò như Proof of Stake Ethereum, giúp chúng ta có cái nhìn tổng quan về việc
triển khai Casper sẽ như thế nào trên
Ethereum 2.0.
Khả năng tương tác của blockchain
Lời hứa về một “internet của các blockchain” là điều thu hút nhiều người đến với các giao thức dựa trên Tendermint.
Khả năng tương tác là một tính năng bổ sung được chờ đợi từ lâu trong không gian tiền mã hóa, nghĩa là hàng trăm blockchain riêng lẻ sẽ có thể tương thích chéo.
Hiện tại, nỗ lực đang đổ dồn vào
Cosmos SDK, một khuôn khổ mã nguồn mở cho phép mọi người tạo một blockchain công khai hoặc riêng tư dành riêng cho ứng dụng. Các blockchain này sau đó có thể được gắn vào mạng Cosmos rộng lớn hơn, thông qua Cosmos Hub, tại đây các blockchain có thể giao tiếp với nhau.
Là một công cụ blockchain, Tendermint đã thu hút sự chú ý của nhiều bên liên quan trong lĩnh vực tiền mã hóa, từ nhà phát triển cho đến người dùng cuối.
Nếu tiếp tục đạt được sức hút, rất có thể phần mềm này sẽ đóng vai trò là xương sống cho mạng lưới các blockchain. Như chúng ta có thể thấy, một số dự án đã khởi chạy bằng Cosmos SDK để hiện thực hóa tầm nhìn này.