4.2 Sistemas de Reputa¸c˜ao para Redes P2P
4.2.1 P2PRep
O P2PRep ´e um sistema de gerenciamento de reputa¸c˜ao proposto para sistemas de compartilhamento de arquivos que usam o ambiente Gnutella na sua vers˜ao original [23]. O mecanismo de reputa¸c˜ao se baseia em um protocolo de vota¸c˜ao distribu´ıda que estende as mensagens do sistema Gnutella. As mensagens P2PRep s˜ao carregadas como informa¸c˜ao dentro das mensagens Query e QueryHit do protocolo Gnutella. As mensagens Querys˜ao utilizadas para realizar buscas na rede e as mensagens QueryHit s˜ao enviadas em resposta `as mensagens do tipo Query. As mensagens empregadas pelo protocolo Gnutella original s˜ao descritas no Cap´ıtulo 2, Se¸c˜ao 2.3. Al´em das mensagens padr˜oes Gnutella, o sistema de reputa¸c˜ao acrescenta mensagens adicionais para implementar o protocolo de vota¸c˜ao distribu´ıda e assume o uso de encripta¸c˜ao por chave p´ublica para prover integridade e confidencialidade das mensagens. O objetivo do P2PRep ´e contribuir na tomada de decis˜ao do n´o na escolha do melhor provedor de recurso antes de efetuar a aquisi¸c˜ao do arquivo.
Coleta das Informa¸c˜oes. Ap´os requisitar mensagens na rede e obter resposta do provedor de recurso s, o n´o p necessita de informa¸c˜oes sobre a reputa¸c˜ao do provedor de recurso s. Ent˜ao, o n´o p envia mensagens na rede do tipo P oll((T, P Kpoll)) para requisitar
4.2 sistemas de reputa¸c˜ao para redes p2p 52 informa¸c˜oes sobre o comportamento do n´o s para um conjunto T de n´os votadores. Antes de enviar uma mensagem do tipo Pool, o n´o gera um par de chaves p´ublica e privada P Ki, SKi associada com i; onde i pode ser um provedor de recurso ou um conjunto T
de n´os votadores. Ao enviar a mensagem P oll((T, P Kpoll)), o n´o p envia a chave p´ublica
PK com a qual a mensagem resposta deve ser encriptada. Os n´os votadores, ao receber mensagens do tipo P oll((T, P Kpoll)), verificam em seus reposit´orios de experiˆencias se
possuem informa¸c˜oes sobre o n´o s. Caso possuam, eles emitem mensagens resposta do tipo P ollReply((IP, port, V otes, servent_idi)P Kpoll) ao n´o p com o seu servent_id e o
voto atribu´ıdo aos provedores de recursos. Ap´os receber as mensagens com os votos, o n´o p envia uma mensagem AreY ou(servent_idj) diretamente aos n´os votadores, cujo
servent_idj´e fornecido durante a mensagem P ollReply juntamente com o voto, e aguarda
pela mensagem AreY ouReply para confirmar o servent_id dos n´os votadores. Ap´os confirmar a integridade das mensagens recebidas, o n´o p seleciona o melhor provedor do recurso.
Armazenamento das Informa¸c˜oes. Ap´os realizar uma transa¸c˜ao, configurada pela busca e obten¸c˜ao de um recurso na rede, o n´o i avalia o recurso fornecido pelo n´o j e as informa¸c˜oes recebidas sobre a reputa¸c˜ao do n´o j. Cada n´o mant´em dois reposit´orios, um para armazenar informa¸c˜oes sobre a qualidade dos recursos que os n´os oferecem (reputa¸c˜ao) e outro para armazenar informa¸c˜oes sobre a qualidade dos votos que eles expressam (credibilidade) sobre os n´os que p interagiu na rede.
Reposit´orio de experiˆencia. A cada servent_id ´e associado um conjunto de triplas (servent_id, num_plus, num_minus). A cada obten¸c˜ao de recurso realizado ´e atribu´ıdo (num_plus) `a obten¸c˜ao do recurso executado com sucesso e (num_minus) ao realizado com insucesso. S˜ao mantidos dois contadores separados no reposit´orio de experiˆencias para atualizar as experiˆencias boas e ruins.
Reposit´orio de credibilidade. A cada n´o ´e associado um conjunto de triplas (servent_id, num_agree, num_disagree). Ap´os a obten¸c˜ao do recurso com sucesso de um n´o provedor s, p aumentar´a por 1 (um) o contador num_agree de todos os n´os que tenham emitido
4.2 sistemas de reputa¸c˜ao para redes p2p 53 informa¸c˜oes que foram constatadas como verdadeiras ap´os a obten¸c˜ao do recurso ser efe- tivada e aumentar´a em 1 (um) o num_disagree de todos os n´os que tenham emitido informa¸c˜oes falsas.
C´alculo da Reputa¸c˜ao. A reputa¸c˜ao R(i, j) ´e o valor da reputa¸c˜ao do n´o j cal- culada pelo n´o i. O valor da reputa¸c˜ao expressa a capacidade do n´o j fornecer recursos confi´aveis. A credibilidade C(p, i) corresponde a credibilidade do n´o i atribu´ıda pelo n´o p. A credibilidade de um n´o corresponde a capacidade do n´o fornecer informa¸c˜oes corretas sobre o comportamento dos n´os que fazem parte da rede. Para calcular o valor da repu- ta¸c˜ao atribu´ıdo ao n´o j, realiza-se a subtra¸c˜ao da quantidade de intera¸c˜oes negativas da quantidade das intera¸c˜oes positivas e divide-se o resultado pela quantidade de intera¸c˜oes realizadas, conforme a equa¸c˜ao �.�.
R(i, j) = �n
n=0num plus(i,j)−
�n
n=0num minus(i,j)
�n
n=0num plus(i,j)+
�n
n=0num minus(i,j)
(�.�)
Ao receber a reputa¸c˜ao R(i, j) do n´o j, calculada pelo n´o i, o n´o p pondera o valor recebido de acordo com as informa¸c˜oes mantidas em seu reposit´orio de credibilidade C(p, i) sobre o n´o i (o n´o informante). Assim, o n´o p ir´a adicionar ao c´alculo da reputa¸c˜ao do n´o j as informa¸c˜oes sobre a credibilidade do n´o informante, como descrito na equa¸c˜ao �.�.
R(i, j)∗ C(p, i) = R(i, j) ∗ �n
n=0num agree(p,i)−
�n
n=0num disagree(p,i)
�n
n=0num agree(i,j)+
�n
n=0num disagree(i,j)
(�.�)
Se as informa¸c˜oes fornecidas pelo n´o i forem sempre verdadeiras, o valor da reputa¸c˜ao do n´o j fornecida pelo n´o i ser´a inalterado. Caso contr´ario, o valor da reputa¸c˜ao do n´o j ser´a diminu´ıdo. Al´em da informa¸c˜ao do fator de credibilidade, o n´o p leva em considera¸c˜ao as experiˆencias diretas realizadas com o n´o j. Assim, p verifica em seu reposit´orio de reputa¸c˜ao se possui informa¸c˜oes sobre o n´o j e adiciona essa informa¸c˜ao
4.2 sistemas de reputa¸c˜ao para redes p2p 54 ao c´alculo final da reputa¸c˜ao, conforme a equa¸c˜ao �.�
R(p, j) = R(i, j)∗ C(p, i) ∗ R(p, j) (�.�)
Portanto, para realizar o c´alculo final da reputa¸c˜ao do n´o j, o n´o p considera, al´em dos votos expressos pelos n´os informantes, o fator de credibilidade de cada n´o informante e as informa¸c˜oes sobre as experiˆencias diretas realizadas pelo n´o p com o n´o j. Caso o n´o p n˜ao possua informa¸c˜oes sobre a credibilidade dos n´os informantes e/ou n˜ao tenha realizado intera¸c˜oes com o n´o j os valores de C(p, i) e R(p, j) s˜ao considerados igual a 1.
Atualiza¸c˜ao da Reputa¸c˜ao. Ap´os cada transa¸c˜ao na rede, o n´o p armazena todas as informa¸c˜oes sobre o resultado das avalia¸c˜oes dos recursos recebidos em seus reposit´orios de experiˆencia.
Distribui¸c˜ao das Opini˜oes. A distribui¸c˜ao das informa¸c˜oes sobre a reputa¸c˜ao dos provedores de recursos ´e realizada mediante requisi¸c˜ao dos n´os. O n´o s´o distribui informa¸c˜oes de reputa¸c˜ao ao receber mensagens do tipo P oll(T, P Kpoll).