Sự ra đời của Bitcoin đã dẫn đến sự bùng nổ của các blockchain trong kỷ Cambri với các quyết định thiết kế và trường hợp sử dụng khác nhau. Trong khi các sổ cái phân tán này phục vụ các mục đích khác nhau, chúng tồn tại (và vẫn tồn tại ở một mức độ nhất định) như là các hầm chứa với sự tương tác có ý nghĩa hạn chế.
Tương tự như Internet tạo điều kiện cho các loại máy tính khác nhau ở các nơi khác nhau trên thế giới giao tiếp với nhau, một công nghệ tương tự hoạt động như mô liên kết giữa các blockchains là cần thiết để tích lũy giá trị thực. Giao thức Inter-Blockchain Communication (IBC) nhằm phục vụ mục đích này.
IBC là một giao thức tương tác phổ quát cho phép hai blockchain khác nhau giao tiếp với nhau. IBC đảm bảo thông tin liên lạc đáng tin cậy , được đặt hàng và xác thực .
Có lẽ một trong những đặc tính quan trọng nhất của IBC là giảm thiểu sự tin cậy . Trong blockchain, thuộc tính giảm thiểu tin cậy vốn có liên quan đến bảo mật. Không có hệ thống phân tán nào là hoàn toàn ‘không đáng tin cậy’. Do đó, câu hỏi về bảo mật đặt ra cho ai hoặc cái gì được tin cậy, và làm thế nào mà sự tin tưởng đó có thể bị vi phạm, tức là, thực thể đáng tin cậy sẽ bị hỏng thì sao?
Theo nghĩa này, và không giống như hầu hết các giải pháp bắc cầu, IBC không sử dụng bên thứ ba đáng tin cậy. Điều này có nghĩa là nếu bạn tin tưởng hai chuỗi cụ thể sử dụng các chức năng mà chúng cung cấp (và theo mặc định là cơ chế đồng thuận của chúng), thì không cần thêm giả định tin cậy khi sử dụng IBC để tương tác giữa các chuỗi nói trên.
IBC còn không chỉ là một cầu nối tạo điều kiện thuận lợi cho việc chuyển token. Nó là một giao thức truyền thông điệp có mục đích chung . Điều này có nghĩa là bất kỳ dạng dữ liệu nào cũng có thể được giao tiếp qua IBC.
IBC hoạt động như thế nào?
Để hiểu cách hoạt động của IBC, điều quan trọng là phải tách hai lớp khác nhau của IBC
1) lớp truyền tải
và 2) lớp ứng dụng .
Lớp vận chuyển
Các thông điệp được truyền qua IBC được truyền tải trong các gói dữ liệu . Và tầng vận chuyển chịu trách nhiệm vận chuyển , xác thực và sắp xếp thứ tự các gói dữ liệu này.
Lớp truyền tải không chỉ định bất cứ điều gì về dữ liệu trong các gói phải như thế nào hoặc cách chúng được diễn giải bởi một chuỗi nhận. Theo quan điểm của lớp truyền tải, thông tin bên trong các gói dữ liệu chỉ là các byte ngẫu nhiên.
Các thành phần quan trọng của lớp truyền tải là máy khách ánh sáng , bộ chuyển tiếp, kết nối và kênh .
Một ứng dụng khách nhẹ là một đại diện nhẹ của một blockchain. Không giống như một nút đầy đủ , các ứng dụng khách nhẹ không lưu trữ toàn bộ lịch sử của tất cả các thông điệp có trong một chuỗi khối. Họ cũng không thực hiện giao dịch. Thay vào đó, các ứng dụng khách nhẹ được thiết kế để kết nối với một nút đầy đủ và xác minh các tiêu đề khối (bản tóm tắt dữ liệu chứa trong một khối). Điều này cho phép các ứng dụng khách nhẹ hiệu quả về mặt lưu trữ và tính toán.
Hai blockchain độc lập A và B tương tác qua IBC có những khách hàng nhẹ của chuỗi đối tác. Điều này có nghĩa là A có một ứng dụng khách nhẹ trên blockchain của nó, hoạt động như một đại diện nhẹ cho blockchain của B. Khi A muốn giao tiếp một thông điệp ‘X’ nhất định với B , nó sẽ gửi tiêu đề của khối chứa thông điệp đó, cùng với một bằng chứng cam kết về thông điệp đó cho B. Bằng chứng cam kết được sử dụng để xác minh sự hiện diện hay vắng mặt của một thông báo cụ thể trên A. Sử dụng tiêu đề khối và bằng chứng, B xác minh bằng mật mã rằngA đã thực hiện X. Chính việc sử dụng các ứng dụng khách nhẹ trong IBC cho phép các blockchains trao đổi thông điệp với nhau mà không cần bên thứ ba đáng tin cậy .
Nhưng A và B không gửi trực tiếp các thông điệp / gói dữ liệu này cho nhau. Thay vào đó, khi A muốn gửi một tin nhắn đến B , nó sẽ cam kết hoặc lưu trữ một băm của gói dữ liệu có chứa tin nhắn trong máy trạng thái của nó . Các bộ chuyển tiếp , là các quá trình ngoài chuỗi, liên tục quan sát các thông báo như vậy. Khi họ thấy rằng A đã gửi một thông báo dành cho B trong máy trạng thái của nó, họ chỉ cần nhận thông báo này và chuyển nó cho B. Lưu ý rằng trình chuyển tiếp là không được phép và do đó có thể được điều hành bởi bất kỳ ai.
Các kết nối chịu trách nhiệm kết nối các máy khách nhẹ trên hai chuỗi khác nhau. Và các kênh là đường dẫn để chuyển các gói giữa các mô-đun trên các chuỗi khác nhau này. Do đó, trong khi các kết nối là cụ thể theo chuỗi, các kênh cụ thể theo mô-đun. Mỗi đầu kênh có một ID kênh duy nhất (và một ID cổng) được sử dụng để định tuyến chính xác các gói giữa hai mô-đun.
Lớp ứng dụng
Lớp ứng dụng là thứ mà người dùng cuối tương tác. Nó bao gồm các ứng dụng khác nhau sử dụng lớp truyền tải để xây dựng trên cùng. Lớp truyền tải không chỉ định cách gói dữ liệu cần được diễn giải. Vai trò này được thực hiện bởi lớp ứng dụng.
IBC hỗ trợ nhiều ứng dụng khác nhau như chuyển token có thể thay thế / không thể thay thế, nguồn cấp dữ liệu oracle chuỗi chéo, Tài khoản liên chuỗi , Truy vấn liên chuỗi, Phần mềm trung gian có phí (để khuyến khích người chuyển tiếp), v.v.
Ví dụ: ứng dụng cấp IBC để chuyển mã thông báo – được gọi là Tiêu chuẩn Interchain 20 (ICS 20) – chỉ định cách các gói dữ liệu nên được cấu trúc và cách chúng được các chuỗi nhận giải thích. Trong trường hợp chuyển mã thông báo có thể thay thế, các gói dữ liệu chứa thông tin về người gửi, người nhận, số tiền và mệnh giá (IBC denom). Trường denom theo dõi con đường mà một mã thông báo cụ thể đã đi qua để đến một chuỗi nhất định. Logic liên quan đến cách các gói được thực hiện cũng được ICS 20 quy định.
Một phép tương tự đơn giản có thể hữu ích trong việc hiểu IBC là hệ thống gửi thư. Khi bạn gửi một bức thư cho ai đó, bạn sẽ gửi nó qua một dịch vụ bưu chính. Dịch vụ này sẽ thu thập phong bì có chứa bức thư từ bạn và gửi nó vào hộp thư của người nhận. Sau đó, người nhận sẽ mở phong bì và đọc thư của bạn. Tầng vận chuyển của IBC có thể được coi là dịch vụ bưu chính. Dịch vụ bưu chính không cho bạn biết nội dung của bức thư, hoặc người nhận nên giải thích thông điệp của bạn như thế nào.
Họ cũng không biết nội dung của phong bì là gì. Nó chỉ thực hiện hành động thu thập phong bì từ điểm A và gửi đến điểm B. Bản thân phong bì có thể được coi là các gói IBC được gửi từ chuỗi này sang chuỗi khác. Và trên phong bì này, bạn sẽ ghi rõ địa chỉ của người nhận. Điều này tương tự như cách các gói IBC chứa thông tin liên quan đến ai đã gửi gói (được chỉ định bởi ID kênh) và nó được dự định cho ai (được chỉ định bởi ID kênh của đối tác). Cuối cùng, người nhận (ứng dụng) có trách nhiệm mở phong bì (gói dữ liệu) và giải thích nội dung của bức thư.
IBC có thể được sử dụng để làm gì?
Ngoài việc chuyển mã thông báo có thể thay thế, hai ứng dụng cấp IBC khác bao gồm Tài khoản chuỗi liên kết và Bảo mật chuỗi liên kết .
Tài khoản Interchain tạo điều kiện cho chuỗi tương tác chuỗi trong khi vẫn duy trì trên một giao diện duy nhất. Điều này hiệu quả có nghĩa là bất kỳ hành động nào như chuyển giao, đặt cược hoặc biểu quyết các đề xuất quản trị có thể được thực hiện trên B (được gọi là ‘chuỗi chủ’), đều có thể được thực hiện từ A (được gọi là ‘chuỗi kiểm soát’). Tài khoản Interchain làm tăng đáng kể khả năng tổng hợp trong Interchain bằng cách cải thiện trải nghiệm người dùng.
Interchain Security là phiên bản bảo mật được chia sẻ của Hệ sinh thái Cosmos. Nó cho phép một blockchain cho thuê bảo mật từ một chuỗi khác theo cách hoàn toàn chọn tham gia. Điều này đặc biệt hữu ích cho các chuỗi mới có thể chọn khai thác bảo mật được cung cấp bởi một mạng đã được thiết lập như Cosmos Hub. Interchain Security loại bỏ nhu cầu về chuỗi khởi động bộ xác nhận của riêng họ.
Phạm vi các ứng dụng có thể được thực hiện bằng cách sử dụng IBC như một nguyên thủy cốt lõi đang tăng lên một cách nhất quán. Chuyển giao NFT xuyên chuỗi và Truy vấn liên chuỗi (trong đó một chuỗi có thể đọc trạng thái từ chuỗi khác) hiện đang được phát triển và sẽ sớm sẵn sàng sản xuất.
IBC giải quyết vấn đề gì?
Trong một câu, IBC giải quyết vấn đề của các blockchain tồn tại dưới dạng các silo với sự tương tác hạn chế. Khả năng tương tác giữa các blockchains là cần thiết để tích lũy giá trị tối đa.
Mỗi blockchain phục vụ cho một hoặc nhiều trường hợp sử dụng chuyên biệt. Nếu những trường hợp sử dụng này không thể được tận dụng trên nhiều blockchains, nó sẽ làm mất đi tiện ích của chúng một cách nghiêm trọng. Bước đột phá mà Internet mang lại là thông tin có thể dễ dàng đi qua các khu vực khác nhau trên thế giới một cách dễ dàng. Tương tự, tiện ích của các blockchain khác nhau cần được truy cập miễn phí trên nhiều nền tảng.
Ví dụ: người dùng có thể muốn sử dụng stablecoin từ một blockchain, để tạo ra lợi nhuận thông qua nhóm thanh khoản (LP) trên một sàn giao dịch phi tập trung (DEX) tồn tại trên một blockchain khác. Hoặc họ có thể muốn tận dụng các thuộc tính bảo vệ quyền riêng tư mà một blockchain khác cung cấp. Cần có khả năng tương tác giữa các chuỗi để thực hiện các trường hợp sử dụng này và hơn thế nữa.
IBC không chỉ giải quyết vấn đề về khả năng tương tác mà còn giải quyết vấn đề này theo cách giảm thiểu đáng tin cậy, an toàn, có thể mở rộng và mục đích chung.
Với tư cách là nhà phát triển ứng dụng, tôi có thể sử dụng IBC bằng cách nào?
Bản chất mô-đun của Cosmos SDK giúp các nhà phát triển không phải quan tâm đến một số lớp trừu tượng như ứng dụng khách nhẹ, kết nối, xác minh bằng chứng, v.v. Đối với nhà phát triển, các yêu cầu và chức năng phù hợp nhất để làm quen là các kênh và cổng . Để biết thêm thông tin chi tiết về IBC, bạn có thể tham khảo porta l dành cho nhà phát triển của chúng tôi.
Nếu bạn đang xây dựng chuỗi khối của mình bằng cách sử dụng Cosmos SDK, thì các bước cần thiết để bật IBC cho mô-đun SDK được trình bày chi tiết tại đây . Bạn cũng có thể đăng ký Chương trình Interchain Builders , một sáng kiến của ICF, để được hỗ trợ xây dựng trong Cosmos.
Nguồn: bài đăng này được viết bởi Aditya Ravi Raj , Nhà phân tích giao thức IBC tại Interchain GmbH.