Reencaminhe o título original:另一个角度看「AI+Blockchain」:AI 如何革新以太坊?
Ao longo do ano passado, à medida que a IA generativa foi quebrando repetidamente as expectativas do público, a onda da revolução da produtividade da IA varreu a comunidade das criptomoedas. Vimos muitos projectos com a temática da IA no mercado secundário criarem lendas de riqueza e, cada vez mais, os criadores começaram a desenvolver os seus próprios projectos "IA+Crypto". No entanto, após uma análise mais atenta, é evidente que estes projectos são altamente homogeneizados e a maioria apenas visa melhorar as "relações de produção", como a organização do poder de computação através de redes descentralizadas ou a criação de "Caras de Abraço descentralizadas". Poucos projectos tentam integrar e inovar verdadeiramente no núcleo técnico. Acreditamos que isto se deve a um "preconceito de domínio" entre os domínios da IA e da cadeia de blocos. Apesar da sua ampla intersecção, poucos têm um conhecimento profundo de ambas as áreas. Por exemplo, os programadores de IA podem ter dificuldade em compreender as implementações técnicas e a infraestrutura histórica do Ethereum, o que torna mais difícil propor soluções de otimização aprofundadas.
Tomando como exemplo a aprendizagem automática (ML), o ramo mais básico da IA, é uma tecnologia que permite às máquinas tomar decisões através de dados sem instruções explícitas de programação. A aprendizagem automática tem demonstrado um enorme potencial na análise de dados e no reconhecimento de padrões, tendo-se tornado comum na web2. No entanto, devido às limitações da era no seu início, mesmo na vanguarda da inovação tecnológica da cadeia de blocos, como a Ethereum, a sua arquitetura, rede e mecanismos de governação ainda não conseguiram tirar partido da aprendizagem automática como uma ferramenta eficaz para resolver problemas complexos.
"As grandes inovações surgem frequentemente na intersecção de campos." A nossa principal intenção ao escrever este artigo é ajudar os programadores de IA a compreender melhor o mundo da cadeia de blocos e, ao mesmo tempo, fornecer novas ideias aos programadores da comunidade Ethereum. Neste artigo, começamos por apresentar a implementação técnica do Ethereum e, em seguida, propomos a aplicação da aprendizagem automática, um algoritmo de IA fundamental, à rede Ethereum para melhorar a sua segurança, eficiência e escalabilidade. Esperamos que este caso sirva como ponto de partida para oferecer perspectivas únicas e estimular mais combinações inovadoras de "IA+Blockchain" no ecossistema de programadores.
No seu núcleo, a cadeia de blocos é uma cadeia que liga blocos entre si, sendo que a distinção entre cadeias reside principalmente na configuração da cadeia. Esta configuração é uma parte essencial da génese de uma cadeia de blocos, a fase inicial de qualquer cadeia de blocos. No caso do Ethereum, a configuração da cadeia diferencia as várias cadeias Ethereum e identifica os protocolos de atualização importantes e os eventos marcantes. Por exemplo, o DAOForkBlock marca a altura do hard fork que se seguiu ao ataque DAO, enquanto o ConstantinopleBlock indica a altura do bloco em que ocorreu a atualização Constantinople. No caso de grandes reabilitações que englobem várias propostas de melhoramento, são definidos campos especiais para indicar as alturas de bloco correspondentes. Além disso, o Ethereum engloba uma variedade de redes de teste e a rede principal, cada uma identificada exclusivamente por um ChainID, delineando o seu ecossistema de rede.
O bloco genesis, sendo o primeiro bloco de toda a cadeia de blocos, é direta ou indiretamente referenciado por outros blocos. Assim, é crucial que os nós carreguem a informação correcta do bloco de génese no arranque, sem quaisquer alterações. Esta configuração do bloco de génese inclui a configuração da cadeia mencionada anteriormente, juntamente com informações adicionais, como recompensas de mineração, registos de data e hora, dificuldade e limites de gás. Nomeadamente, o Ethereum passou de um mecanismo de consenso de mineração de prova de trabalho para prova de participação.
As contas Ethereum são categorizadas em contas externas e contas de contrato. As contas externas são controladas exclusivamente por uma chave privada, enquanto as contas de contrato, que não possuem chaves privadas, só podem ser operadas através da execução de código de contrato por contas externas. Ambos os tipos de conta possuem um endereço único. O "estado mundial" do Ethereum é uma árvore de contas, com cada conta correspondendo a um nó folha que armazena o estado da conta, incluindo várias informações sobre a conta e o código.
O Ethereum, enquanto plataforma descentralizada, facilita fundamentalmente as transacções e os contratos. O Ethereum bloqueia transacções de pacotes juntamente com algumas informações adicionais. Especificamente, um bloco divide-se num cabeçalho de bloco e num corpo de bloco. O cabeçalho do bloco contém provas que ligam todos os blocos numa cadeia, entendida como o hash do bloco anterior, juntamente com a raiz do estado, a raiz da transação, a raiz do recibo e outros dados como a dificuldade e o nonce, que significam o estado de todo o mundo Ethereum. O corpo do bloco contém uma lista de transacções e uma lista de cabeçalhos de bloco tio (embora, com a mudança do Ethereum para a prova de participação, as referências ao bloco tio tenham cessado).
Os recibos de transação fornecem os resultados e informações adicionais após a execução da transação, oferecendo informações que não podem ser obtidas diretamente a partir das próprias transacções. Estes detalhes incluem o conteúdo do consenso, a informação sobre a transação e a informação sobre o bloco, indicando se a transação foi bem sucedida, juntamente com os registos da transação e as despesas de gás. A análise das informações nos recibos ajuda a depurar o código do contrato inteligente e a otimizar a utilização do gás, servindo como confirmação de que a transação foi processada pela rede e permitindo a análise dos resultados e do impacto da transação.
No Ethereum, as taxas de gás podem ser simplificadas como taxas de transação necessárias para operações como o envio de tokens, a execução de contratos, a transferência de ether ou outras actividades no bloco. Estas operações requerem taxas de gás porque a máquina virtual Ethereum tem de computar e utilizar recursos de rede para processar a transação, exigindo assim o pagamento destes serviços computacionais. Em última análise, o custo do combustível, ou taxa de transação, é pago aos mineiros, calculado pela fórmula Taxa = Gás utilizado * Preço do gás, em que o preço do gás é definido pelo iniciador da transação. O montante influencia em grande medida a velocidade de processamento das transacções na cadeia. Se definir um valor demasiado baixo, pode resultar em transacções não executadas. Além disso, é fundamental definir um limite de gás para evitar consumos de gás imprevistos devido a erros nos contratos.
No Ethereum, existe um grande número de transacções. Em comparação com os sistemas centralizados, a taxa de processamento de transacções por segundo dos sistemas descentralizados é significativamente inferior. Devido ao afluxo de transacções nos nós, os nós precisam de manter um conjunto de transacções para gerir adequadamente essas transacções. A difusão de transacções é feita através de uma rede peer-to-peer (P2P), em que um nó difunde transacções executáveis aos seus nós vizinhos, que por sua vez difundem a transação aos seus vizinhos. Através deste processo, uma transação pode espalhar-se por toda a rede Ethereum em 6 segundos.
As transacções no pool de transacções estão divididas em transacções executáveis e não executáveis. As transacções executáveis têm maior prioridade e são executadas e incluídas em blocos, enquanto todas as transacções recém-entradas na pool são não-executáveis e só mais tarde podem tornar-se executáveis. As transacções executáveis e não executáveis são registadas, respetivamente, nos contentores "pending" e "queue".
Além disso, o pool de transacções mantém uma lista de transacções locais, que têm várias vantagens: têm uma prioridade mais elevada, não são afectadas pelos limites de volume de transacções e podem ser imediatamente recarregadas no pool de transacções após o reinício do nó. O armazenamento de persistência local das transacções locais é conseguido através da utilização de um diário (para recarregar quando o nó é reiniciado), com o objetivo de não perder transacções locais inacabadas, e é atualizado periodicamente.
Antes de serem colocadas em fila de espera, as transacções são submetidas a verificações de legalidade, incluindo vários tipos de verificações, como a prevenção de ataques DOS, transacções negativas e transacções que excedam os limites de gás. A composição básica do pool de transacções pode ser dividida em: fila de espera + pendentes (formando todas as transacções). Depois de passar as verificações de legalidade, são efectuadas outras verificações, incluindo a verificação se a fila de transacções atingiu o seu limite e, em seguida, a determinação se as transacções remotas (ou seja, transacções não locais) são as mais baixas na reserva de transacções para substituir a transação de preço mais baixo. Para substituir transacções executáveis, por defeito, apenas as transacções com uma taxa aumentada em 10% podem substituir transacções à espera de serem executadas e são armazenadas como transacções não executáveis. Além disso, durante a manutenção do pool de transacções, são eliminadas as transacções inválidas e as que ultrapassam os limites, e as transacções elegíveis são substituídas.
A teoria de consenso inicial do Ethereum baseava-se no cálculo do valor de dificuldade do hash, o que significa que o valor de hash de um bloco tinha de ser calculado para atingir o valor de dificuldade pretendido para que o bloco fosse considerado válido. Uma vez que o algoritmo de consenso do Ethereum passou de Proof of Work (POW) para Proof of Stake (POS), a discussão sobre as teorias relacionadas com a exploração mineira é omitida aqui. Segue-se uma breve descrição do algoritmo POS: O Ethereum concluiu a fusão da cadeia Beacon em setembro de 2022, implementando o algoritmo POS. Especificamente, no Ethereum baseado em POS, o tempo de bloqueio é estabilizado em 12 segundos. Os utilizadores apostam o seu Éter para ganhar o direito de se tornarem validadores. Um grupo de validadores é selecionado aleatoriamente entre os que participam na aposta. Em cada ciclo composto por 32 ranhuras, um validador é selecionado como proponente para cada ranhura para criar blocos, enquanto os restantes validadores para essa ranhura actuam como um comité para verificar a legalidade do bloco do proponente e julgar a legalidade dos blocos do ciclo anterior. O algoritmo POS estabiliza e aumenta significativamente a velocidade de produção de blocos, ao mesmo tempo que reduz consideravelmente o desperdício de recursos computacionais.
O Ethereum herda o padrão de algoritmo de assinatura do Bitcoin, adotando também a curva secp256k1. O algoritmo de assinatura específico que utiliza é o ECDSA, o que significa que o cálculo da assinatura se baseia no hash da mensagem original. A composição de toda a assinatura pode ser vista simplesmente como R+S+V. Cada cálculo introduz correspondentemente um número aleatório, em que R+S são os resultados originais do ECDSA. O último campo, V, conhecido como o campo de recuperação, indica o número de pesquisas necessárias para recuperar com êxito a chave pública a partir do conteúdo e da assinatura, porque pode haver vários pontos de coordenadas na curva elíptica que satisfazem os requisitos com base no valor R.
Todo o processo pode ser organizado da seguinte forma: Os dados da transação e as informações relacionadas com o signatário são submetidos a hash após a codificação RLP, e a assinatura final pode ser obtida através da assinatura ECDSA com uma chave privada, em que a curva utilizada na ECDSA é a curva elíptica secp256k1. Por fim, combinando os dados de assinatura com os dados de transação, é possível obter e difundir dados de transação assinados.
A estrutura de dados do Ethereum não se baseia apenas na tecnologia blockchain tradicional, mas também introduz a árvore Merkle Patricia, também conhecida como Merkle Trie, para armazenar e verificar eficientemente grandes quantidades de dados. O MPT combina a função de hash criptográfico de uma árvore Merkle com a caraterística de compressão do caminho da chave de uma árvore Patricia, fornecendo uma solução que garante a integridade dos dados e suporta uma pesquisa rápida.
No Ethereum, o MPT é utilizado para armazenar todos os dados de estado e de transação, garantindo que qualquer alteração nos dados se reflecte no hash raiz da árvore. Isto significa que, ao verificar o hash raiz, a integridade e a exatidão dos dados podem ser comprovadas sem inspecionar toda a base de dados. O MPT é composto por quatro tipos de nós: nós folha, nós extensão, nós ramo e nós nulo, que em conjunto formam uma árvore capaz de se adaptar às alterações dinâmicas dos dados. Com cada atualização de dados, o MPT reflecte estas alterações adicionando, eliminando ou modificando nós e actualizando o hash de raiz da árvore. Uma vez que cada nó é encriptado através de uma função hash, quaisquer pequenas alterações nos dados resultarão numa alteração significativa no hash da raiz, garantindo assim a segurança e a consistência dos dados. Além disso, a conceção do MPT suporta a verificação "light client", permitindo que os nós verifiquem a existência ou o estado de informações específicas armazenando apenas o hash da raiz da árvore e os nós de caminho necessários, reduzindo significativamente os requisitos de armazenamento e processamento de dados.
Através do MPT, o Ethereum não só consegue uma gestão eficiente e um acesso rápido aos dados, como também garante a segurança e a descentralização da rede, apoiando o funcionamento e o desenvolvimento de toda a rede Ethereum.
A arquitetura central do Ethereum integra o conceito de máquina de estado, em que a Máquina Virtual Ethereum (EVM) serve como ambiente de tempo de execução para executar todo o código de contrato inteligente, e o próprio Ethereum pode ser visto como um sistema de transição de estado globalmente partilhado. A execução de cada bloco pode ser vista como um processo de transição de estado, passando de um estado globalmente partilhado para outro. Esta conceção não só garante a consistência e a descentralização da rede Ethereum, como também torna os resultados da execução de contratos inteligentes previsíveis e à prova de adulteração.
No Ethereum, o estado refere-se à informação atual de todas as contas, incluindo o saldo de cada conta, os dados armazenados e o código do contrato inteligente. Sempre que ocorre uma transação, o EVM calcula e faz a transição do estado com base no conteúdo da transação, um processo registado de forma eficiente e segura através da árvore Merkle Patricia (MPT). Cada transição de estado não só altera os dados da conta, como também conduz a uma atualização do MPT, reflectida na alteração do valor de hash da raiz da árvore.
A relação entre o EVM e o MPT é crucial porque o MPT garante a integridade dos dados para as transições de estado do Ethereum. Quando o EVM executa transacções e altera os estados da conta, os nós MPT relacionados são actualizados para refletir essas alterações. Uma vez que cada nó no MPT está ligado por hashes, qualquer modificação no estado causará uma alteração no hash raiz, que é então incluído num novo bloco, garantindo a consistência e a segurança de todo o estado Ethereum. De seguida, apresentamos-lhe a máquina virtual EVM.
A máquina virtual EVM é fundamental para a construção do Ethereum, permitindo a execução de contratos inteligentes e transições de estado. Graças ao EVM, o Ethereum pode ser verdadeiramente imaginado como um computador mundial. O EVM é Turing-completo, o que significa que os contratos inteligentes no Ethereum podem efetuar cálculos lógicos arbitrariamente complexos, enquanto a introdução do mecanismo de gás previne com sucesso loops infinitos nos contratos, garantindo a estabilidade e a segurança da rede. De uma perspetiva técnica mais profunda, a EVM é uma máquina virtual baseada em pilha que executa contratos inteligentes usando bytecode específico do Ethereum. Os programadores utilizam normalmente linguagens de alto nível, como o Solidity, para escrever contratos inteligentes, que são depois compilados em bytecode compreensível pelo EVM para execução. O EVM é fundamental para a capacidade de inovação da cadeia de blocos da Ethereum, não só apoiando o funcionamento de contratos inteligentes, mas também fornecendo uma base sólida para o desenvolvimento de aplicações descentralizadas. Através do EVM, a Ethereum está a moldar um futuro digital descentralizado, seguro e aberto.
Figura 1 Análise histórica do Ethereum
Os contratos inteligentes são programas de computador que são executados na cadeia de blocos Ethereum. Permitem aos programadores criar e implementar várias aplicações, incluindo, mas não se limitando a, aplicações de empréstimo, trocas descentralizadas, seguros, financiamento secundário, redes sociais e NFTs. A segurança dos contratos inteligentes é crucial para estas aplicações, uma vez que manipulam e controlam diretamente as criptomoedas. Qualquer vulnerabilidade nos contratos inteligentes ou ataques maliciosos podem constituir ameaças directas à segurança dos fundos, podendo levar a perdas financeiras significativas. Por exemplo, em 26 de fevereiro de 2024, o protocolo de empréstimo DeFi Blueberry Protocol foi atacado devido a uma falha na lógica do contrato inteligente, resultando numa perda de aproximadamente 1 400 000 dólares.
As vulnerabilidades dos contratos inteligentes são multifacetadas, abrangendo uma lógica comercial pouco razoável, um controlo de acesso inadequado, uma validação de dados inadequada, ataques de reentrada e ataques DOS (Denial of Service), entre outros. Estas vulnerabilidades podem levar a problemas na execução do contrato, afectando o funcionamento eficaz dos contratos inteligentes. Por exemplo, os ataques DOS envolvem atacantes que enviam um grande volume de transacções para esgotar os recursos da rede, impedindo que as transacções normais dos utilizadores sejam processadas em tempo útil. Esta degradação da experiência do utilizador pode também levar a um aumento das taxas de gás das transacções, uma vez que os utilizadores podem ter de pagar taxas mais elevadas para dar prioridade às suas transacções numa rede congestionada.
Além disso, os utilizadores do Ethereum também enfrentam riscos de investimento, com a segurança dos fundos ameaçada. Por exemplo, as "shitcoins" são criptomoedas consideradas como tendo pouco ou nenhum valor ou potencial de crescimento a longo prazo. As shitcoins são frequentemente utilizadas como instrumentos de burla ou para esquemas de "pump-and-dump". O risco de investimento associado às shitcoins é elevado, podendo conduzir a perdas financeiras significativas. Devido ao seu baixo preço e capitalização de mercado, são altamente susceptíveis de manipulação e volatilidade. Estas criptomoedas são normalmente utilizadas em esquemas de "pump-and-dump" e "honey pot scams", em que os investidores são atraídos por projectos falsos e depois roubados dos seus fundos. Outro risco comum associado às shitcoins é a "puxada de tapete", em que os criadores retiram subitamente toda a liquidez de um projeto, fazendo com que o valor do token caia a pique. Estas fraudes são frequentemente comercializadas através de falsas parcerias e endossos e, assim que o preço do token aumenta, os burlões vendem os seus tokens, lucram e desaparecem, deixando os investidores com tokens sem valor. Além disso, investir em shitcoins pode desviar a atenção e os recursos de criptomoedas legítimas com aplicações reais e potencial de crescimento.
Para além das shitcoins, as "air coins" e as "pyramid scheme coins" são também métodos para obter lucros rápidos. Para os utilizadores que não possuem conhecimentos e experiência profissionais, distingui-las das criptomoedas legítimas é particularmente difícil.
Dois indicadores muito directos para avaliar a eficiência do Ethereum são a velocidade das transacções e as taxas de gás. A velocidade de transação refere-se ao número de transacções que a rede Ethereum pode processar numa unidade de tempo. Esta métrica reflecte diretamente a capacidade de processamento da rede Ethereum, em que uma velocidade mais rápida indica uma maior eficiência. Cada transação no Ethereum requer um determinado montante de taxas de gás, que compensam os mineiros pela verificação das transacções. Taxas de gás mais baixas indicam maior eficiência no Ethereum.
Uma diminuição da velocidade da transação conduz a um aumento das taxas de gás. Geralmente, quando a velocidade de processamento das transacções diminui, devido ao espaço limitado do bloco, a concorrência entre as transacções para entrar no bloco seguinte pode aumentar. Para se destacarem nesta competição, os comerciantes aumentam frequentemente as taxas de gás, uma vez que os mineiros tendem a dar prioridade às transacções com taxas de gás mais elevadas durante a verificação. Por conseguinte, taxas de gás mais elevadas podem degradar a experiência do utilizador.
As transacções são apenas as actividades básicas do Ethereum. Neste ecossistema, os utilizadores podem também participar em várias actividades, como empréstimos, apostas, investimentos, seguros, etc., que podem ser realizadas através de DApps específicas. No entanto, dada a grande variedade de DApps e a falta de serviços de recomendação personalizados semelhantes aos das indústrias tradicionais, os utilizadores podem achar confuso escolher as aplicações e os produtos certos para si próprios. Esta situação pode levar a uma diminuição da satisfação dos utilizadores, afectando assim a eficiência global do ecossistema Ethereum.
Tome como exemplo o crédito. Algumas plataformas de empréstimos DeFi utilizam um mecanismo de sobrecolateralização para manter a segurança e a estabilidade da sua plataforma. Isto significa que os mutuários têm de apresentar mais activos como garantia, que não podem ser utilizados para outras actividades durante o período do empréstimo. Isto leva a uma diminuição da taxa de utilização de capital dos mutuários, reduzindo assim a liquidez do mercado.
Os modelos de aprendizagem automática, como o modelo RFM, as redes adversariais generativas (GAN), os modelos de árvore de decisão, o algoritmo K-Nearest Neighbors (KNN) e o algoritmo de agrupamento DBSCAN, estão a desempenhar um papel importante no Ethereum. A aplicação destes modelos de aprendizagem automática no Ethereum pode ajudar a otimizar a eficiência do processamento de transacções, aumentar a segurança dos contratos inteligentes, implementar a segmentação de utilizadores para fornecer serviços mais personalizados e contribuir para o funcionamento estável da rede.
Os algoritmos de aprendizagem automática são um conjunto de instruções ou regras utilizadas para analisar dados, aprender padrões dentro dos dados e fazer previsões ou tomar decisões com base nessas aprendizagens. Melhoram automaticamente através da aprendizagem com os dados fornecidos, sem necessidade de programação explícita por parte dos humanos. Os modelos de aprendizagem automática, como o modelo RFM, as redes adversariais generativas (GAN), os modelos de árvore de decisão, o algoritmo K-Nearest Neighbors (KNN) e o algoritmo de agrupamento DBSCAN, estão a desempenhar um papel importante no Ethereum. A aplicação destes modelos de aprendizagem automática no Ethereum pode ajudar a otimizar a eficiência do processamento de transacções, aumentar a segurança dos contratos inteligentes, implementar a segmentação de utilizadores para fornecer serviços mais personalizados e contribuir para o funcionamento estável da rede.
Os classificadores bayesianos estão entre os vários métodos de classificação estatística que têm como objetivo minimizar a probabilidade de erros de classificação ou minimizar o risco médio num quadro de custos específico. A sua filosofia de conceção está profundamente enraizada no teorema Bayesiano, que permite o cálculo da probabilidade de um objeto pertencer a uma determinada classe, dadas algumas características conhecidas. Ao calcular a probabilidade posterior do objeto, são tomadas decisões. Especificamente, os classificadores bayesianos começam por considerar a probabilidade prévia do objeto e depois aplicam a fórmula bayesiana para ter em conta os dados observados, actualizando assim a crença sobre a classificação do objeto. Entre todas as classificações possíveis, os classificadores Bayesianos escolhem a categoria com a maior probabilidade posterior para o objeto. A principal vantagem deste método reside na sua capacidade natural de lidar com a incerteza e a informação incompleta, tornando-o uma ferramenta poderosa e flexível adequada a uma vasta gama de aplicações.
Como ilustrado na Figura 2, na aprendizagem automática supervisionada, as decisões de classificação são tomadas utilizando dados e modelos de probabilidade baseados no teorema Bayesiano. Utilizando a verosimilhança, as probabilidades prévias de categorias e características, os classificadores bayesianos calculam as probabilidades posteriores de cada categoria para os pontos de dados e atribuem os pontos de dados à categoria com a probabilidade posterior mais elevada. No gráfico de dispersão à direita, o classificador tenta encontrar uma curva que melhor separe os pontos de cores diferentes, minimizando assim os erros de classificação.
Figura 2 Classificador Bayesiano
Os algoritmos de árvores de decisão são normalmente utilizados para tarefas de classificação e regressão, adoptando uma abordagem hierárquica de tomada de decisões. Geram árvores através da divisão de características com elevado ganho de informação com base em dados conhecidos, treinando assim uma árvore de decisão. Essencialmente, o algoritmo pode auto-aprender uma regra de decisão a partir dos dados para determinar os valores das variáveis. Especificamente, simplifica processos complexos de tomada de decisão em várias sub-decisões mais simples. Cada decisão mais simples é derivada de um critério de decisão pai, formando uma estrutura em forma de árvore.
Como mostra a Figura 3, cada nó representa uma decisão, definindo um critério para julgar um determinado atributo, enquanto os ramos representam os resultados da decisão. Cada nó folha representa o resultado final previsto e a categoria. Do ponto de vista estrutural, o modelo de árvore de decisão é intuitivo, fácil de compreender e tem um forte poder explicativo.
imagem 3 Modelo de árvore de decisão
O DBSCAN (Density-Based Spatial Clustering of Applications with Noise) é um algoritmo de agrupamento espacial baseado na densidade que é particularmente eficaz para conjuntos de dados com ruído e para identificar agrupamentos de qualquer forma sem necessidade de especificar previamente o número de agrupamentos. Tem um desempenho robusto face a valores atípicos no conjunto de dados. O algoritmo pode identificar eficazmente os outliers, definidos como pontos em áreas de baixa densidade, como ilustrado na Figura 4.
Figura 4 Identificação do ruído com o algoritmo DBSCAN
O algoritmo K-Nearest Neighbors (KNN) pode ser utilizado tanto para tarefas de classificação como de regressão. Na classificação, a categoria de um item a classificar é determinada através de um mecanismo de votação; na regressão, faz a previsão calculando a média ou a média ponderada das k amostras mais próximas.
Como se mostra na Figura 5, o princípio de funcionamento do algoritmo KNN na classificação consiste em encontrar os k vizinhos mais próximos de um novo ponto de dados e prever a categoria do novo ponto de dados com base nas categorias desses vizinhos. Se K=1, o novo ponto de dados é simplesmente atribuído à categoria do seu vizinho mais próximo. Se K>1, a categoria é normalmente determinada por uma votação maioritária, o que significa que o novo ponto de dados é atribuído à categoria mais comum entre os seus vizinhos. Quando utilizado em regressão, o princípio permanece o mesmo, mas o resultado é a média dos resultados das k amostras mais próximas.
Figura 5 Algoritmo KNN utilizado para a classificação
A inteligência artificial (IA) generativa é um tipo de tecnologia de IA que pode gerar novos conteúdos (como texto, imagens, música, etc.) com base em requisitos de entrada. A sua base reside nos avanços da aprendizagem automática e da aprendizagem profunda, nomeadamente em aplicações nos domínios do processamento da linguagem natural e do reconhecimento de imagens. A IA generativa aprende padrões e associações a partir de uma vasta quantidade de dados e, em seguida, gera resultados inteiramente novos com base nessas informações aprendidas. A chave para a inteligência artificial generativa reside na formação de modelos, que requer dados de elevada qualidade para a aprendizagem e o treino. Durante este processo, o modelo melhora gradualmente a sua capacidade de gerar novos conteúdos, analisando e compreendendo a estrutura, os padrões e as relações dentro do conjunto de dados.
O Transformer, enquanto pedra angular da inteligência artificial generativa, introduziu o mecanismo de atenção de uma forma inovadora. Isto permite que o processamento de informações se concentre em pontos-chave e, ao mesmo tempo, tenha uma visão global, uma capacidade única que fez com que o Transformer brilhasse no domínio da geração de texto. A utilização dos mais recentes modelos de linguagem natural, como o GPT (Generative Pre-trained Transformer), para compreender os requisitos do utilizador expressos em linguagem natural e convertê-los automaticamente em código executável pode reduzir a complexidade do desenvolvimento e melhorar significativamente a eficiência.
Como mostra a Figura 6, a introdução do mecanismo de atenção multi-cabeças e do mecanismo de auto-atenção, combinados com ligações residuais e redes neuronais totalmente ligadas, e tirando partido de tecnologias anteriores de incorporação de palavras, elevou consideravelmente o desempenho dos modelos generativos relacionados com o processamento da linguagem natural.
Figura 6 Modelo de transformador
O modelo RFM é um modelo de análise baseado no comportamento de compra do cliente, que pode identificar diferentes grupos de clientes de valor através da análise do seu comportamento de transação. Este modelo classifica e categoriza os clientes com base no momento da compra mais recente (Recência, R), na frequência das compras (Frequência, F) e no montante gasto (Valor monetário, M).
Como ilustrado na Figura 7, estes três indicadores constituem o núcleo do modelo RFM. O modelo classifica os clientes nestas três dimensões e ordena-os com base nas classificações para identificar os grupos de clientes mais valiosos. Além disso, este modelo segmenta efetivamente os clientes em diferentes grupos, facilitando a funcionalidade de estratificação dos clientes.
Figura 7 Modelo de camadas do RFM
Quando aplicámos a tecnologia de aprendizagem automática para enfrentar os desafios de segurança do Ethereum, realizámos uma investigação a partir de quatro aspectos principais:
Aplicações potenciais
Ao abordar os desafios de segurança do Ethereum através de técnicas de aprendizagem automática, realizámos investigação em quatro aspectos principais:
Identificação e filtragem de transacções maliciosas com base num classificador Bayesiano**
Através da construção de um classificador Bayesiano, podem ser identificadas e filtradas potenciais transacções de spam, incluindo, mas não se limitando às que causam ataques DOS através de grandes volumes de transacções pequenas e frequentes. Este método mantém eficazmente a saúde da rede, analisando as características das transacções, tais como os preços do gás e a frequência das transacções, assegurando assim o funcionamento estável da rede Ethereum.
Geração de código de contrato inteligente seguro e que satisfaz requisitos específicos**
As redes adversariais generativas (GAN) e as redes generativas baseadas em transformadores podem ser utilizadas para gerar código de contrato inteligente que cumpra requisitos específicos, garantindo simultaneamente a segurança do código tanto quanto possível. No entanto, estas duas abordagens diferem nos tipos de dados em que se baseiam para a formação de modelos: a primeira depende principalmente de amostras de código inseguro, enquanto a segunda se baseia no oposto.
Ao treinar GANs para aprender padrões de contratos seguros existentes e construir modelos auto-adversários para gerar código potencialmente inseguro, e depois aprender a identificar essas inseguranças, é possível gerar automaticamente código de contrato inteligente de alta qualidade e mais seguro. Utilizando modelos de rede generativa baseados no Transformer, ao aprender com uma vasta gama de exemplos de contratos seguros, é possível gerar códigos de contrato que satisfazem necessidades específicas e optimizam o consumo de gás, melhorando sem dúvida a eficiência e a segurança do desenvolvimento de contratos inteligentes.
Análise de risco de contratos inteligentes baseada em árvores de decisão**
A utilização de árvores de decisão para analisar as características dos contratos inteligentes, como a frequência de chamadas de funções, o valor da transação e a complexidade do código-fonte, pode identificar eficazmente os potenciais níveis de risco dos contratos. A análise dos padrões operacionais e da estrutura do código dos contratos pode prever possíveis vulnerabilidades e pontos de risco, proporcionando aos criadores e utilizadores uma avaliação da segurança. Espera-se que este método melhore significativamente a segurança dos contratos inteligentes no ecossistema Ethereum, reduzindo assim as perdas causadas por vulnerabilidades ou código malicioso.
Construir um modelo de avaliação de criptomoedas para reduzir os riscos de investimento**
Ao analisar os dados de negociação, a atividade nas redes sociais e o desempenho de mercado das criptomoedas através de algoritmos de aprendizagem automática, é possível construir um modelo de avaliação que pode prever a probabilidade de uma criptomoeda ser uma "moeda lixo". Este modelo pode oferecer informações valiosas aos investidores, ajudando-os a evitar riscos de investimento e promovendo assim o desenvolvimento saudável do mercado das criptomoedas.
Além disso, a aplicação da aprendizagem automática também tem o potencial de aumentar ainda mais a eficiência do Ethereum. Podemos explorá-lo a partir das três dimensões-chave seguintes:
A aplicação de árvores de decisão na otimização do modelo de fila de espera do pool de transacções
A utilização de árvores de decisão pode otimizar eficazmente o mecanismo de enfileiramento do conjunto de transacções Ethereum. Ao analisar as características da transação, como os preços do gás e a dimensão da transação, as árvores de decisão podem otimizar a seleção e a ordenação das transacções. Este método pode melhorar significativamente a eficiência do processamento das transacções, reduzir eficazmente o congestionamento da rede e diminuir o tempo de espera dos utilizadores pelas transacções.
O modelo RFM (Recency, Frequency, Monetary value), uma ferramenta amplamente utilizada na gestão da relação com o cliente, pode segmentar eficazmente os utilizadores através da avaliação do tempo da sua transação mais recente (Recency), da frequência da transação (Frequency) e do montante da transação (Monetary value). A aplicação do modelo RFM na plataforma Ethereum pode ajudar a identificar grupos de utilizadores de elevado valor, otimizar a atribuição de recursos e fornecer serviços mais personalizados, aumentando assim a satisfação do utilizador e a eficiência global da plataforma. O modelo RFM (Recency, Frequency, Monetary value), uma ferramenta amplamente utilizada na gestão da relação com o cliente, pode segmentar eficazmente os utilizadores, avaliando o tempo da sua transação mais recente (Recency), a frequência da transação (Frequency) e o montante da transação (Monetary value). A aplicação do modelo RFM na plataforma Ethereum pode ajudar a identificar grupos de utilizadores de elevado valor, otimizar a atribuição de recursos e fornecer serviços mais personalizados, aumentando assim a satisfação dos utilizadores e a eficiência global da plataforma.
O algoritmo DBSCAN também pode analisar o comportamento de transação dos utilizadores, ajudando a identificar diferentes grupos de utilizadores no Ethereum e a fornecer serviços financeiros mais personalizados a diferentes utilizadores. Esta estratégia de segmentação dos utilizadores pode otimizar as estratégias de marketing, aumentar a satisfação dos clientes e a eficiência dos serviços.
O algoritmo K-Nearest Neighbors (KNN) pode pontuar o crédito dos utilizadores analisando o seu histórico de transacções e padrões de comportamento no Ethereum, que desempenha um papel extremamente importante em actividades financeiras como os empréstimos. A pontuação de crédito ajuda as instituições financeiras e as plataformas de empréstimo a avaliar as capacidades de reembolso e o risco de crédito dos mutuários, tomando decisões de empréstimo mais precisas. Isto pode evitar a contração excessiva de empréstimos e melhorar a liquidez do mercado.
Do ponto de vista da macro-alocação de capital, o Ethereum, como o maior computador distribuído do mundo, nunca pode ser investido em excesso na camada infra, precisando atrair mais desenvolvedores de diversas origens para participar da co-construção. Neste artigo, ao analisarmos a implementação técnica do Ethereum e os problemas que enfrenta, prevemos uma série de aplicações intuitivas da aprendizagem automática e esperamos que os criadores de IA da comunidade transformem estas visões em valor real.
À medida que o poder de computação na cadeia aumenta gradualmente, podemos prever o desenvolvimento de modelos mais complexos para a gestão da rede, monitorização de transacções, auditoria de segurança, etc., melhorando a eficiência e a segurança da rede Ethereum.
Além disso, os mecanismos de governação baseados em IA/agentes podem também tornar-se uma inovação significativa no ecossistema Ethereum. Este mecanismo, que permite processos de tomada de decisão mais eficientes, transparentes e automatizados, poderá dotar o Ethereum de uma estrutura de governação mais flexível e fiável. Estes desenvolvimentos futuros não só promoverão a inovação na tecnologia Ethereum, como também proporcionarão aos utilizadores uma experiência de maior qualidade na cadeia.
Reencaminhe o título original:另一个角度看「AI+Blockchain」:AI 如何革新以太坊?
Ao longo do ano passado, à medida que a IA generativa foi quebrando repetidamente as expectativas do público, a onda da revolução da produtividade da IA varreu a comunidade das criptomoedas. Vimos muitos projectos com a temática da IA no mercado secundário criarem lendas de riqueza e, cada vez mais, os criadores começaram a desenvolver os seus próprios projectos "IA+Crypto". No entanto, após uma análise mais atenta, é evidente que estes projectos são altamente homogeneizados e a maioria apenas visa melhorar as "relações de produção", como a organização do poder de computação através de redes descentralizadas ou a criação de "Caras de Abraço descentralizadas". Poucos projectos tentam integrar e inovar verdadeiramente no núcleo técnico. Acreditamos que isto se deve a um "preconceito de domínio" entre os domínios da IA e da cadeia de blocos. Apesar da sua ampla intersecção, poucos têm um conhecimento profundo de ambas as áreas. Por exemplo, os programadores de IA podem ter dificuldade em compreender as implementações técnicas e a infraestrutura histórica do Ethereum, o que torna mais difícil propor soluções de otimização aprofundadas.
Tomando como exemplo a aprendizagem automática (ML), o ramo mais básico da IA, é uma tecnologia que permite às máquinas tomar decisões através de dados sem instruções explícitas de programação. A aprendizagem automática tem demonstrado um enorme potencial na análise de dados e no reconhecimento de padrões, tendo-se tornado comum na web2. No entanto, devido às limitações da era no seu início, mesmo na vanguarda da inovação tecnológica da cadeia de blocos, como a Ethereum, a sua arquitetura, rede e mecanismos de governação ainda não conseguiram tirar partido da aprendizagem automática como uma ferramenta eficaz para resolver problemas complexos.
"As grandes inovações surgem frequentemente na intersecção de campos." A nossa principal intenção ao escrever este artigo é ajudar os programadores de IA a compreender melhor o mundo da cadeia de blocos e, ao mesmo tempo, fornecer novas ideias aos programadores da comunidade Ethereum. Neste artigo, começamos por apresentar a implementação técnica do Ethereum e, em seguida, propomos a aplicação da aprendizagem automática, um algoritmo de IA fundamental, à rede Ethereum para melhorar a sua segurança, eficiência e escalabilidade. Esperamos que este caso sirva como ponto de partida para oferecer perspectivas únicas e estimular mais combinações inovadoras de "IA+Blockchain" no ecossistema de programadores.
No seu núcleo, a cadeia de blocos é uma cadeia que liga blocos entre si, sendo que a distinção entre cadeias reside principalmente na configuração da cadeia. Esta configuração é uma parte essencial da génese de uma cadeia de blocos, a fase inicial de qualquer cadeia de blocos. No caso do Ethereum, a configuração da cadeia diferencia as várias cadeias Ethereum e identifica os protocolos de atualização importantes e os eventos marcantes. Por exemplo, o DAOForkBlock marca a altura do hard fork que se seguiu ao ataque DAO, enquanto o ConstantinopleBlock indica a altura do bloco em que ocorreu a atualização Constantinople. No caso de grandes reabilitações que englobem várias propostas de melhoramento, são definidos campos especiais para indicar as alturas de bloco correspondentes. Além disso, o Ethereum engloba uma variedade de redes de teste e a rede principal, cada uma identificada exclusivamente por um ChainID, delineando o seu ecossistema de rede.
O bloco genesis, sendo o primeiro bloco de toda a cadeia de blocos, é direta ou indiretamente referenciado por outros blocos. Assim, é crucial que os nós carreguem a informação correcta do bloco de génese no arranque, sem quaisquer alterações. Esta configuração do bloco de génese inclui a configuração da cadeia mencionada anteriormente, juntamente com informações adicionais, como recompensas de mineração, registos de data e hora, dificuldade e limites de gás. Nomeadamente, o Ethereum passou de um mecanismo de consenso de mineração de prova de trabalho para prova de participação.
As contas Ethereum são categorizadas em contas externas e contas de contrato. As contas externas são controladas exclusivamente por uma chave privada, enquanto as contas de contrato, que não possuem chaves privadas, só podem ser operadas através da execução de código de contrato por contas externas. Ambos os tipos de conta possuem um endereço único. O "estado mundial" do Ethereum é uma árvore de contas, com cada conta correspondendo a um nó folha que armazena o estado da conta, incluindo várias informações sobre a conta e o código.
O Ethereum, enquanto plataforma descentralizada, facilita fundamentalmente as transacções e os contratos. O Ethereum bloqueia transacções de pacotes juntamente com algumas informações adicionais. Especificamente, um bloco divide-se num cabeçalho de bloco e num corpo de bloco. O cabeçalho do bloco contém provas que ligam todos os blocos numa cadeia, entendida como o hash do bloco anterior, juntamente com a raiz do estado, a raiz da transação, a raiz do recibo e outros dados como a dificuldade e o nonce, que significam o estado de todo o mundo Ethereum. O corpo do bloco contém uma lista de transacções e uma lista de cabeçalhos de bloco tio (embora, com a mudança do Ethereum para a prova de participação, as referências ao bloco tio tenham cessado).
Os recibos de transação fornecem os resultados e informações adicionais após a execução da transação, oferecendo informações que não podem ser obtidas diretamente a partir das próprias transacções. Estes detalhes incluem o conteúdo do consenso, a informação sobre a transação e a informação sobre o bloco, indicando se a transação foi bem sucedida, juntamente com os registos da transação e as despesas de gás. A análise das informações nos recibos ajuda a depurar o código do contrato inteligente e a otimizar a utilização do gás, servindo como confirmação de que a transação foi processada pela rede e permitindo a análise dos resultados e do impacto da transação.
No Ethereum, as taxas de gás podem ser simplificadas como taxas de transação necessárias para operações como o envio de tokens, a execução de contratos, a transferência de ether ou outras actividades no bloco. Estas operações requerem taxas de gás porque a máquina virtual Ethereum tem de computar e utilizar recursos de rede para processar a transação, exigindo assim o pagamento destes serviços computacionais. Em última análise, o custo do combustível, ou taxa de transação, é pago aos mineiros, calculado pela fórmula Taxa = Gás utilizado * Preço do gás, em que o preço do gás é definido pelo iniciador da transação. O montante influencia em grande medida a velocidade de processamento das transacções na cadeia. Se definir um valor demasiado baixo, pode resultar em transacções não executadas. Além disso, é fundamental definir um limite de gás para evitar consumos de gás imprevistos devido a erros nos contratos.
No Ethereum, existe um grande número de transacções. Em comparação com os sistemas centralizados, a taxa de processamento de transacções por segundo dos sistemas descentralizados é significativamente inferior. Devido ao afluxo de transacções nos nós, os nós precisam de manter um conjunto de transacções para gerir adequadamente essas transacções. A difusão de transacções é feita através de uma rede peer-to-peer (P2P), em que um nó difunde transacções executáveis aos seus nós vizinhos, que por sua vez difundem a transação aos seus vizinhos. Através deste processo, uma transação pode espalhar-se por toda a rede Ethereum em 6 segundos.
As transacções no pool de transacções estão divididas em transacções executáveis e não executáveis. As transacções executáveis têm maior prioridade e são executadas e incluídas em blocos, enquanto todas as transacções recém-entradas na pool são não-executáveis e só mais tarde podem tornar-se executáveis. As transacções executáveis e não executáveis são registadas, respetivamente, nos contentores "pending" e "queue".
Além disso, o pool de transacções mantém uma lista de transacções locais, que têm várias vantagens: têm uma prioridade mais elevada, não são afectadas pelos limites de volume de transacções e podem ser imediatamente recarregadas no pool de transacções após o reinício do nó. O armazenamento de persistência local das transacções locais é conseguido através da utilização de um diário (para recarregar quando o nó é reiniciado), com o objetivo de não perder transacções locais inacabadas, e é atualizado periodicamente.
Antes de serem colocadas em fila de espera, as transacções são submetidas a verificações de legalidade, incluindo vários tipos de verificações, como a prevenção de ataques DOS, transacções negativas e transacções que excedam os limites de gás. A composição básica do pool de transacções pode ser dividida em: fila de espera + pendentes (formando todas as transacções). Depois de passar as verificações de legalidade, são efectuadas outras verificações, incluindo a verificação se a fila de transacções atingiu o seu limite e, em seguida, a determinação se as transacções remotas (ou seja, transacções não locais) são as mais baixas na reserva de transacções para substituir a transação de preço mais baixo. Para substituir transacções executáveis, por defeito, apenas as transacções com uma taxa aumentada em 10% podem substituir transacções à espera de serem executadas e são armazenadas como transacções não executáveis. Além disso, durante a manutenção do pool de transacções, são eliminadas as transacções inválidas e as que ultrapassam os limites, e as transacções elegíveis são substituídas.
A teoria de consenso inicial do Ethereum baseava-se no cálculo do valor de dificuldade do hash, o que significa que o valor de hash de um bloco tinha de ser calculado para atingir o valor de dificuldade pretendido para que o bloco fosse considerado válido. Uma vez que o algoritmo de consenso do Ethereum passou de Proof of Work (POW) para Proof of Stake (POS), a discussão sobre as teorias relacionadas com a exploração mineira é omitida aqui. Segue-se uma breve descrição do algoritmo POS: O Ethereum concluiu a fusão da cadeia Beacon em setembro de 2022, implementando o algoritmo POS. Especificamente, no Ethereum baseado em POS, o tempo de bloqueio é estabilizado em 12 segundos. Os utilizadores apostam o seu Éter para ganhar o direito de se tornarem validadores. Um grupo de validadores é selecionado aleatoriamente entre os que participam na aposta. Em cada ciclo composto por 32 ranhuras, um validador é selecionado como proponente para cada ranhura para criar blocos, enquanto os restantes validadores para essa ranhura actuam como um comité para verificar a legalidade do bloco do proponente e julgar a legalidade dos blocos do ciclo anterior. O algoritmo POS estabiliza e aumenta significativamente a velocidade de produção de blocos, ao mesmo tempo que reduz consideravelmente o desperdício de recursos computacionais.
O Ethereum herda o padrão de algoritmo de assinatura do Bitcoin, adotando também a curva secp256k1. O algoritmo de assinatura específico que utiliza é o ECDSA, o que significa que o cálculo da assinatura se baseia no hash da mensagem original. A composição de toda a assinatura pode ser vista simplesmente como R+S+V. Cada cálculo introduz correspondentemente um número aleatório, em que R+S são os resultados originais do ECDSA. O último campo, V, conhecido como o campo de recuperação, indica o número de pesquisas necessárias para recuperar com êxito a chave pública a partir do conteúdo e da assinatura, porque pode haver vários pontos de coordenadas na curva elíptica que satisfazem os requisitos com base no valor R.
Todo o processo pode ser organizado da seguinte forma: Os dados da transação e as informações relacionadas com o signatário são submetidos a hash após a codificação RLP, e a assinatura final pode ser obtida através da assinatura ECDSA com uma chave privada, em que a curva utilizada na ECDSA é a curva elíptica secp256k1. Por fim, combinando os dados de assinatura com os dados de transação, é possível obter e difundir dados de transação assinados.
A estrutura de dados do Ethereum não se baseia apenas na tecnologia blockchain tradicional, mas também introduz a árvore Merkle Patricia, também conhecida como Merkle Trie, para armazenar e verificar eficientemente grandes quantidades de dados. O MPT combina a função de hash criptográfico de uma árvore Merkle com a caraterística de compressão do caminho da chave de uma árvore Patricia, fornecendo uma solução que garante a integridade dos dados e suporta uma pesquisa rápida.
No Ethereum, o MPT é utilizado para armazenar todos os dados de estado e de transação, garantindo que qualquer alteração nos dados se reflecte no hash raiz da árvore. Isto significa que, ao verificar o hash raiz, a integridade e a exatidão dos dados podem ser comprovadas sem inspecionar toda a base de dados. O MPT é composto por quatro tipos de nós: nós folha, nós extensão, nós ramo e nós nulo, que em conjunto formam uma árvore capaz de se adaptar às alterações dinâmicas dos dados. Com cada atualização de dados, o MPT reflecte estas alterações adicionando, eliminando ou modificando nós e actualizando o hash de raiz da árvore. Uma vez que cada nó é encriptado através de uma função hash, quaisquer pequenas alterações nos dados resultarão numa alteração significativa no hash da raiz, garantindo assim a segurança e a consistência dos dados. Além disso, a conceção do MPT suporta a verificação "light client", permitindo que os nós verifiquem a existência ou o estado de informações específicas armazenando apenas o hash da raiz da árvore e os nós de caminho necessários, reduzindo significativamente os requisitos de armazenamento e processamento de dados.
Através do MPT, o Ethereum não só consegue uma gestão eficiente e um acesso rápido aos dados, como também garante a segurança e a descentralização da rede, apoiando o funcionamento e o desenvolvimento de toda a rede Ethereum.
A arquitetura central do Ethereum integra o conceito de máquina de estado, em que a Máquina Virtual Ethereum (EVM) serve como ambiente de tempo de execução para executar todo o código de contrato inteligente, e o próprio Ethereum pode ser visto como um sistema de transição de estado globalmente partilhado. A execução de cada bloco pode ser vista como um processo de transição de estado, passando de um estado globalmente partilhado para outro. Esta conceção não só garante a consistência e a descentralização da rede Ethereum, como também torna os resultados da execução de contratos inteligentes previsíveis e à prova de adulteração.
No Ethereum, o estado refere-se à informação atual de todas as contas, incluindo o saldo de cada conta, os dados armazenados e o código do contrato inteligente. Sempre que ocorre uma transação, o EVM calcula e faz a transição do estado com base no conteúdo da transação, um processo registado de forma eficiente e segura através da árvore Merkle Patricia (MPT). Cada transição de estado não só altera os dados da conta, como também conduz a uma atualização do MPT, reflectida na alteração do valor de hash da raiz da árvore.
A relação entre o EVM e o MPT é crucial porque o MPT garante a integridade dos dados para as transições de estado do Ethereum. Quando o EVM executa transacções e altera os estados da conta, os nós MPT relacionados são actualizados para refletir essas alterações. Uma vez que cada nó no MPT está ligado por hashes, qualquer modificação no estado causará uma alteração no hash raiz, que é então incluído num novo bloco, garantindo a consistência e a segurança de todo o estado Ethereum. De seguida, apresentamos-lhe a máquina virtual EVM.
A máquina virtual EVM é fundamental para a construção do Ethereum, permitindo a execução de contratos inteligentes e transições de estado. Graças ao EVM, o Ethereum pode ser verdadeiramente imaginado como um computador mundial. O EVM é Turing-completo, o que significa que os contratos inteligentes no Ethereum podem efetuar cálculos lógicos arbitrariamente complexos, enquanto a introdução do mecanismo de gás previne com sucesso loops infinitos nos contratos, garantindo a estabilidade e a segurança da rede. De uma perspetiva técnica mais profunda, a EVM é uma máquina virtual baseada em pilha que executa contratos inteligentes usando bytecode específico do Ethereum. Os programadores utilizam normalmente linguagens de alto nível, como o Solidity, para escrever contratos inteligentes, que são depois compilados em bytecode compreensível pelo EVM para execução. O EVM é fundamental para a capacidade de inovação da cadeia de blocos da Ethereum, não só apoiando o funcionamento de contratos inteligentes, mas também fornecendo uma base sólida para o desenvolvimento de aplicações descentralizadas. Através do EVM, a Ethereum está a moldar um futuro digital descentralizado, seguro e aberto.
Figura 1 Análise histórica do Ethereum
Os contratos inteligentes são programas de computador que são executados na cadeia de blocos Ethereum. Permitem aos programadores criar e implementar várias aplicações, incluindo, mas não se limitando a, aplicações de empréstimo, trocas descentralizadas, seguros, financiamento secundário, redes sociais e NFTs. A segurança dos contratos inteligentes é crucial para estas aplicações, uma vez que manipulam e controlam diretamente as criptomoedas. Qualquer vulnerabilidade nos contratos inteligentes ou ataques maliciosos podem constituir ameaças directas à segurança dos fundos, podendo levar a perdas financeiras significativas. Por exemplo, em 26 de fevereiro de 2024, o protocolo de empréstimo DeFi Blueberry Protocol foi atacado devido a uma falha na lógica do contrato inteligente, resultando numa perda de aproximadamente 1 400 000 dólares.
As vulnerabilidades dos contratos inteligentes são multifacetadas, abrangendo uma lógica comercial pouco razoável, um controlo de acesso inadequado, uma validação de dados inadequada, ataques de reentrada e ataques DOS (Denial of Service), entre outros. Estas vulnerabilidades podem levar a problemas na execução do contrato, afectando o funcionamento eficaz dos contratos inteligentes. Por exemplo, os ataques DOS envolvem atacantes que enviam um grande volume de transacções para esgotar os recursos da rede, impedindo que as transacções normais dos utilizadores sejam processadas em tempo útil. Esta degradação da experiência do utilizador pode também levar a um aumento das taxas de gás das transacções, uma vez que os utilizadores podem ter de pagar taxas mais elevadas para dar prioridade às suas transacções numa rede congestionada.
Além disso, os utilizadores do Ethereum também enfrentam riscos de investimento, com a segurança dos fundos ameaçada. Por exemplo, as "shitcoins" são criptomoedas consideradas como tendo pouco ou nenhum valor ou potencial de crescimento a longo prazo. As shitcoins são frequentemente utilizadas como instrumentos de burla ou para esquemas de "pump-and-dump". O risco de investimento associado às shitcoins é elevado, podendo conduzir a perdas financeiras significativas. Devido ao seu baixo preço e capitalização de mercado, são altamente susceptíveis de manipulação e volatilidade. Estas criptomoedas são normalmente utilizadas em esquemas de "pump-and-dump" e "honey pot scams", em que os investidores são atraídos por projectos falsos e depois roubados dos seus fundos. Outro risco comum associado às shitcoins é a "puxada de tapete", em que os criadores retiram subitamente toda a liquidez de um projeto, fazendo com que o valor do token caia a pique. Estas fraudes são frequentemente comercializadas através de falsas parcerias e endossos e, assim que o preço do token aumenta, os burlões vendem os seus tokens, lucram e desaparecem, deixando os investidores com tokens sem valor. Além disso, investir em shitcoins pode desviar a atenção e os recursos de criptomoedas legítimas com aplicações reais e potencial de crescimento.
Para além das shitcoins, as "air coins" e as "pyramid scheme coins" são também métodos para obter lucros rápidos. Para os utilizadores que não possuem conhecimentos e experiência profissionais, distingui-las das criptomoedas legítimas é particularmente difícil.
Dois indicadores muito directos para avaliar a eficiência do Ethereum são a velocidade das transacções e as taxas de gás. A velocidade de transação refere-se ao número de transacções que a rede Ethereum pode processar numa unidade de tempo. Esta métrica reflecte diretamente a capacidade de processamento da rede Ethereum, em que uma velocidade mais rápida indica uma maior eficiência. Cada transação no Ethereum requer um determinado montante de taxas de gás, que compensam os mineiros pela verificação das transacções. Taxas de gás mais baixas indicam maior eficiência no Ethereum.
Uma diminuição da velocidade da transação conduz a um aumento das taxas de gás. Geralmente, quando a velocidade de processamento das transacções diminui, devido ao espaço limitado do bloco, a concorrência entre as transacções para entrar no bloco seguinte pode aumentar. Para se destacarem nesta competição, os comerciantes aumentam frequentemente as taxas de gás, uma vez que os mineiros tendem a dar prioridade às transacções com taxas de gás mais elevadas durante a verificação. Por conseguinte, taxas de gás mais elevadas podem degradar a experiência do utilizador.
As transacções são apenas as actividades básicas do Ethereum. Neste ecossistema, os utilizadores podem também participar em várias actividades, como empréstimos, apostas, investimentos, seguros, etc., que podem ser realizadas através de DApps específicas. No entanto, dada a grande variedade de DApps e a falta de serviços de recomendação personalizados semelhantes aos das indústrias tradicionais, os utilizadores podem achar confuso escolher as aplicações e os produtos certos para si próprios. Esta situação pode levar a uma diminuição da satisfação dos utilizadores, afectando assim a eficiência global do ecossistema Ethereum.
Tome como exemplo o crédito. Algumas plataformas de empréstimos DeFi utilizam um mecanismo de sobrecolateralização para manter a segurança e a estabilidade da sua plataforma. Isto significa que os mutuários têm de apresentar mais activos como garantia, que não podem ser utilizados para outras actividades durante o período do empréstimo. Isto leva a uma diminuição da taxa de utilização de capital dos mutuários, reduzindo assim a liquidez do mercado.
Os modelos de aprendizagem automática, como o modelo RFM, as redes adversariais generativas (GAN), os modelos de árvore de decisão, o algoritmo K-Nearest Neighbors (KNN) e o algoritmo de agrupamento DBSCAN, estão a desempenhar um papel importante no Ethereum. A aplicação destes modelos de aprendizagem automática no Ethereum pode ajudar a otimizar a eficiência do processamento de transacções, aumentar a segurança dos contratos inteligentes, implementar a segmentação de utilizadores para fornecer serviços mais personalizados e contribuir para o funcionamento estável da rede.
Os algoritmos de aprendizagem automática são um conjunto de instruções ou regras utilizadas para analisar dados, aprender padrões dentro dos dados e fazer previsões ou tomar decisões com base nessas aprendizagens. Melhoram automaticamente através da aprendizagem com os dados fornecidos, sem necessidade de programação explícita por parte dos humanos. Os modelos de aprendizagem automática, como o modelo RFM, as redes adversariais generativas (GAN), os modelos de árvore de decisão, o algoritmo K-Nearest Neighbors (KNN) e o algoritmo de agrupamento DBSCAN, estão a desempenhar um papel importante no Ethereum. A aplicação destes modelos de aprendizagem automática no Ethereum pode ajudar a otimizar a eficiência do processamento de transacções, aumentar a segurança dos contratos inteligentes, implementar a segmentação de utilizadores para fornecer serviços mais personalizados e contribuir para o funcionamento estável da rede.
Os classificadores bayesianos estão entre os vários métodos de classificação estatística que têm como objetivo minimizar a probabilidade de erros de classificação ou minimizar o risco médio num quadro de custos específico. A sua filosofia de conceção está profundamente enraizada no teorema Bayesiano, que permite o cálculo da probabilidade de um objeto pertencer a uma determinada classe, dadas algumas características conhecidas. Ao calcular a probabilidade posterior do objeto, são tomadas decisões. Especificamente, os classificadores bayesianos começam por considerar a probabilidade prévia do objeto e depois aplicam a fórmula bayesiana para ter em conta os dados observados, actualizando assim a crença sobre a classificação do objeto. Entre todas as classificações possíveis, os classificadores Bayesianos escolhem a categoria com a maior probabilidade posterior para o objeto. A principal vantagem deste método reside na sua capacidade natural de lidar com a incerteza e a informação incompleta, tornando-o uma ferramenta poderosa e flexível adequada a uma vasta gama de aplicações.
Como ilustrado na Figura 2, na aprendizagem automática supervisionada, as decisões de classificação são tomadas utilizando dados e modelos de probabilidade baseados no teorema Bayesiano. Utilizando a verosimilhança, as probabilidades prévias de categorias e características, os classificadores bayesianos calculam as probabilidades posteriores de cada categoria para os pontos de dados e atribuem os pontos de dados à categoria com a probabilidade posterior mais elevada. No gráfico de dispersão à direita, o classificador tenta encontrar uma curva que melhor separe os pontos de cores diferentes, minimizando assim os erros de classificação.
Figura 2 Classificador Bayesiano
Os algoritmos de árvores de decisão são normalmente utilizados para tarefas de classificação e regressão, adoptando uma abordagem hierárquica de tomada de decisões. Geram árvores através da divisão de características com elevado ganho de informação com base em dados conhecidos, treinando assim uma árvore de decisão. Essencialmente, o algoritmo pode auto-aprender uma regra de decisão a partir dos dados para determinar os valores das variáveis. Especificamente, simplifica processos complexos de tomada de decisão em várias sub-decisões mais simples. Cada decisão mais simples é derivada de um critério de decisão pai, formando uma estrutura em forma de árvore.
Como mostra a Figura 3, cada nó representa uma decisão, definindo um critério para julgar um determinado atributo, enquanto os ramos representam os resultados da decisão. Cada nó folha representa o resultado final previsto e a categoria. Do ponto de vista estrutural, o modelo de árvore de decisão é intuitivo, fácil de compreender e tem um forte poder explicativo.
imagem 3 Modelo de árvore de decisão
O DBSCAN (Density-Based Spatial Clustering of Applications with Noise) é um algoritmo de agrupamento espacial baseado na densidade que é particularmente eficaz para conjuntos de dados com ruído e para identificar agrupamentos de qualquer forma sem necessidade de especificar previamente o número de agrupamentos. Tem um desempenho robusto face a valores atípicos no conjunto de dados. O algoritmo pode identificar eficazmente os outliers, definidos como pontos em áreas de baixa densidade, como ilustrado na Figura 4.
Figura 4 Identificação do ruído com o algoritmo DBSCAN
O algoritmo K-Nearest Neighbors (KNN) pode ser utilizado tanto para tarefas de classificação como de regressão. Na classificação, a categoria de um item a classificar é determinada através de um mecanismo de votação; na regressão, faz a previsão calculando a média ou a média ponderada das k amostras mais próximas.
Como se mostra na Figura 5, o princípio de funcionamento do algoritmo KNN na classificação consiste em encontrar os k vizinhos mais próximos de um novo ponto de dados e prever a categoria do novo ponto de dados com base nas categorias desses vizinhos. Se K=1, o novo ponto de dados é simplesmente atribuído à categoria do seu vizinho mais próximo. Se K>1, a categoria é normalmente determinada por uma votação maioritária, o que significa que o novo ponto de dados é atribuído à categoria mais comum entre os seus vizinhos. Quando utilizado em regressão, o princípio permanece o mesmo, mas o resultado é a média dos resultados das k amostras mais próximas.
Figura 5 Algoritmo KNN utilizado para a classificação
A inteligência artificial (IA) generativa é um tipo de tecnologia de IA que pode gerar novos conteúdos (como texto, imagens, música, etc.) com base em requisitos de entrada. A sua base reside nos avanços da aprendizagem automática e da aprendizagem profunda, nomeadamente em aplicações nos domínios do processamento da linguagem natural e do reconhecimento de imagens. A IA generativa aprende padrões e associações a partir de uma vasta quantidade de dados e, em seguida, gera resultados inteiramente novos com base nessas informações aprendidas. A chave para a inteligência artificial generativa reside na formação de modelos, que requer dados de elevada qualidade para a aprendizagem e o treino. Durante este processo, o modelo melhora gradualmente a sua capacidade de gerar novos conteúdos, analisando e compreendendo a estrutura, os padrões e as relações dentro do conjunto de dados.
O Transformer, enquanto pedra angular da inteligência artificial generativa, introduziu o mecanismo de atenção de uma forma inovadora. Isto permite que o processamento de informações se concentre em pontos-chave e, ao mesmo tempo, tenha uma visão global, uma capacidade única que fez com que o Transformer brilhasse no domínio da geração de texto. A utilização dos mais recentes modelos de linguagem natural, como o GPT (Generative Pre-trained Transformer), para compreender os requisitos do utilizador expressos em linguagem natural e convertê-los automaticamente em código executável pode reduzir a complexidade do desenvolvimento e melhorar significativamente a eficiência.
Como mostra a Figura 6, a introdução do mecanismo de atenção multi-cabeças e do mecanismo de auto-atenção, combinados com ligações residuais e redes neuronais totalmente ligadas, e tirando partido de tecnologias anteriores de incorporação de palavras, elevou consideravelmente o desempenho dos modelos generativos relacionados com o processamento da linguagem natural.
Figura 6 Modelo de transformador
O modelo RFM é um modelo de análise baseado no comportamento de compra do cliente, que pode identificar diferentes grupos de clientes de valor através da análise do seu comportamento de transação. Este modelo classifica e categoriza os clientes com base no momento da compra mais recente (Recência, R), na frequência das compras (Frequência, F) e no montante gasto (Valor monetário, M).
Como ilustrado na Figura 7, estes três indicadores constituem o núcleo do modelo RFM. O modelo classifica os clientes nestas três dimensões e ordena-os com base nas classificações para identificar os grupos de clientes mais valiosos. Além disso, este modelo segmenta efetivamente os clientes em diferentes grupos, facilitando a funcionalidade de estratificação dos clientes.
Figura 7 Modelo de camadas do RFM
Quando aplicámos a tecnologia de aprendizagem automática para enfrentar os desafios de segurança do Ethereum, realizámos uma investigação a partir de quatro aspectos principais:
Aplicações potenciais
Ao abordar os desafios de segurança do Ethereum através de técnicas de aprendizagem automática, realizámos investigação em quatro aspectos principais:
Identificação e filtragem de transacções maliciosas com base num classificador Bayesiano**
Através da construção de um classificador Bayesiano, podem ser identificadas e filtradas potenciais transacções de spam, incluindo, mas não se limitando às que causam ataques DOS através de grandes volumes de transacções pequenas e frequentes. Este método mantém eficazmente a saúde da rede, analisando as características das transacções, tais como os preços do gás e a frequência das transacções, assegurando assim o funcionamento estável da rede Ethereum.
Geração de código de contrato inteligente seguro e que satisfaz requisitos específicos**
As redes adversariais generativas (GAN) e as redes generativas baseadas em transformadores podem ser utilizadas para gerar código de contrato inteligente que cumpra requisitos específicos, garantindo simultaneamente a segurança do código tanto quanto possível. No entanto, estas duas abordagens diferem nos tipos de dados em que se baseiam para a formação de modelos: a primeira depende principalmente de amostras de código inseguro, enquanto a segunda se baseia no oposto.
Ao treinar GANs para aprender padrões de contratos seguros existentes e construir modelos auto-adversários para gerar código potencialmente inseguro, e depois aprender a identificar essas inseguranças, é possível gerar automaticamente código de contrato inteligente de alta qualidade e mais seguro. Utilizando modelos de rede generativa baseados no Transformer, ao aprender com uma vasta gama de exemplos de contratos seguros, é possível gerar códigos de contrato que satisfazem necessidades específicas e optimizam o consumo de gás, melhorando sem dúvida a eficiência e a segurança do desenvolvimento de contratos inteligentes.
Análise de risco de contratos inteligentes baseada em árvores de decisão**
A utilização de árvores de decisão para analisar as características dos contratos inteligentes, como a frequência de chamadas de funções, o valor da transação e a complexidade do código-fonte, pode identificar eficazmente os potenciais níveis de risco dos contratos. A análise dos padrões operacionais e da estrutura do código dos contratos pode prever possíveis vulnerabilidades e pontos de risco, proporcionando aos criadores e utilizadores uma avaliação da segurança. Espera-se que este método melhore significativamente a segurança dos contratos inteligentes no ecossistema Ethereum, reduzindo assim as perdas causadas por vulnerabilidades ou código malicioso.
Construir um modelo de avaliação de criptomoedas para reduzir os riscos de investimento**
Ao analisar os dados de negociação, a atividade nas redes sociais e o desempenho de mercado das criptomoedas através de algoritmos de aprendizagem automática, é possível construir um modelo de avaliação que pode prever a probabilidade de uma criptomoeda ser uma "moeda lixo". Este modelo pode oferecer informações valiosas aos investidores, ajudando-os a evitar riscos de investimento e promovendo assim o desenvolvimento saudável do mercado das criptomoedas.
Além disso, a aplicação da aprendizagem automática também tem o potencial de aumentar ainda mais a eficiência do Ethereum. Podemos explorá-lo a partir das três dimensões-chave seguintes:
A aplicação de árvores de decisão na otimização do modelo de fila de espera do pool de transacções
A utilização de árvores de decisão pode otimizar eficazmente o mecanismo de enfileiramento do conjunto de transacções Ethereum. Ao analisar as características da transação, como os preços do gás e a dimensão da transação, as árvores de decisão podem otimizar a seleção e a ordenação das transacções. Este método pode melhorar significativamente a eficiência do processamento das transacções, reduzir eficazmente o congestionamento da rede e diminuir o tempo de espera dos utilizadores pelas transacções.
O modelo RFM (Recency, Frequency, Monetary value), uma ferramenta amplamente utilizada na gestão da relação com o cliente, pode segmentar eficazmente os utilizadores através da avaliação do tempo da sua transação mais recente (Recency), da frequência da transação (Frequency) e do montante da transação (Monetary value). A aplicação do modelo RFM na plataforma Ethereum pode ajudar a identificar grupos de utilizadores de elevado valor, otimizar a atribuição de recursos e fornecer serviços mais personalizados, aumentando assim a satisfação do utilizador e a eficiência global da plataforma. O modelo RFM (Recency, Frequency, Monetary value), uma ferramenta amplamente utilizada na gestão da relação com o cliente, pode segmentar eficazmente os utilizadores, avaliando o tempo da sua transação mais recente (Recency), a frequência da transação (Frequency) e o montante da transação (Monetary value). A aplicação do modelo RFM na plataforma Ethereum pode ajudar a identificar grupos de utilizadores de elevado valor, otimizar a atribuição de recursos e fornecer serviços mais personalizados, aumentando assim a satisfação dos utilizadores e a eficiência global da plataforma.
O algoritmo DBSCAN também pode analisar o comportamento de transação dos utilizadores, ajudando a identificar diferentes grupos de utilizadores no Ethereum e a fornecer serviços financeiros mais personalizados a diferentes utilizadores. Esta estratégia de segmentação dos utilizadores pode otimizar as estratégias de marketing, aumentar a satisfação dos clientes e a eficiência dos serviços.
O algoritmo K-Nearest Neighbors (KNN) pode pontuar o crédito dos utilizadores analisando o seu histórico de transacções e padrões de comportamento no Ethereum, que desempenha um papel extremamente importante em actividades financeiras como os empréstimos. A pontuação de crédito ajuda as instituições financeiras e as plataformas de empréstimo a avaliar as capacidades de reembolso e o risco de crédito dos mutuários, tomando decisões de empréstimo mais precisas. Isto pode evitar a contração excessiva de empréstimos e melhorar a liquidez do mercado.
Do ponto de vista da macro-alocação de capital, o Ethereum, como o maior computador distribuído do mundo, nunca pode ser investido em excesso na camada infra, precisando atrair mais desenvolvedores de diversas origens para participar da co-construção. Neste artigo, ao analisarmos a implementação técnica do Ethereum e os problemas que enfrenta, prevemos uma série de aplicações intuitivas da aprendizagem automática e esperamos que os criadores de IA da comunidade transformem estas visões em valor real.
À medida que o poder de computação na cadeia aumenta gradualmente, podemos prever o desenvolvimento de modelos mais complexos para a gestão da rede, monitorização de transacções, auditoria de segurança, etc., melhorando a eficiência e a segurança da rede Ethereum.
Além disso, os mecanismos de governação baseados em IA/agentes podem também tornar-se uma inovação significativa no ecossistema Ethereum. Este mecanismo, que permite processos de tomada de decisão mais eficientes, transparentes e automatizados, poderá dotar o Ethereum de uma estrutura de governação mais flexível e fiável. Estes desenvolvimentos futuros não só promoverão a inovação na tecnologia Ethereum, como também proporcionarão aos utilizadores uma experiência de maior qualidade na cadeia.