ELI5: IBC là gì?

Dec 22 2022
Sự ra đời của Bitcoin đã dẫn đến sự bùng nổ chuỗi khối kỷ Cambri với các quyết định thiết kế và trường hợp sử dụng khác nhau. Mặc dù các sổ cái phân tán này phục vụ các mục đích khác nhau, nhưng chúng đã tồn tại (và vẫn tồn tại ở một mức độ nhất định) dưới dạng silo với sự tương tác có ý nghĩa hạn chế.

Sự ra đời của Bitcoin đã dẫn đến sự bùng nổ chuỗi khối kỷ Cambri với các quyết định thiết kế và trường hợp sử dụng khác nhau. Mặc dù các sổ cái phân tán này phục vụ các mục đích khác nhau, nhưng chúng đã tồn tại (và vẫn tồn tại ở một mức độ nhất định) dưới dạng silo 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ự đóng vai trò là mô liên kết giữa các chuỗi khối là cần thiết để tích lũy giá trị thực. Giao thức Truyền thông liên chuỗi khối (IBC) nhằm phục vụ mục đích này.

IBC là một giao thức có khả năng tương tác phổ quát cho phép hai chuỗi khối 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à được xác thực .

Có lẽ một trong những thuộc tính quan trọng nhất của IBC là giảm thiểu tin cậy. Trong các chuỗi khối, thuộc tính giảm thiểu niềm tin vốn đã được liên kết với 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ập trung vào việc ai hoặc cái gì được tin cậy và làm thế nào để lòng tin đó có thể bị vi phạm, tức là, điều gì làm cho thực thể đáng tin cậy bị hỏng?

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 có giả định tin cậy bổ sung nào trong khi sử dụng IBC để tương tác giữa các chuỗi nói trên.

IBC không chỉ là cầu nối tạo điều kiện thuận lợi cho việc chuyển mã thông báo. Nó là một giao thức chuyển thông báo 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 truyền đạt qua IBC.

IBC hoạt động như thế nào?

Để hiểu cách thức 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 vận chuyển và 2) lớp ứng dụng.

Mô tả cấp cao về luồng gói IBC giữa hai chuỗi khối

Lớp vận chuyển

Các thông báo được truyền qua IBC được vận chuyển trong các gói dữ liệu . Và lớp vận chuyển chịu trách nhiệm vận chuyển , xác thựcsắp xếp các gói dữ liệu này.

Lớp vận chuyển không chỉ định bất cứ điều gì về dữ liệu trong các gói sẽ là gì hoặc cách chuỗi nhận sẽ diễn giải chúng. Từ quan điểm của tầng vận chuyển, 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 chính của lớp vận chuyển là các máy khách nhẹ, 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 chuỗi khối. 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 báo 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 có trong một khối). Điều này cho phép các máy khách nhẹ hoạt động hiệu quả về mặt lưu trữ và tính toán.

Hai chuỗi khối độc lập AB tương tác qua IBC có các ứng dụng khách 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 chuỗi khối của mình, hoạt động như một đại diện nhẹ cho chuỗi khối của B. Khi A muốn liên lạc một thông báo 'X' nhất định với B , nó sẽ gửi tiêu đề của khối trong đó thông báo đó tồn tại, cùng với bằng chứng cam kết của thông báo đó tới 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 sự đã thực hiện X . Chính việc sử dụng các ứng dụng khách nhẹ trong IBC này cho phép các chuỗi khối trao đổi thông điệp với nhau mà không cần bên thứ ba đáng tin cậy.

