Incentivos em Sistemas P2P Marcos Massayuki Kobuchi Introdução Server Based Peer to Peer Introdução Redes P2P ● Napster (1999) ● Gnutella (2000) Napster Gnutella Características ● Grande escala ● Alta rotatividade ● Anonimato ● Interações entre usuários que nunca irão se encontrar novamente! Problema ● Cooperação dificultada Agravada por: ● Deserções Indetectáveis ● Criação de múltiplos usuários Definições Jogadores: ● Peer: podendo ser cliente ou servidor ● Seeder: servidor p2p File Sharing Game Objetivo: aumentar banda de upload Peer: ● Cliente ● Servidor Servidor tem o custo de uso da CPU e banda! Estratégia Dominante Cliente: ● Faz download Servidor: ● Se recusa a fazer upload Free Riding! Tit for Tat Retaliação Equivalente ● Dilema do Prisioneiro Iterado ● Ações anteriores são lembradas ● Se oponente colaborou, então colaboro ● Senão, não. Shadow of the Future ● Jogador fará upload ● Expectativa de fazer download no futuro Problemas: Jogadores farão outras transações? Jogadores terão papéis invertidos? População Pequena População Grande Motivos? Interações entre pares não são frequentes Reciprocidade Direta não é recomendada: ● pareamento randômico ● populações grandes Reciprocidade Indireta? Soluções ● Reputação ● BitTorrent ● Moeda Reputação ● Histórico dos jogadores ● Recompensar bom comportamento ● Punir mau comportamento KaZaA File Sharing KaZaA File Sharing ● Constrói reputacão com upload de arquivos ● Recompensa: prioridade quando download Estratégias similares para: ● armazenagem p2p ● multicast p2p ● redes adhoc Esquema de reputação p2p Com técnicas de segurança, podemos: ● identificar ● isolar ● evitar peers maliciosos! Vulnerabilidades Multiple colluding peers ● melhorar reputação com falsas recomendações ● punir um peer com falsas acusações Pseudônimos “baratos” ● Whitewashing ● Sybil Attack A Minimalist p2p Model ● população de peers racionais ● diferentes disposições de contribuir ● cada peer i tem tipo Ɵi refletindo sua generosidade ou custo máximo ● cada peer faz decisões autônomas: ○ quando contribuir? ○ free ride? A Minimalist p2p Model ● custo para cada contribuidor? ○ carga do sistema ○ inversamente proporcional a fração de contribuidores ○ Ɵ = 1/x ● peer: ○ se Ɵi > 1/x, contribua ○ senão, free ride Free Market ● x = Pr(Ɵi ≥ Ɵ) ● x = 1/Ɵ ● Três equilíbrios: ○ Intersecção ○ x=0 Calculando x... ● x = Prob(Ɵi ≥ 1/x) ● no caso em que generosidade dos peers estão uniformemente distribuídos entre 0 e Ɵm ● Prob(Ɵi ≥ 1/x) = 1 - (1/xƟm) ● Equação de Ponto Fixo x = 1 - (1/xƟm) ● Soluções:x1,2 = (Ɵm ± √(Ɵm^2-4Ɵm))/2Ɵm ● se Ɵm < 4 não há x1 estável ● x1 tende a 1 quando Ɵm -> ∞ Benefícios do Sistema ● Benefícios é proporcional ao nível de contribuição do sistema ● Função αx ○ α grande, onde x=0 é socialmente ineficiente Performance do Sistema ● Diferença entre total de benefícios e custo de contribuição total ● Ws = αx - (1/x)x = αx - 1 ● Performance do sistema é limitada pelo menor nível de contribuição ● Sistema entrará em colapso se generosidade máxima for baixa! Reputação e Serviço de Diferenciação ● Sistema que pega free riders com probabilidade p ● Política de Diferenciação onde free riders são excluídos do sistema Ou…. ● Sistema que consegue diferenciar perfeitamente free riders de contribuidores ● Política de Diferenciação onde free riders receberão serviço 1-p vezes de um contribuidor Consequencias ● A penalidade introduz uma ameaça a free riders, induzindo-os a contribuir ● Diminui o custo do sistema ○ para x + (1-x)(1-p) ○ custo de contribuição [x + (1-x)(1-p)]/x Um pouco de matemática... ● Q: Benefício Individual ● R: Custo de Contribuição (reduzido) ● T: Ameaça Performance: ● Contribuidor: Q-R = αx - [x + (1-x)(1-p)]/x ● Free rider: Q-T = αx - pαx Mais um pouco... ● Novo equilíbrio de contribuição: ○ x = Prob(Ɵi ≥ R-T) ● = Prob(Ɵi ≥ [x + (1-x)(1-p)]/x - pαx) ● Performance do Sistema ○ Ws(p) = x(Q-R) + (1-x)(Q-T) ● = (αx-1)(x+(1-x)(1-p)) Visualizando... Algumas conclusões ● Imposição de penalidade, enquanto aumenta o nível de contribuição acarreta em alguma perda social ● Podemos ajustar valor de p para conseguir um nível de cooperação desejada ○ Se p for suficientemente alto, T > R e não haverá free riders, atingindo performance ótima BitTorrent ● Barter Based System (Permutação) ● Reciprocidade Direta Arquivo: ● dividido em pedaços pequenos pelo seeder ● diferentes pedaços para diferentes peers ● cada peer troca pedaços com outros peers ● peer reconstrói arquivo Swarming Download ou Parallel Download BitTorrent Forçar varias transações entre peers Exemplo: ● Peer inicia download ● Carrega conjunto de 40 peers ● Seleciona quatro peers para se conectar ● Periodicamente atualiza a lista de vizinhos com peers com melhor taxa de download Problema E depois do download ser concluído? Não há incentivo! Solução: Reputação! Outros problemas… ● fingir possuir banda de upload menor enquanto mantem ordem relativa com relação à taxa de upload de outros peers ● sybil attack (aumentando chances de ser selecionado para download) ● whitewashing ● enviar “lixo” para aumentar taxa de upload Moeda (currency) Ganhar crédito contribuindo com recursos…. para gastar comprando recursos! Currency Based Systems ● Mojonation ● Karma Golle et al. (2001) ● cada peer faz decisão independente em relação a sua quantidade de download/upload ● se cada peer é cobrado um valor proporcional a diferença entre download e upload…. ● … existe um unico e estrito equilíbrio de nash onde todos peers irão maximizar quantidade de download e upload Outros comportamentos... Não há só o free riding! Decisões estratégicas: ● ao entrar ou sair da rede ● quais peers se conectar ● reportar corretamente ao sistema informações (ex: custos) ● manipular mecanismos ou protocolos do sistema Hidden Action ● ações do peer são ocultas de outros peers ● como peers se comportarão? Esperamos que peers enviem e encaminhem mensagens de/para seus vizinhos Exemplo: ● peer recebe query de um vizinho ● responde se possível ● encaminha para seus outros vizinhos Hidden Action Peer pode: ● não enviar a mensagem ● enviar probabilisticamente para reduzir custos! Um sistema em que todos decidem não enviar pararia de funcionar! The Principal-Agent Model ● ● ● ● Dirigente emprega agentes Conjunto N de n agentes Conjunto A = (0, 1) de ações Cada agente i ∈ N ○ tem ação ai ∈ Ai ○ custo c(ai) ≥ 0 para cada ação ai ■ baixo esforço (ai = 0): custo 0 ■ alto esforço (ai = 1): custo c The Principal-Agent Model ● Coletiva e probabilisticamente, ações dos agentes determinam uma saída o ∈ {0, 1} ● Saída é determinada de acordo com: ○ a tecnologia do projeto ○ ou uma função de sucesso t: A1 x … x An → [0, 1] ● Ganho do dirigente: ○ v = 0 se saída for 0 (falha) ○ v > 0 se saída for 1 (sucesso) Read-Once Networks ● Grafo com dois nós especiais: ○ Source ○ Sink ● Cada agente controla uma aresta ○ se fizer baixo esforço, probabilidade de sucesso γ ○ se fizer alto esforço, probabilidade de sucesso δ≥γ ● Projeto se tiver caminho source-sink ● Mapeamento dos sucessos individuais através de tecnologias ○ tecnologia “AND” ○ tecnologia “OR” Probabilidade e Esforço ● Um agente: ○ low: probabilidade γ ∈ (0, 1/2) de sucesso ○ high: probabilidade 1-γ ∈ (1/2,1) de sucesso Tecnologia “AND” Probabilidade de sucesso Tecnologia “OR” Probabilidade de sucesso Contratos Dirigente fará contrato com agentes ● Se projeto tem sucesso, pago pi ≥ 0 a cada agente i ● Senão, não pago nada Pensando em um jogo... Profile of Action ● a = (a1,...,an) Utilidade de cada agente: ● ui(a) = pi * t(a) - c(ai) Utilidade do dirigente: ● onde a1,...,an estão em equilíbrio de Nash Incentivo e Contribuição Queremos motivar todo agente a se esforçar Contribuição marginal do agente i: ● aumento na probabilidade quando esforça Melhor estratégia Melhor estratégia do agente i é: ● ai = 1 se ● ai = 0 se Melhores Contratos Os melhores contratos para o dirigente é: ● pi = 0 para agente i que não se esforça ● para agente i que se esforça Observações No caso não observável, pagamento de cada agente i é maior que o custo dele! Price of Unaccountability POU(t) ● pior taxa entre ○ utilidade do dirigente no caso observável ○ utilidade do dirigente nas ações ocultas Resultados Lema: ● Para qualquer tecnologia t, a utilidade esperada do dirigente nos contratos ótimos, a probabilidade de sucesso e o pagamento esperado são todos não decrescentes com o valor v Resultados Para qualquer tecnologia AND com n agentes existe um preço v* < ∞ de forma que ● qualquer v < v* ótimo é não contratar ● qualquer v > v* ótimo é contratar todos Price of unaccountability: ● ponto de transição do caso não observável Resultados Para qualquer tecnologia OR com n agentes ● existem valores finitos positivos v1 < v2 < … < vn tal que para qualquer vk < v < vk+1 contratar exatamente k agentes é ótimo Price of unaccountability: ● POU é limitado por 5/2 Conclusões ● A rede p2p precisa de contribuidores ● Racionalidade x Bem Estar Social ● Mecanismos ○ Reputação ○ BitTorrent ○ Moeda ● Hidden Actions ● Facilidade de implementação levou ao florescimento de sistemas p2p ● Validação de designs de incentivos Dúvidas?