Prova de importância

Origem: Wikipédia, a enciclopédia livre.

Prova de importância (do inglês, proof-of-importance ou POI), é um algoritmo usado para garantir consenso na block chain[1] usada pela NEM[2], uma plataforma e criptomoeda criada em 2015. O modelo do algoritmo POI é baseado em teorias já consolidadas na computação sobre o grau de importância de nós em grafos. Portanto, a importância de um usuário, ou nó, na rede é calculada a partir de parâmetros considerados essenciais pela NEM, tais como: a quantidade de moedas que o usuário tem e a quantidade de transações feitas com sua carteira virtual. Considerando que a rede de transações é disponibilizada publicamente, é possível auditar essas transações e visualizar a topologia que a rede adquiri ao longo do tempo e essa é a proposta que a prova de importância traz para alcançar o consenso na block chain.

Histórico[editar | editar código-fonte]

A ideia de prova de importância foi publicamente apresentada e usada pela NEM em 2015 como um novo mecanismo de consenso para sua block chain. Suas características herdam naturalmente alguns conceitos de Prova de Participação (do inglês, Proof-of-Stake ou POS), no caso, POI, não apenas se beneficia do quanto um nó possui de saldo, mas também de outros atributos derivados das atividades transacionais de um nó na rede. Assim como a Prova de Participação (POS), a prova de importância, enfatiza também em sua base a preocupação em relação ao consumo de energia comparado ao POW. Por outro lado, POI, ataca o problema monopolização de mineração que POS enfrenta, popularmente parafraseado como "rich gets richer[3]", ou seja, quanto mais saldo tem um usuário em um sistema POS, consequentemente mais participação e mais rico ele se torna na rede. Há questionamentos sobre a eficiência do POI comparada ao POS, apesar disso o crescimento da moeda XEM (nome atribuído a moeda da rede NEM) já figura entre as 5 primeiras posições[4] na capitalização de mercado entre as criptomoedas.

Sistema de reputação de nós[editar | editar código-fonte]

O sistema de reputação é um módulo a parte em relação à POI, ou seja, enquanto a prova de importância trabalha em nível de conta virtual e suas transações com outros nós, ou seja um algoritmo voltado para a blockchain, o sistema de reputação opera sobre a rede peer-to-peer[5] (P2P) dos nós. Isso é dado pela necessidade de identificar nós mal intencionados que propositalmente injetam falsas informações na rede.

A ideia básica da rede usada pela NEM é de que cada nó pode interagir com outro nós através da transmissão de informações de transações e blocos de transações. Portanto, cada nó pode tanto informar à rede sobre novas entidades quanto perguntar a outros nós sobre essas entidades. Com isso, o nó pode registrar se a verificação da informação recebida foi um sucesso (uma nova informação válida foi recebida), neutro (a informação é válida, porém já recebida) ou falha (informação inválida recebida). Cada nó tem um conjunto inicial de nós chamados pré-validados e cada nó também persiste todas suas interações com outros nós. Com esses dados, é possível aplicar os cálculos de reputação de um nó na rede. O sistema pontua de acordo com a vizinhança local dos nós, logo, essas pontuações não tem influência global.

Essa abordagem usada pela NEM é baseada no sistema de reputação chamado EigenTrust[6]++, voltada para redes P2P e adaptada para a rede NEM e seu objetivo é oferecer suporte para que a rede não seja infectada por nós maliciosos.

Funcionamento[editar | editar código-fonte]

A prova de importância leva em consideração várias abordagens que auxiliam e promovem a elegibilidade de um nó e sua relevância na rede. O uso de teorias dos grafos consolidadas em áreas de pesquisa como redes sociais, neurociência, redes viárias, etc, formam a base de inovação proposta pela NEM para o consenso da block chain. O conjunto dessas técnicas atacam alguns problemas enfrentados por Prova de Trabalho e Prova de Participação, como Sybil attacks[7], Loop Attack, consumo de recursos energéticos e computacionais, o problema de monopólio, entre outros.

Elegibilidade da importância de um nó[editar | editar código-fonte]

Segundo a referência técnica do projeto NEM[8], para um nó ser elegível e estar apto a entrar no cálculo de importância é preciso atingir um mínimo de moedas XEM adquiridas (atrelado ao conceito de vesting[9], ou direito de aquisição), este montante foi inicialmente foi definido em 10.000 XEM, e esse limite mínimo pode ser alterado a medida que a rede cresce. A rede NEM dispõe de 8.999.999.999 XEM no total. Portanto o número máximo de usuários com alguma reputação associada é de 899,99. Apesar do número ser relativamente baixo, na prática, não é esperado que seja alcançado o número máximo por causa das variações de saldo e também pelo custo temporal do vesting.