Nhưng AB không trực tiếp gửi các gói dữ liệu/tin nhắn 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 hàm băm của gói dữ liệu chứa tin nhắn trong máy trạng thái của nó . Người chuyển tiếp , là các quy trình ngoài chuỗi, liên tục theo dõi các thông báo như vậy. Khi họ thấy rằng A đã gửi một tin nhắn dành cho B trong máy trạng thái của nó, họ chỉ cần nhận tin nhắn này và chuyển nó cho B . Lưu ý rằng các bộ chuyển tiếp 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 để truyề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 dành riêng cho chuỗi, các kênh dành riêng cho mô-đun. Mỗi đầu kênh có một ID kênh duy nhất (và 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 vận chuyển để xây dựng trên cùng. Lớp vận chuyển không chỉ định cách các 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 mã thông báo có thể thay thế/không thể thay thế, nguồn cấp dữ liệu tiên tri 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 tính 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 liên chuỗi 20 (ICS 20) — chỉ định cách cấu trúc các gói dữ liệu và cách chúng được giải thích bằng chuỗi nhận. Trong trường hợp chuyển mã thông báo có thể thay thế được, các gói dữ liệu chứa thông tin liên quan đến người gửi, người nhận, số lượng và mệnh giá (IBC denom). Trường denom theo dõi đường dẫn 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 thức hoạt động của các gói cũng được quy định bởi ICS 20.

Một phép loại suy đơn giản có thể hữu ích trong việc hiểu IBC là hệ thống chuyển phát thư. Khi bạn gửi thư cho ai đó, bạn gửi thư qua dịch vụ bưu chính, dịch vụ này sẽ thu phong bì chứa thư từ bạn và gửi thư vào hộp thư của người nhận. Sau đó, người nhận sẽ mở phong bì nói trên và đọc thư của bạn. Lớp 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ư nên như thế nào hoặc người nhận sẽ diễn giải thư 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ó đế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 về người đã 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 đối tác). Cuối cùng, chính người nhận (ứng dụng) chịu 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ế được, hai ứng dụng cấp IBC khác bao gồm Tài khoản liên chuỗi và Bảo mật liên chuỗi .

Tài khoản liên chuỗi tạo điều kiện thuận lợi cho tương tác chuỗi với chuỗi trong khi vẫn duy trì trên một giao diện duy nhất. Điều này có nghĩa là bất kỳ hành động nào như chuyển nhượng, đặt cược hoặc bỏ phiếu cho các đề xuất quản trị có thể được thực hiện trên B (được gọi là 'chuỗi máy chủ'), đều có thể được thực hiện từ A (được gọi là 'chuỗi bộ điều khiển'). Tài khoản Interchain tăng đáng kể khả năng kết 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 chuỗi khối thuê bảo mật từ một chuỗi khác theo cách hoàn toàn đồng ý. Đ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 sẵn, chẳng hạn như Cosmos Hub. Interchain Security loại bỏ sự cần thiết của các chuỗi để khởi động bộ xác thực của riêng chúng.

Phạm vi của các ứng dụng có thể được thực hiện bằng cách sử dụng IBC làm cơ sở cốt lõi không ngừng tăng lê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ừ mộ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ì?

Nói tóm lại, IBC giải quyết vấn đề về các chuỗi khối tồn tại dưới dạng silo với sự tương tác hạn chế. Khả năng tương tác giữa các chuỗi khối 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 chuỗi khối, thì điều đó sẽ gây bất lợi nghiêm trọng cho tiện ích của chúng. Bước đột phá mà internet mang lại là thông tin có thể dễ dàng di chuyển 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 chuỗi khối 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 chuỗi khối để 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 chuỗi khối 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 chuỗi khối khác cung cấp. Khả năng tương tác giữa các chuỗi được yêu cầu để 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 tin cậy, an toàn, có thể mở rộng và có 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 như thế nào?

Bản chất mô-đun của SDK Cosmos giúp nhà phát triển không phải lo lắng về 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 cần 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 cổng thông tin 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 SDK Cosmos, thì các bước cần thiết để kích hoạ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 nhà xây dựng liên chuỗi, một sáng kiến ​​của ICF, để được hỗ trợ xây dựng trong Cosmos.

Về tác giả: bài đăng này được viết bởi Adi Ravi Raj , Nhà phân tích giao thức IBC tại Interchain GmbH.