Tóm tắt
Blockchain mà bạn biết và yêu thích có cấu trúc khá cứng nhắc. Với tư cách là nhà phát triển, bạn có hai lựa chọn trong tình huống này: xây dựng ứng dụng trong môi trường bị 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 khởi chạy mạng và quyết định sử dụng cơ chế đồng thuận.
Tendermint là phần mềm nguồn mở để khởi chạy chuỗi khối, cho phép bạn viết ứng dụng bằng bất kỳ ngôn ngữ nào. Thậm chí tốt hơn, nó có thể giao tiếp với các blockchain khác.
Việc tạo một mạng tiền điện tử hoặc chuỗi khối đòi hỏi nhiều công việc, vượt xa cơ sở dữ liệu khởi tạo. Nó đòi hỏi sự cân bằng tinh tế giữa các ưu đãi và sự đánh đổi giữa bảo mật, phân cấp và khả năng mở rộng.
Thật hợp lý khi một số nhóm đã khám phá nhiều phương pháp khác nhau để xây dựng hệ sinh thái blockchain mạnh mẽ nhất có thể. Trong bài viết này, chúng ta sẽ xem xét kỹ hơn một trong những phương pháp sau: Tendermint.
Nếu bạn biết điều gì đó về blockchain, bạn sẽ cảm thấy Tendermint Much nội dung có vẻ quen thuộc. Trước khi đi sâu vào, trước tiên chúng ta hãy xem lại một số khái niệm chính.
Tendermint là một ngăn xếp blockchain. Bitcoin, Ethereum, v.v. cũng là các ngăn xếp blockchain. Hãy nhớ rằng, vấn đề không chỉ là về cơ sở dữ liệu blockchain mà còn về mạng lưới các nút ngang hàng, cách chúng tương tác với nhau và những gì bạn có thể làm với các giao dịch và hợp đồng thông minh. Mục tiêu là đưa mọi người đến trạng thái thống nhất (chẳng hạn như ảnh chụp nhanh cơ sở dữ liệu) mà không cần tin tưởng bất kỳ ai khác.
Ở một mức độ lớn, các blockchain lớn ngày nay đã tìm ra những “mánh gian lận” để đạt được điều này. Tuy nhiên, họ thường dựa vào kiến trúc tích hợp: một khái niệm công nghệ 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 vào nhau. Bạn không thể lấy một phần của nó và cắm nó vào một kiến trúc khác.
Nếu bạn muốn có sự linh hoạt thì kiến trúc nguyên khối không phải là lựa chọn lý tưởng. Ở loại mô hình ngược lại (vớ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 phá vỡ bất kỳ kiến trúc nào. Với kiến trúc nguyên khối, bạn phải đảm bảo rằng mỗi thành phần vẫn tương thích khi bạn nâng cấp từng thành phần riêng lẻ.
Bây giờ chúng ta đã hiểu được sự khác biệt, chúng ta có thể tiếp tục hiểu giao thức Tendermint.
Bạn có thể đã biết rằng cải tiến lớn nhất của Bitcoin là nó giải quyết được cái gọi là Vấn đề chung của Byzantine . Chúng tôi sẽ không thảo luận chi tiết về vấn đề này ở đây (xem bài viết của chúng tôi về Dung sai lỗi Byzantine nếu bạn quan tâm). Tất cả những gì bạn cần biết là nó mô tả chi tiết một kịch bản trong đó người tham gia phải giao tiếp trong môi trường phân tán.
Những người tham gia này không biết liệu người khác có nói dối hay tin nhắn gửi giữa họ có bị giả mạo hay không. Ngay cả khi những vấn đề này tồn tại, nếu những người tham gia có thể đồng ý về một tập hợp các sự kiện, thì hệ thống được cho là có khả năng chịu lỗi Byzantine.
Rõ ràng, trong một môi trường phi tập trung, điều quan trọng là phải thực hiện đúng điều này. Các loại tiền điện tử không có khả năng chịu lỗi Byzantine sẽ không thực sự hoạt động - bạn cần một loại tổ chức tập trung nào đó để phối hợp, điều này sẽ làm thất bại mục đích. Giống như nhiều loại tiền kỹ thuật số, 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).
Chúng tôi đã biết sự khác biệt giữa kiến trúc tích hợp/mô-đun và cũng biết về sự phân cấp Mạng lưới tiền điện tử cần phải được Khả năng chịu lỗi Byzantine. Tiếp theo, hãy nói về kiến trúc ba lớp mà chúng ta thường thấy trong blockchain: lớp ứng dụng, lớp đồng thuận và lớp mạng.
Lớp đồng thuận và lớp mạng là nơi các nút mạng giao tiếp với nhau và cố gắng thống nhất về một tập hợp dữ kiện. Lớp ứng dụng cho phép bạn tự thực hiện - như các ứng dụng phi tập trung và hợp đồng thông minh trong Ethereum hoặc các giao dịch tùy chỉnh bằng Bitcoin.
➟ Bạn muốn bắt đầu hành trình tiền tệ kỹ thuật số? Chào mừng bạn đến mua Bitcoin (BTC) trên Binance!
Trước tiên, hãy nhanh chóng làm rõ một thuật ngữ. Trong bài viết này, chúng tôi sẽ sử dụng "Tendermint" và "Tendermint Core" thay thế cho nhau vì chúng tôi chỉ tập trung vào công nghệ này.
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 ban đầu viết sách trắng) và Tendermint Core là phần mềm thực tế mà công ty đang phát triển. 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 lập trình ứng dụng (ABCI).
Tendermint Core là một hệ thống có khả năng chịu lỗi. Về cơ bản, đó là một máy tính phân tán lớn hiển thị cùng một trạng thái cho mọi người cùng một lúc. Chỉ cần ít nhất 2/3 số người tham gia thành thật thì mọi việc sẽ diễn ra suôn sẻ. Nhưng đó là trường hợp của hầu hết mọi blockchain phải không? Có gì đặc biệt về nó?
Trước hết, cơ chế đồng thuận được Tendermint Core sử dụng là Proof of Stake (PoS). Một nút ngẫu nhiên được chọn từ một tập hợp các trình xác thực ở mỗi kỷ nguyên. Sau đó, nút này phải đề xuất khối tiếp theo (trên cái gọi là hệ thống quay vòng). Nếu những người xác nhận khác hài lòng với nó, một khối mới sẽ được thêm vào và chuỗi được cập nhật. Kết quả được xác định ngay lập tức - không giống như Bitcoin hoặc Ethereum, không cần phải chờ xác nhận để đảm bảo giao dịch của bạn hợp lệ.
Đừng lo lắng, nó còn có những tính năng khác! Tendermint Core áp dụng kiến trúc mô-đun và lớp ứng dụng được tách biệt khỏi lớp đồng thuận và lớp mạng. Nói một cách đơn giản, điều này có nghĩa là bạn có thể cắm lớp ứng dụng của riêng mình vào ngăn xếp mà không phải lo lắng về các cơ chế khuyến khích hoặc thuật toán đồng thuận phức tạp.
Điều này sẽ không gây ngạc nhiên cho người dùng cuối. Nhưng đối với các nhà phát triển, việc có thể tận dụng các khuôn khổ hiện có có nghĩa là họ có thể xây dựng ứng dụng trực tiếp mà không cần phải thiết lập toàn bộ mạng. Dữ liệu từ blockchain có thể được chuyển đến lớp tích hợp, cho phép các 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 với cái được gọi là Giao diện chuỗi khối ứng dụng (hay gọi tắt là ABCI). Bạn có thể coi nó giống như các chân GPIO trên máy tính Raspberry Pi. Bạn có thể kết nối nhiều thành phần của bên thứ ba với các chân này, từ đèn LED đến hệ thống phun nước phức tạp cho cây trồng. Theo cách tương tự, ABCI xác định ranh giới giữa các chuỗi khối và các ứng dụng chạy trên chúng.
Việc tách biệt giao diện lập trình ứng dụng và cơ chế đồng thuận giúp các ứng dụng phân tán có độ linh hoạt cao hơn để kết hợp bất kỳ ngôn ngữ lập trình nào vào logic nghiệp vụ của chúng.
Bạn chỉ cần xem Ethermint như một ví dụ cụ thể để thấy nó hữu ích như thế nào: Ethermint lấy cơ sở mã Ethereum, loại bỏ cơ chế bằng chứng công việc và xây dựng Máy ảo Ethereum trên đó Bạc hà.
Điều này làm cho một số hoạt động thú vị có thể thực hiện được. Đầu tiên, các nhà phát triển Ethereum có thể dễ dàng chuyển các hợp đồng thông minh của họ sang công cụ mới hoặc viết các 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 có thể đóng vai trò là bằng chứng cổ phần cho Ethereum, cho chúng ta cái nhìn thoáng qua về Casper sẽ trông như thế nào trong Ethereum 2.0.
Lời hứa về một "Internet blockchain" đã thu hút nhiều người sử dụng giao thức Tendermint. Khả năng tương tác là một sự bổ sung được chờ đợi từ lâu cho không gian tiền điện tử, vì nó có nghĩa là hàng trăm chuỗi khối riêng lẻ sẽ trở nên tương thích chéo.
Rất nhiều công việc đã được thực hiện trong Cosmos SDK, một khung nguồn mở cho phép mọi người tạo các chuỗi khối công khai hoặc riêng tư dành riêng cho ứng dụng. Những chuỗi khối này sau đó có thể được kết nối với mạng Cosmos rộng hơn thông qua cái gọi là Cosmos Hub, nơi chúng có thể giao tiếp với các chuỗi khối khác.
Nhiều dự án phổ biến đã được xây dựng bằng SDK Cosmos, chẳng hạn như Binance Smart Chain (BSC), KAVA, Band Protocol, Terra và IRISnet.
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 điện tử, bao gồm cả các nhà phát triển và người dùng cuối.
Nếu phần mềm này tiếp tục thu hút được sự chú ý, nó có khả năng trở thành xương sống của Internet blockchain. Như chúng ta có thể thấy, một số dự án đã cho phép Cosmos SDK hiện thực hóa tầm nhìn này.