O conceito de Vesting[editar | editar código-fonte]

No contexto de direito e negócios, vesting é um consenso contratual em que é oferecida a opção de obter direito a uma ação (ou ativos, propriedades, etc) sob determinadas condições ao longo do tempo. Essa prática oferece garantias importantes, principalmente para startups, ao vender as ações de sua empresa, que incentiva, e determina, a participação ativa do acionista sob condições descritas no contrato.

Baseado nisso, o NEM se beneficia desse conceito para construir uma confiança sobre o usuário e evitar Sybil attacks[10] no momento que ele entra na rede e deposita XEM em sua carteira virtual pela primeira vez. Inicialmente nenhuma porcentagem do valor é considerado vested (vamos considerar, adquiridos). Após 24h, 10% do saldo é concedido ao usuário. Novamente, depois de 24h mais 10% são concedidos. Após alcançar um número suficiente de moedas adquiridas é que será possível iniciar a mineração, ou como eles denominam, colheita.

Cálculo da matriz de transações[editar | editar código-fonte]

Suponha que o cálculo de prova de importância é feito a uma altura h. Todas as contas que tiverem um saldo disponível de pelo menos 10.000 a uma altura h estão aptos a participar no cálculo de POI. Para cada conta, é coletado todas as operações de transefências efetuadas seguindo as seguintes condições

  • A transferência é de um valor de pelo menos 1.000 XEM
  • A transferência aconteceu nós últimos 43.200 blocos (aproximadamente 30 dias)
  • O beneficiado é também elegível para o cálculo de POI

Para cada uma dessas transações Tk que transferiu uma quantia de 1.000 XEM de uma conta Ai para uma conta Aj e foi realizada a uma altura hijk, o peso então é calculado de acordo com a fórmula:

onde [x] é uma função piso. Naturalmente, a transação de uma quantia de 10 mil XEM é ponderada ao longo do tempo.

Esse comportamento é associado a:

Aplicando:

então, temos que a matriz de transações O é constituída de elementos oij, tal que:

Logo, o elemento da matriz de transações oij descreve o fluxo de uma rede ponderada da moeda XEM de uma conta Ai para Aj durante os últimos 30 dias aproximadamente. Isso significa que apenas transferências entre redes contribuem para a importância de uma conta.

NCDawareRank[editar | editar código-fonte]

Para determinar a relevância de um nó na rede, o NEM, usa uma abordagem similar ao PageRank[11], o NCDawareRank[12], que calcula a distribuição de probabilidade estacionária de uma cadeia de Markov ergódica.  O objetivo da aplicação do NCDawareRank é convergir mais rápido comparado ao PageRank ao mesmo tempo que evita manipulação de pontuação de reputação, isso se dá porque o ranqueamento de nós de um mesmo nível são limitados a partir de uma matriz de proximidade.

Clusterização do grafo de transações[editar | editar código-fonte]

Para a clusterização do grafo, a Prova de Importância usa o algoritmo de clusterização[13] chamado SCAN[14]. Esse algoritmo clusteriza vértices baseado na similaridade entre grupos de nós que estão a dois níveis de distância, tais clusters são criados visitando cada nó relevante apenas uma vez e depois expandindo esses clusters. Depois de todo o processo de clusterização concluído, os clusters computados são usados para determinar os níveis da matriz de proximidade do NCDawareRank. Segundo o NEM, esses clusters são a representação praticamente decomposta do grafo de transações.

Cálculo de importância dos nós[editar | editar código-fonte]

Após todas as etapas feitas com o grafo de transições é possível, finalmente, calcular a pontuação de importância de um nó. O cálculo de importância é dado da seguinte forma:

onde,

é

é a quantidade de XEM adquirida

é a rede ponderada de transações XEM

é a pontuação NCDawareRank

é o vetor de ponderação que considera a topologia estrutural do grafo

são constantes

considera a topologia da rede e atribui um peso de altura maior para os nós que fazem parte de clusters, ao invés de outliers ou hubs.

Esses outliers e hubs são ponderados em 0,9 de sua pontuação, enquanto nós que estão em um cluster são ponderados em 1.0. NEM atribui a os valores 1,25 e 0.1337.

