Cho đến bây giờ, chúng ta đã thảo luận về các mô hình tin cậy và các hệ thống sử dụng chúng. Nhớ lại rằng, có hai mô hình tin cậy: mô hình dựa vào chứng thực và mô hình dựa vào uy tín. Mô hình thứ hai có thể được chia thành hai mô hình nhỏ: một mô hình chỉ xem xét uy tín cá nhân trong khi mô hình kia còn đưa thêm vào cả sự tính toán các mối quan hệ xã hội. Vì tất cả các mô hình này đòi hỏi phải có kiến thức toàn hệ thống để đánh giá sự tin cậy và như một kiến thức không tồn tại ở bất kỳ cá nhân nào. Trong phần này chúng ta sẽ bàn về các phương pháp tin cậy được đánh giá theo cách phân loại. Đặc biệt chúng ta tập trung thảo luận về cách quản lý các người dùng và sự trao đổi hiểu biết giữa họ về uy tín của các người dùng khác để có được một cái nhìn tổng quát về hệ thống mạng ngang hàng. Giải pháp cho vấn đề này một phần đã được thảo luận trong các hệ thống cụ thể được trình bày trong các phần trên. Tuy nhiên, ở đây chúng ta muốn nhấn mạnh và tổ chức chúng thành các loại và thảo luận chúng một cách chi tiết hơn. Nói chung, có ba phương pháp để quản lý sự tin cậy trong hệ thống P2P như sau.
3.6.0.1 Quản lý sự tin cậy dựa vào máy chủ
Đây là cách đơn giản, trong cách này, máy chủ được sử dụng để duy trì giá trị uy tín của các người dùng. Bằng cách này, sau khi giao dịch, mỗi người dùng tham gia chỉ cần gửi ý kiến của họ về đối tác tới máy chủ. Các máy chủ có trách nhiệm quản lý uy tín của mọi người dùng và trả lời các truy vấn của bất kỳ người dùng nào. Cách này thích hợp cho các hệ thống P2P dựa trên máy chủ vì chúng có thể sử dụng cấu trúc hiện có để quản lý tin cậy. Tuy nhiên, vì phương pháp này dựa vào các máy chủ, nên nó gặp các vấn đề của hệ thống dựa vào máy chủ như: thắt cổ chai và thiếu khả năng mở rộng.
3.6.0.2. Quản lý tin cậy dựa vào thuật toán lan truyền
Nếu không sử dụng máy chủ, có hai phương pháp để quản lý sự tin cậy của toàn hệ thống. Cách đầu tiên sử dụng một thuật toán lan truyền để trao đổi kiến thức giữa các người dùng trong hệ thống. Kết quả, sau khi đủ các bước trao đổi, một người dùng có thể có một cái nhìn tổng quan về hệ thống. Đặc biệt, sau mỗi giao dịch hoặc sau một khoảng thời gian, các người dùng báo cáo điểm số của các đối tác trong các giao dịch mới nhất cho tất cả các nút khác trong hệ thống bằng cách sử dụng một thuật toán lan truyền. Ban đầu, người dùng đó gửi điểm số cho tất cả các người dùng khác mà người đó biết, rồi chúng sẽ lần lượt chuyển tiếp cho các người dùng khác. Từng bước, điểm số được cập nhật tại tất cả các nút. Phương pháp đơn giản này rất tốn kém vì nó yêu cầu lưu giữ thông tin sự hiểu biết của tất cả các người dùng trong hệ thống tại mỗi nút, mặc dù hầu hết các lần giao dịch, một nút chỉ giao dịch với một số lượng nhỏ các nút khác trong hệ thống. Thêm nữa, hệ thống cho thấy chỉ nên duy trì uy tín cục bộ của một nút khi nó giao dịch với nút khác trong nội bộ của nó. Bất cứ khi nào một nút cần lấy lại uy tín của một nút chưa xác định, nó có thể sử dụng thuật toán lan truyền để yêu cầu uy tín của các nút đó từ nút láng giềng của nó, nút láng giềng của nút láng giềng của nó, và cứ như vậy cho đến khi tìm thấy. Kết hợp các thông tin phản hồi với những hiểu biết cục bộ, nó có thể xác định giá trị tin cậy của các nút đó. Lưu ý rằng phương pháp này có chi phí thấp hơn so với phương pháp đơn giản ở trên vì nó không cần thiết yêu cầu tất cả các nút trong hệ thống cung cấp thông tin về uy tín của một nút. Giá trị chính xác có thể hội tụ chỉ sau một số bước truyền các truy vấn.
3.6.0.3. Quản lý tin cậy dựa vào cấu trúc mạng P2P
Phương pháp trên dựa vào thuật toán lan truyền có chi phí cao vì uy tín của một nút hoặc một truy vấn có thể phải lan truyền tới tất cả các nút khác hoặc đa số các nút trong hệ thống. Tuy nhiên, nếu không làm điều này, kết quả truy vấn về uy tín của một nút có thể không chính xác. Phương pháp thứ ba đề xuất rằng chính bản thân một mạng ngang hàng có cấu trúc có thể sử dụng để quản lý uy tín của các nút trong hệ thống.
Ý tưởng cơ bản được đưa ra cho mỗi nút trong mạng, định danh của nó được coi như khóa và uy tín của nó được đánh chỉ số cùng với khóa định danh vào hệ thống mạng. Khi một nút muốn biết uy tín của các nút khác, đơn giản nó chỉ cần gửi một truy vấn với định danh của nút đó như là khóa tìm kiếm. Một vấn đề tiềm năng là một nút có thể giữ
uy tín của chính nó nằm trong vùng giá trị thay đổi chứa định danh của nó, do đó nó có thể thay đổi giá trị uy tín nếu nó là một nút xấu. Để tránh vấn đề này, thay vì giữ giá trị uy tín của một nút chỉ ở một ở một vị trí, hệ thống sẽ tạo các bản sao giá trị uy tín của một nút và giữ ở một vài vị trí khác. Tuy nhiên, nếu có nhiều nút xấu, và nếu chúng hợp tác với nhau, chúng vẫn có thể cung cấp thông tin sai đối với một vài nút. Giải pháp cho vấn đề này là yêu cầu một nút phải đánh giá uy tín của các nút tham chiếu. Điều này có thể dẫn tới sự kiểm tra vòng lặp cho tất cả các nút trong hệ thống, như thế rất tốn kém, nhưng trong nhiều trường hợp, hệ thống có thể quyết định tính đúng đắn của các giá trị uy tín chỉ sau một vài bước. Phương pháp này có thể được áp dụng trong bất kỳ hệ thống P2P có cấu trúc như P-Grid [56], CAN [9] hoặc CHORD [8].
Kết luận, sự phân loại các phương pháp quản lý tin cậy có thể được thể hiện như trong hình 3.9.
Hình 3.9. Phân loại các phương pháp quản lý tin cậy
Chúng ta thấy rằng, sự phân loại các phương pháp quản lý tin cậy tương tự như sự phân loại mạng ngang hàng: mô hình đầu tiên có thể ví như mạng ngang hàng không có cấu trúc, mô hình P2P dựa vào máy chủ; mô hình thứ hai sử dụng thuật toán lan truyền có thể coi như là mạng P2P không có cấu trúc, mô hình P2P thuần túy; và cuối cùng như là mô hình P2P có cấu trúc. Trong phần tiếp theo, chúng ta sẽ tìm hiểu ba hệ thống đại diện cho các mô hình này bao gồm các hệ thống: XenoTrust – sử dụng mô hình quản lý tin cậy dựa vào máy chủ; EigenRep [57] – sử dụng mô hình quản lý tin cậy dựa vào phương pháp lan truyền, và sự hợp tác của Ge, Luo và Xu [58] – sử dụng P-Grid để quản lý tin cậy.