Sun và Garcia-Molina [36] đề xuất một kỹ thuật khích lệ gọi là SLIC (Selfish Link-based InCentives). Mục đích là để cho phép mỗi thành viên tự cư xử coi lợi ích bản thân lên hàng đầu, như vậy thành viên đó sẽ chia sẻ tài nguyên của mình với những thành viên đã từng giúp họ (cung cấp tài nguyên/dịch vụ cho thành viên đó) và tẩy chay những thành viên mà họ không được hưởng lợi nhiều từ những thành viên đó. SLIC hoạt động trong phạm vi một mạng ngang hàng không cấu trúc và dựa vào thuộc tính khóa trong hầu hết các truy vấn: như truy vấn làm tràn ngập trong mạng không cấu trúc, láng giềng của một nút sẽ kiểm soát việc gia nhập vào mạng của nó. Nói cách khác, một thành viên có thể (a) từ chối phục vụ yêu cầu của nút láng giềng (nếu nó chứa tài nguyên mà nút láng giềng yêu cầu), (b) Loại bỏ các yêu cầu của nút láng giềng của nó (nếu nó không chứa tài nguyên mong muốn nhưng cũng không cho tài nguyên đó được chuyển qua nó), (c) nó cũng có thể đáp ứng yêu cầu hoặc cho phép truy vấn yêu cầu được truyền qua nó. SLIC khai thác mối quan hệ này như sau: Nút N đánh giá nút láng giềng M của nó dựa vào số lượng các đáp ứng của M đóng góp cho N (M đáp ứng các truy vấn trực tiếp hoặc gián tiếp thông qua các nút láng giềng của nó). Nếu M được đánh giá tốt thì N sẽ đáp ứng các
yêu cầu của M một cách thuận lợi. Ngược lại, nếu M được đánh giá là không mang lợi cho N (M không đáp ứng các yêu cầu của N) thì N cũng không chia sẻ nhiều đối với M. Do đó, các nút được khích lệ để cung cấp nội dung và kết nối đến các nút cung cấp nội dung.
SLIC hoạt động dựa trên một chương trình đã có hiệu lực. Xét một nút N với M nút láng giềng của nó. Mỗi nút láng giềng được cấp một trọng số Wi với 0 <= Wi <= 1 (1 <= i <= M) dựa vào chất lượng dịch vụ được cung cấp bởi N. Wi = 1 nghĩa là nút láng giềng cung cấp dịch vụ rất tốt. Ngược lại, Wi = 0 ngụ ý một láng giềng vô dụng. Tài nguyên hoặc dịch vụ mà N sẽ cung cấp cho nút láng giềng thứ i tỷ lệ thuận với Wi. Chú ý rằng, khả năng của N được sử dụng cho cả các yêu cầu cục bộ và các yêu cầu gửi đến từ xa, chỉ có phần khả năng còn lại sau khi đáp ứng các truy vấn cục bộ được giành cho các nút láng giềng. Một cách định kỳ, các trọng số đó được cập nhật để theo dõi sự thay đổi trạng thái của các nút láng giềng. Để kỹ thuật SLIC hoạt động một cách hiệu quả, một vài vấn đề cần lưu tâm tới. Đầu tiên, cần xác định rõ trọng số của các láng giềng để phân biệt giữa láng giềng tốt và láng giềng xấu và cập nhật các trọng số đó một cách định kỳ. Trong SLIC, dịch vụ cung cấp bởi một láng giềng được đo bởi phần truy vấn được đáp ứng, ví dụ, số lượng dữ liệu có thể đáp ứng cho truy vấn tìm kiếm. Có 3 phương pháp để thiết lập trọng số cho các nút láng giềng mới: average – trọng số của một nút láng giềng mới được thiết lập là giá trị trung bình của các trọng số giữ bởi nút đó; average_inverse – trọng số
được tính bằng cách nhân giá trị trung bình với
i AvgHits
1
, trong đó AvgHitsi là giá trị
trung bình đáp ứng mỗi truy vấn được gửi bởi một nút trong suốt giai đoạn thứ i;
average_exponential – trọng số được tính bằng cách nhân giá trị trung bình với AvgHitsi
e . Phương pháp average đảm bảo tính công bằng cho các nút mới gia nhập, nhưng phương pháp này có thể dễ mắc phải hiện tượng tải tự do – một nút có thể dễ dàng ngắt kết nối và gia nhập lại hệ thống mỗi lần để khai thác những dịch vụ tốt từ các nút láng giềng mới. Ngược lại, phương pháp average_inverse và average_exponential dựa vào số lượng dịch vụ mà một nút được đáp ứng từ láng giềng hiện tại của nó. Về cơ bản, nếu các láng giềng hiện tại thực sự cung cấp dịch vụ tốt thì nó có thể không gặp rủi ro để phải chấp nhận thêm một láng giềng mới; ngược lại nếu một nút không hài lòng với các dịch vụ mà nút láng giềng mang lại thì một nút láng giềng mới có thể được thay thế để cải thiện mức độ hài lòng của nút đó. Hai phương pháp đó khác nhau trong việc thu nhận một nút láng
giềng mới. Trọng số được thay đổi đơn giản trong SLIC bằng cách sử dụng một cơ chế phân rã theo hàm mũ để cập nhật các trọng số đó.
Ví dụ: Wi(t) = α * Wi(t - 1) + (1 – α) * I(t). Trong đó, Wi(t) biểu thị trọng số của nút thứ i trong suốt thời gian t, I(t - 1) biểu thị chất lượng của dịch vụ trong suốt thời gian
t -1; (0<α<1).