Após o cálculo, as informações sobre quantia adquirida, XEM transferidos, e a topologia do grafo formam a heurística de avaliação de importância de usuários na rede NEM. Essas abordagens em conjunto reforçam o combate na tentativa de manipulação de importância na rede.

O problema de manipulação de reputação[editar | editar código-fonte]

Na rede NEM, há um incentivo em XEM para que usuários pratiquem a colheita (mineração) de blocos, e usuário com pontuação de importância alta tem mais chances de minerar um bloco. A prova de importância considerou o problema de ataques Sybil em sua construção desde o início. O uso de NCDawareRank, quantia adquirida do saldo, e pesos atribuídos na rede de transações ao longo do tempo, desempenham um papel importante para o combate de ataques Sybil.

Esses ataques incluem:

  • divisão de contas e transações entre essas contas para aumentar a pontuação NCDawareRank;
  • divisão de contas e transações entre contas aleatórias;
  • envio de XEM entre contas em um loop para aumentar a pontuações em relação a transações.

Os componentes da prova de importância que combatem estão listados a seguir de forma resumida:

  • a matriz de nível de proximidade do NCDawareRank torna o algoritmo resistente a spamming. No caso o cenário seria em que uma conta envia valores para outra e depois retornam para a conta principal;
  • o Vesting faz com que o processo de direito de aquisição seja lento, ou seja, leva um tempo para que uma conta seja elegível e consiga iniciar os ataques a rede;
  • a matriz da rede de transações apenas considera operações de saída. Portanto não há vantagem em operar transferências de uma conta para outra e retornar, pois as operações de entrada e saída de valores se excluem no cálculo;
  • há uma ponderação ao longo do tempo sobre a matriz de transferência, portanto, após um período a pontuação de importância cai;
  • o requisito mínimo para elegibilidade de 10.000 XEM oferece uma barreira considerável para possíveis ataques Sybil.

Esses e esses outros motivos que compõem um conjunto de algoritmos e teorias, dão base para que a Prova de Importância seja efetiva no combate a injeção de movimentações maliciosas na rede.

Referências

  1. «Explorador de Blocos Bitcoin - Blockchain.info». blockchain.info. Consultado em 8 de julho de 2016 
  2. «NEM». nem.io. Consultado em 7 de julho de 2016 
  3. «The rich get richer and the poor get poorer». Wikipedia, the free encyclopedia (em inglês). 2 de maio de 2016 
  4. «Crypto-Currency Market Capitalizations». coinmarketcap.com. Consultado em 7 de julho de 2016 
  5. «Peer-to-peer». Wikipédia, a enciclopédia livre. 11 de fevereiro de 2016 
  6. Kamvar, Sepandar D.; Mario T. (1 de janeiro de 2003). «The Eigentrust Algorithm for Reputation Management in P2P Networks». New York, NY, USA: ACM. Proceedings of the 12th International Conference on World Wide Web: 640–651. doi:10.1145/775152.775242 
  7. Douceur, John R. (1 de janeiro de 2002). «The Sybil Attack». London, UK, UK: Springer-Verlag. Revised Papers from the First International Workshop on Peer-to-Peer Systems: 251–260 
  8. NEM Technical Reference (PDF). [S.l.: s.n.] 
  9. «What is Proof-of-Importance (POI) and Why Is It Better, and What Is Vesting?» 
  10. «What is a Sybil Attack? - TopTenREVIEWS». Consultado em 8 de julho de 2016 
  11. «Langville, A. and Meyer, C.D.: Google's PageRank and Beyond: The Science of Search Engine Rankings. (eBook and Paperback)». press.princeton.edu. Consultado em 8 de julho de 2016 
  12. Nikolakopoulos, Athanasios N.; Garofalakis John D. «NCDawareRank: A Novel Ranking Method That Exploits the Decomposable Structure of the Web». New York, NY, USA: ACM. Proceedings of the Sixth ACM International Conference on Web Search and Data Mining WSDM 2013: 143–152. doi:10.1145/2433396.2433415 
  13. «Clustering». Wikipédia, a enciclopédia livre. 13 de maio de 2015 
  14. Xu, Xiaowei; Nurcan (1 de janeiro de 2007). «SCAN: A Structural Clustering Algorithm for Networks». New York, NY, USA: ACM. Proceedings of the 13th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining: 824–833. doi:10.1145/1281192.1281280 
Ícone de esboço Este artigo sobre matemática é um esboço. Você pode ajudar a Wikipédia expandindo-o.