{"id":93794,"date":"2020-09-10T07:42:27","date_gmt":"2020-09-10T05:42:27","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/town-crier-vs-deco-kakoj-orakul-ispolzovat-v-blokchejne"},"modified":"2020-09-10T07:42:27","modified_gmt":"2020-09-10T05:42:27","slug":"town-crier-vs-deco-kakoj-orakul-ispolzovat-v-blokchejne","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/town-crier-vs-deco-kakoj-orakul-ispolzovat-v-blokchejne","title":{"rendered":"Town Crier vs DECO: qual or\u00e1culo usar no blockchain?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Hoje em dia, apenas os pregui\u00e7osos n\u00e3o escreveram sobre a tecnologia blockchain, criptomoedas e o qu\u00e3o incr\u00edvel isso \u00e9. Mas neste artigo n\u00e3o haver\u00e1 exalta\u00e7\u00e3o dessa tecnologia, em vez disso, abordaremos suas desvantagens e as solu\u00e7\u00f5es para elas. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Town Crier vs DECO: qual or\u00e1culo usar no blockchain?\" src=\"\/wp-content\/uploads\/2020\/09\/af435f4c102071d7248778ff5354ed5e.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Durante o trabalho em um dos projetos da Altyriks Systems, surgiu a tarefa de confirma\u00e7\u00e3o de dados de uma fonte externa para o blockchain que fosse segura e resistente \u00e0 censura. Era necess\u00e1rio confirmar as mudan\u00e7as nos registros de um terceiro sistema e, com base nessas mudan\u00e7as, executar uma ou outra ramifica\u00e7\u00e3o na l\u00f3gica do contrato inteligente. A princ\u00edpio, a tarefa parece bastante trivial, mas quando o resultado de sua execu\u00e7\u00e3o afeta a situa\u00e7\u00e3o financeira de uma das partes envolvidas no processo, surgem requisitos adicionais. Antes de tudo, \u00e9 necess\u00e1rio ter confian\u00e7a total em um mecanismo de valida\u00e7\u00e3o como esse. Mas vamos por partes. <\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>O problema \u00e9 que o blockchain \u00e9, por si s\u00f3, um objeto aut\u00f4nomo e fechado, ent\u00e3o os contratos inteligentes dentro do blockchain n\u00e3o sabem nada sobre o mundo exterior. Ao mesmo tempo, as condi\u00e7\u00f5es dos contratos inteligentes frequentemente est\u00e3o ligadas a informa\u00e7\u00f5es sobre coisas reais (atraso de voo, taxa de c\u00e2mbio, etc.). Para que os contratos inteligentes funcionem corretamente, as informa\u00e7\u00f5es obtidas de fora do blockchain devem ser confi\u00e1veis e verificadas. Esse problema \u00e9 resolvido com o uso de or\u00e1culos, como Town Crier e DECO. Esses or\u00e1culos permitem que um contrato inteligente na rede blockchain confie em informa\u00e7\u00f5es de um servidor web verificado, pode-se dizer que eles s\u00e3o fornecedores de informa\u00e7\u00f5es confi\u00e1veis. <\/p>\n<p><\/p>\n<h1 id=\"orakuly\">Or\u00e1culos<\/h1>\n<p><\/p>\n<p>Imagine que um contrato inteligente realiza a transfer\u00eancia de 0,001 btc para sua carteira bitcoin caso seu clube de futebol favorito ven\u00e7a a Copa da R\u00fassia. Em caso de vit\u00f3ria real, o contrato inteligente precisa receber informa\u00e7\u00f5es sobre qual clube venceu, e aqui surgem uma s\u00e9rie de problemas: de onde obter essas informa\u00e7\u00f5es, como transmiti-las de forma segura para o contrato inteligente e como garantir que as informa\u00e7\u00f5es recebidas pelo contrato inteligente realmente correspondem \u00e0 realidade? <\/p>\n<p><\/p>\n<p>Na quest\u00e3o da fonte de informa\u00e7\u00e3o, podem existir dois cen\u00e1rios: conectar um contrato inteligente a um site confi\u00e1vel, onde as informa\u00e7\u00f5es sobre os resultados das partidas s\u00e3o armazenadas de forma centralizada, ou a segunda op\u00e7\u00e3o \u2014 conectar v\u00e1rios sites e ent\u00e3o selecionar informa\u00e7\u00f5es da maioria das fontes que fornecem dados iguais. Para garantir a precis\u00e3o das informa\u00e7\u00f5es, s\u00e3o utilizados or\u00e1culos, como o Oraclize, que usa o TLSNotary (uma modifica\u00e7\u00e3o do TLS para provar a autenticidade dos dados). No entanto, h\u00e1 bastante informa\u00e7\u00e3o sobre o Oraclize no Google, e no Habr h\u00e1 v\u00e1rios artigos, hoje eu falarei sobre or\u00e1culos que utilizam uma abordagem um pouco diferente para a transmiss\u00e3o de informa\u00e7\u00f5es: Town Crier e DECO. O artigo descreve os princ\u00edpios de funcionamento de ambos os or\u00e1culos, bem como uma compara\u00e7\u00e3o detalhada. <\/p>\n<p><\/p>\n<h1 id=\"town-crier\">Town Crier<\/h1>\n<p><\/p>\n<p>O Town Crier (TC) foi apresentado pelo IC3 (The Initiative for CryptoCurrencies and Contracts) em 2016 na CCS'16. A ideia principal do TC: transmitir informa\u00e7\u00f5es de um site para um contrato inteligente e garantir que as informa\u00e7\u00f5es entregues pelo TC sejam as mesmas que as do site. O TC utiliza TEE (Trusted Execution Environment) para a autenticidade da propriedade dos dados. Na vers\u00e3o original do TC, \u00e9 descrito o trabalho com o Intel SGX.<br \/>\nO Town Crier \u00e9 composto por uma parte dentro da blockchain e uma parte dentro do pr\u00f3prio sistema operacional \u2014 o TC Server.<br \/>\n<img decoding=\"async\" alt=\"Town Crier vs DECO: qual or\u00e1culo usar no blockchain?\" src=\"\/wp-content\/uploads\/2020\/09\/d94251340bfe563ca69bf74c358caf62.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nO TC Contract est\u00e1 na blockchain e atua como a interface do front end para o TC. Ele recebe solicita\u00e7\u00f5es do CU (contrato inteligente do usu\u00e1rio) e retorna a resposta do TC Server. Dentro do TC Server est\u00e1 o Relay, que estabelece a conex\u00e3o entre o enclave e a rede internet (tr\u00e1fego bidirecional) e conecta o enclave \u00e0 blockchain. O enclave cont\u00e9m progencl, que representa o c\u00f3digo que executa solicita\u00e7\u00f5es da blockchain e retorna mensagens para a blockchain com a assinatura digital; o progencl cont\u00e9m parte do c\u00f3digo do contrato inteligente e efetivamente executa algumas de suas fun\u00e7\u00f5es. <\/p>\n<p><\/p>\n<p>O enclave Intel SGX pode ser visto como uma biblioteca comum com API, funcionando por meio de ecall. O ecall transfere o controle para o enclave. O enclave executa seu c\u00f3digo at\u00e9 que seja conclu\u00eddo ou ocorra uma exce\u00e7\u00e3o. Para chamar fun\u00e7\u00f5es definidas fora do enclave, s\u00e3o utilizados ocall. O ocall \u00e9 executado fora do enclave e \u00e9 tratado como uma chamada n\u00e3o confi\u00e1vel. Ap\u00f3s a execu\u00e7\u00e3o do ocall, o controle retorna ao enclave.<br \/>\n<img decoding=\"async\" alt=\"Town Crier vs DECO: qual or\u00e1culo usar no blockchain?\" src=\"\/wp-content\/uploads\/2020\/09\/6b4e0952862d6fe8597793cac03e760c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nNa parte do Enclave, \u00e9 configurado um canal seguro com o servidor web, onde o enclave realiza o handshake TLS com o servidor de destino e executa todas as opera\u00e7\u00f5es criptogr\u00e1ficas internamente. A biblioteca TLS (mbedTLS) e o c\u00f3digo HTTP em vers\u00e3o reduzida s\u00e3o exportados para o ambiente SGX. Al\u00e9m disso, o Enclave cont\u00e9m certificados root CA (cole\u00e7\u00e3o de certificados) para verificar os certificados dos servidores remotos. O Request Handler aceita um pedido datagrama no formato fornecido pelo Ethereum, descriptografa-o e analisa. Em seguida, gera uma transa\u00e7\u00e3o Ethereum contendo o datagrama solicitado, assina com skTC e envia ao Relay.<\/p>\n<p><\/p>\n<p>A parte do Relay inclui a Client Interface, TCP e Blockchain Interface. A Client Interface \u00e9 necess\u00e1ria para a atesta\u00e7\u00e3o do c\u00f3digo do enclave e comunica\u00e7\u00e3o com o cliente. O cliente envia um pedido de atesta\u00e7\u00e3o usando ecall e recebe um timestamp, assinado por skTC, junto com o att (assinatura de atesta\u00e7\u00e3o), que \u00e9 ent\u00e3o confirmado pelo Intel Attestation Service (IAS), enquanto o timestamp \u00e9 verificado por um servi\u00e7o de tempo confi\u00e1vel. A Blockchain Interface verifica os pedidos recebidos e coloca transa\u00e7\u00f5es na blockchain para a entrega de datagrams. Geth \u00e9 o cliente oficial do Ethereum e permite que o Relay interaja com a blockchain atrav\u00e9s de chamadas RPC. <\/p>\n<p><\/p>\n<p>Trabalhando com TEE, o TC permite iniciar v\u00e1rios enclaves simultaneamente, aumentando assim a velocidade de processamento de informa\u00e7\u00f5es em 3 vezes. Se com um enclave em funcionamento a velocidade era de 15 tx\/sec, com 20 enclaves iniciados em paralelo, a velocidade sobe para 65 tx\/sec; para compara\u00e7\u00e3o, a velocidade m\u00e1xima de opera\u00e7\u00e3o na blockchain do Bitcoin \u00e9 de 26 tx\/sec.<\/p>\n<p><\/p>\n<h1 id=\"deco\">DECO<\/h1>\n<p><\/p>\n<p>DECO (Or\u00e1culos Descentralizados para TLS) foi apresentado no CCS\u201920, funciona com sites que suportam conex\u00e3o TLS. Garante a privacidade e a integridade dos dados.<br \/>\nO DECO com TLS utiliza criptografia sim\u00e9trica, fazendo com que tanto o cliente quanto o servidor web tenham chaves de criptografia, e o cliente, se desejar, pode falsificar os dados da sess\u00e3o TLS. Para resolver esse problema, o DECO utiliza um protocolo de handshake de tr\u00eas vias entre prover (smart contract), verifier (or\u00e1culo) e web-server (fonte de dados).<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Town Crier vs DECO: qual or\u00e1culo usar no blockchain?\" src=\"\/wp-content\/uploads\/2020\/09\/17245f0af8d3cf448291652fd58312f2.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>O princ\u00edpio de funcionamento do DECO consiste em o verificador (prover) obter parte dos dados D e confirmar ao verificador (verifier) que D veio do servidor TLS S. Outro problema \u00e9 que o TLS n\u00e3o assina os dados, e o cliente TLS enfrenta dificuldades para provar que os dados foram obtidos daquele servidor espec\u00edfico (dificuldade de proveni\u00eancia). <\/p>\n<p><\/p>\n<p>No protocolo DECO, s\u00e3o utilizados chaves de criptografia KEnc e KMac. O cliente envia uma solicita\u00e7\u00e3o Q para <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/pt\/server\/\"   title=\"servidor web\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1157\">servidor web<\/a>, a resposta do servidor R chega de forma criptografada, mas tanto o cliente quanto o servidor possuem os mesmos KMac, permitindo que o cliente possa falsificar a mensagem TLS. A solu\u00e7\u00e3o do DECO consiste em 'esconder' o KMac do cliente (prover), at\u00e9 que ele responda \u00e0 solicita\u00e7\u00e3o. Agora, o KMac \u00e9 dividido entre prover e verificador \u2014 KpMac e KvMac. O servidor recebe o KMac para criptografar a resposta usando a opera\u00e7\u00e3o de partes da chave KpMac \u2295 KvMac = KMac.<\/p>\n<p><\/p>\n<p>Configurando um handshake de tr\u00eas vias, a troca de dados entre o cliente e o servidor ser\u00e1 realizada com garantia de seguran\u00e7a.<br \/>\n<img decoding=\"async\" alt=\"Town Crier vs DECO: qual or\u00e1culo usar no blockchain?\" src=\"\/wp-content\/uploads\/2020\/09\/2d6405ae1e7e2b283539d3a4bd8c315c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nFalando sobre sistemas de or\u00e1culos descentralizados, n\u00e3o se pode deixar de mencionar a Chainlink, que busca criar uma rede descentralizada de n\u00f3s or\u00e1culos compat\u00edvel com Ethereum, Bitcoin e Hyperledger, considerando a modularidade: cada parte do sistema pode ser atualizada. Para garantir a seguran\u00e7a, a Chainlink oferece a cada or\u00e1culo envolvido na tarefa emitir uma combina\u00e7\u00e3o de chaves (p\u00fablica e privada). A chave privada \u00e9 utilizada para gerar uma assinatura parcial, que cont\u00e9m sua solu\u00e7\u00e3o para a solicita\u00e7\u00e3o de dados. Para obter uma resposta, \u00e9 necess\u00e1ria a combina\u00e7\u00e3o de todas as assinaturas parciais dos or\u00e1culos da rede.<\/p>\n<p><\/p>\n<p>A Chainlink planeja realizar um PoC DECO inicial focado em aplica\u00e7\u00f5es financeiras descentralizadas, como Mixicles. No momento da reda\u00e7\u00e3o deste artigo, saiu uma not\u00edcia na Forbes informando que a Chainlink adquiriu a DECO da Cornell University.<\/p>\n<p><\/p>\n<h1 id=\"ataki-na-orakuly\">Ataques aos or\u00e1culos<\/h1>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Town Crier vs DECO: qual or\u00e1culo usar no blockchain?\" src=\"\/wp-content\/uploads\/2020\/09\/ce964b3961f4b0035f96e33777ed77d0.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Do ponto de vista da seguran\u00e7a da informa\u00e7\u00e3o, foram considerados os seguintes ataques ao Town Crier:<\/p>\n<p><\/p>\n<ol>\n<li>\n<p>Inje\u00e7\u00e3o de c\u00f3digo de smart contract malicioso em n\u00f3s TEE.<br \/>\nA ess\u00eancia do ataque: a transmiss\u00e3o de c\u00f3digo de smart contract intencionalmente incorreto para o TEE, permitindo que um invasor que tenha acesso ao n\u00f3 possa executar seu pr\u00f3prio smart contract (fraudulento) sobre dados decifrados. No entanto, os valores retornados estar\u00e3o criptografados com a chave privada, e a \u00fanica maneira de acessar esses dados \u00e9 pela vazamento do texto criptografado durante a devolu\u00e7\u00e3o\/sa\u00edda.<br \/>\nA prote\u00e7\u00e3o contra este ataque consiste em verificar pela enclave a veracidade do c\u00f3digo presente no endere\u00e7o atual. Isso pode ser alcan\u00e7ado por meio de um esquema de endere\u00e7amento, onde o endere\u00e7o do contrato \u00e9 definido pela hash do c\u00f3digo do contrato. <\/p>\n<p>\n<\/li>\n<li>\n<p>Mudan\u00e7as no estado do contrato ciphertext vazam.<br \/>\nO cerne do ataque: Os propriet\u00e1rios de n\u00f3s onde os contratos inteligentes s\u00e3o executados t\u00eam acesso ao estado do contrato de forma criptografada fora do enclave. Um invasor que controla um n\u00f3 pode comparar o estado do contrato antes e depois da execu\u00e7\u00e3o da transa\u00e7\u00e3o e pode determinar quais argumentos foram fornecidos e qual m\u00e9todo espec\u00edfico do contrato inteligente foi utilizado, uma vez que o c\u00f3digo do contrato inteligente e suas especifica\u00e7\u00f5es t\u00e9cnicas s\u00e3o de dom\u00ednio p\u00fablico.<br \/>\nProte\u00e7\u00e3o para garantir a confiabilidade do pr\u00f3prio n\u00f3.<\/p>\n<p>\n<\/li>\n<li>\n<p>Ataques de canal lateral.<br \/>\nUm tipo especial de ataques que utiliza o monitoramento do acesso \u00e0 mem\u00f3ria e ao cache do enclave em v\u00e1rios cen\u00e1rios. Um exemplo desse tipo de ataque \u00e9 o Prime and Probe.<br \/>\n<img decoding=\"async\" alt=\"Town Crier vs DECO: qual or\u00e1culo usar no blockchain?\" src=\"\/wp-content\/uploads\/2020\/09\/df57664f060e294b969f96dda8a69b32.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nSequ\u00eancia de execu\u00e7\u00e3o do ataque:<\/p>\n<p><\/p>\n<ul>\n<li>t0: O invasor preenche todo o cache de dados do processo da v\u00edtima.<\/li>\n<li>t1: A v\u00edtima executa c\u00f3digo com acessos \u00e0 mem\u00f3ria que dependem de dados confidenciais da v\u00edtima (chaves criptogr\u00e1ficas). A sele\u00e7\u00e3o da linha do cache ocorre com base no valor do keybit. No exemplo da figura, keybit = 0 e o endere\u00e7o X \u00e9 lido na linha de cache 2. Os dados armazenados em X s\u00e3o carregados no cache, substituindo os dados que estavam ali antes. <\/li>\n<li>t2: O invasor verifica quais de suas linhas de cache foram substitu\u00eddas \u2014 as linhas utilizadas pela v\u00edtima. Isso \u00e9 feito medindo o tempo de acesso. Repetindo essa opera\u00e7\u00e3o para cada keybit, o invasor obt\u00e9m toda a chave. <\/li>\n<\/ul>\n<p>\n<\/li>\n<\/ol>\n<p><\/p>\n<p>Prote\u00e7\u00e3o contra o ataque: O Intel SGX possui prote\u00e7\u00e3o contra ataques de canal lateral, que pro\u00edbe a monitora\u00e7\u00e3o de eventos relacionados ao cache, mas o ataque Prime and Probe ainda ocorrer\u00e1, pois o invasor observa os eventos do cache de seu pr\u00f3prio processo e compartilha o cache com a v\u00edtima.<br \/>\n<img decoding=\"async\" alt=\"Town Crier vs DECO: qual or\u00e1culo usar no blockchain?\" src=\"\/wp-content\/uploads\/2020\/09\/9b2821eedacc189f44cf903aad0fdba3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nPortanto, at\u00e9 o momento, n\u00e3o existe uma prote\u00e7\u00e3o confi\u00e1vel contra esse ataque.<\/p>\n<p><\/p>\n<p>Ataques do tipo Spectre e Foreshadow (L1TF), semelhantes ao Prime and Probe, tamb\u00e9m s\u00e3o conhecidos. Eles permitem a leitura de dados da mem\u00f3ria cache atrav\u00e9s de canais laterais. Existe prote\u00e7\u00e3o contra a vulnerabilidade Spectre-v2, que atua contra esses dois ataques. <\/p>\n<p><\/p>\n<p>Em rela\u00e7\u00e3o ao DECO, o handshake de tr\u00eas vias fornece garantia de seguran\u00e7a: <\/p>\n<p><\/p>\n<ol>\n<li>Prover Integrity: um prover comprometido n\u00e3o pode falsificar informa\u00e7\u00f5es sobre a origem do servidor e n\u00e3o pode fazer o servidor aceitar solicita\u00e7\u00f5es inv\u00e1lidas ou responder incorretamente a solicita\u00e7\u00f5es v\u00e1lidas. Isso \u00e9 alcan\u00e7ado atrav\u00e9s de padr\u00f5es de solicita\u00e7\u00f5es entre o servidor e o prover. <\/li>\n<li>Verifier Integrity: um verifier comprometido n\u00e3o pode fazer o prover receber respostas incorretas.<\/li>\n<li>Privacidade: O verificador hackeado analisa apenas informa\u00e7\u00f5es p\u00fablicas (requisi\u00e7\u00e3o, nome do servidor).<\/li>\n<\/ol>\n<p><\/p>\n<p>No DECO, apenas vulnerabilidades relacionadas \u00e0 inje\u00e7\u00e3o de tr\u00e1fego s\u00e3o poss\u00edveis. Inicialmente, durante o handshake triplo, o verificador pode estabelecer a identidade do servidor usando um fresh nonce. No entanto, ap\u00f3s o handshake, o verificador deve confiar em indicativos de n\u00edvel de rede (<a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/pt\/lir\/ipv4\/\"   title=\"endere\u00e7os IP\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"674\">endere\u00e7os IP<\/a>). Assim, a conex\u00e3o entre o verificador e o servidor deve ser protegida contra inje\u00e7\u00f5es de tr\u00e1fego. Isso \u00e9 alcan\u00e7ado utilizando um Proxy.<\/p>\n<p><\/p>\n<h1 id=\"sravnenie-orakulov\">Compara\u00e7\u00e3o de or\u00e1culos<\/h1>\n<p><\/p>\n<p>Town Crier \u00e9 baseado em trabalhar com um enclave na parte do servidor, enquanto o DECO permite verificar a autenticidade da origem dos dados atrav\u00e9s de um handshake triplo e criptografando os dados com chaves criptogr\u00e1ficas. A compara\u00e7\u00e3o dos dados dos or\u00e1culos foi feita com base nos seguintes crit\u00e9rios: desempenho, seguran\u00e7a, custo e praticidade. <\/p>\n<p><\/p>\n<p>Town Crier<br \/>\nDECO<\/p>\n<p>desempenho<br \/>\nMais r\u00e1pido (0.6s para finalizar)<br \/>\nMais lento (10.50s para finalizar o protocolo)<\/p>\n<p>seguran\u00e7a<br \/>\nMenos seguro<br \/>\nMais seguro<\/p>\n<p>custo<br \/>\nMais caro<br \/>\nMais barato<\/p>\n<p>praticidade<br \/>\nRequer hardware especial<br \/>\nFunciona com qualquer servidor que suporte TLS<\/p>\n<p><\/p>\n<p><strong>Desempenho<\/strong>: Para trabalhar com DECO, \u00e9 necess\u00e1rio configurar um handshake triplo. A configura\u00e7\u00e3o atrav\u00e9s de LAN leva 0.37 segundos, e para intera\u00e7\u00f5es ap\u00f3s o estabelecimento da conex\u00e3o, o 2PC-HMAC (0,13 s para grava\u00e7\u00e3o) \u00e9 eficaz. O desempenho do DECO depende dos conjuntos de cifras TLS dispon\u00edveis, do tamanho dos dados pessoais e da complexidade das provas para um aplicativo espec\u00edfico. Tomando como exemplo um aplicativo de op\u00e7\u00f5es bin\u00e1rias da IC3: a conclus\u00e3o do protocolo atrav\u00e9s da LAN leva cerca de 10,50 s. Em compara\u00e7\u00e3o, o Town Crier leva cerca de 0,6 segundos para executar um aplicativo similar, ou seja, aproximadamente 20 vezes mais r\u00e1pido que o DECO. Nas mesmas condi\u00e7\u00f5es, o TC ser\u00e1 mais r\u00e1pido. <\/p>\n<p><\/p>\n<p><strong>Seguran\u00e7a<\/strong>: Ataques ao enclave Intel SGX (ataques de canal lateral) funcionam e podem causar danos reais aos participantes do contrato inteligente. Relativamente ao DECO, ataques relacionados \u00e0 inje\u00e7\u00e3o de tr\u00e1fego s\u00e3o poss\u00edveis, mas o uso de proxy mitiga esses ataques. Portanto, o DECO \u00e9 mais seguro.<\/p>\n<p><\/p>\n<p><strong>Custo<\/strong>: O custo do hardware que suporta a opera\u00e7\u00e3o com Intel SGX \u00e9 maior do que o custo de configura\u00e7\u00e3o do protocolo no DECO. Portanto, o TC \u00e9 mais caro.<\/p>\n<p><\/p>\n<p><strong>Praticidade<\/strong>: Para trabalhar com Town Crier, \u00e9 necess\u00e1rio um hardware especial que suporte TEE. Por exemplo, Intel SGX \u00e9 suportado em processadores da fam\u00edlia Intel Core de sexta gera\u00e7\u00e3o e modelos mais recentes. O DECO permite funcionar com qualquer hardware, embora haja uma configura\u00e7\u00e3o do DECO que utiliza TEE. O processo de configura\u00e7\u00e3o do handshake triplo no DECO pode levar algum tempo, mas isso n\u00e3o se compara \u00e0s limita\u00e7\u00f5es de hardware do TC, tornando o DECO mais pr\u00e1tico.<\/p>\n<p><\/p>\n<h1 id=\"zaklyuchenie\">Conclus\u00e3o<\/h1>\n<p><\/p>\n<p>Ao considerar os dois or\u00e1culos separadamente e compar\u00e1-los em quatro crit\u00e9rios, fica claro que o Town Crier perde para o DECO em tr\u00eas dos quatro pontos. O DECO \u00e9 mais confi\u00e1vel em termos de seguran\u00e7a da informa\u00e7\u00e3o, \u00e9 mais barato e mais pr\u00e1tico, embora a configura\u00e7\u00e3o do protocolo triplo possa levar algum tempo e tenha suas desvantagens, como opera\u00e7\u00f5es adicionais com chaves de criptografia. O TC funciona mais r\u00e1pido que o DECO, mas a vulnerabilidade associada ao ataque de canal lateral o torna suscet\u00edvel \u00e0 perda de privacidade. \u00c9 importante considerar que o DECO foi apresentado em janeiro de 2020 e ainda n\u00e3o passou tempo suficiente para consider\u00e1-lo seguro. O Town Crier j\u00e1 sofreu ataques por 4 anos e passou por v\u00e1rias verifica\u00e7\u00f5es, tornando seu uso justific\u00e1vel em muitos projetos.<\/p>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/518234\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u043d\u0438\u0432\u044b\u0439 \u043d\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043f\u0440\u043e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044e \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d, \u043a\u0440\u0438\u043f\u0442\u043e\u0432\u0430\u043b\u044e\u0442\u044b \u0438 \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u043e \u043a\u0440\u0443\u0442\u043e. \u041d\u043e \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0441\u0445\u0432\u0430\u043b\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438, \u0440\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0435\u0442 \u043a\u0430\u043a \u0440\u0430\u0437 \u043e \u0435\u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0430\u0445 \u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u0445 \u0438\u0445 \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f. \u0412\u043e \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0434 \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0410\u043b\u044c\u0442\u0438\u0440\u0438\u043a\u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u0441, \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0437\u0430\u0434\u0430\u0447\u0430 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u043e\u0433\u043e, \u0446\u0435\u043d\u0437\u0443\u0440\u043e\u0441\u0442\u043e\u0439\u043a\u043e\u0433\u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u0434\u043b\u044f \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":93795,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-93794","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041d\u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u043d\u0438\u0432\u044b\u0439 \u043d\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043f\u0440\u043e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044e \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d, \u043a\u0440\u0438\u043f\u0442\u043e\u0432\u0430\u043b\u044e\u0442\u044b \u0438 \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u043e \u043a\u0440\u0443\u0442\u043e. \u041d\u043e \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0441\u0445\u0432\u0430\u043b\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438, \u0440\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0435\u0442 \u043a\u0430\u043a \u0440\u0430\u0437 \u043e \u0435\u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0430\u0445 \u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u0445 \u0438\u0445 \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/town-crier-vs-deco-kakoj-orakul-ispolzovat-v-blokchejne\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Town Crier vs DECO: \u043a\u0430\u043a\u043e\u0439 \u043e\u0440\u0430\u043a\u0443\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0435? | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u043d\u0438\u0432\u044b\u0439 \u043d\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043f\u0440\u043e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044e \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d, \u043a\u0440\u0438\u043f\u0442\u043e\u0432\u0430\u043b\u044e\u0442\u044b \u0438 \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u043e \u043a\u0440\u0443\u0442\u043e. \u041d\u043e \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0441\u0445\u0432\u0430\u043b\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438, \u0440\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0435\u0442 \u043a\u0430\u043a \u0440\u0430\u0437 \u043e \u0435\u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0430\u0445 \u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u0445 \u0438\u0445 \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/town-crier-vs-deco-kakoj-orakul-ispolzovat-v-blokchejne\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-09-10T05:42:27+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-09-10T05:42:27+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Town Crier vs DECO: qual or\u00e1culo usar no blockchain? | ProHoster","description":"Hoje em dia, apenas os pregui\u00e7osos n\u00e3o escreveram sobre a tecnologia blockchain, criptomoedas e o qu\u00e3o incr\u00edvel isso \u00e9. Mas neste artigo n\u00e3o haver\u00e1 exalta\u00e7\u00e3o dessa tecnologia, em vez disso, abordaremos suas desvantagens e as solu\u00e7\u00f5es para elas.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/town-crier-vs-deco-kakoj-orakul-ispolzovat-v-blokchejne","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Town Crier vs DECO: \u043a\u0430\u043a\u043e\u0439 \u043e\u0440\u0430\u043a\u0443\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0435? | ProHoster","og:description":"\u041d\u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u043d\u0438\u0432\u044b\u0439 \u043d\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043f\u0440\u043e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044e \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d, \u043a\u0440\u0438\u043f\u0442\u043e\u0432\u0430\u043b\u044e\u0442\u044b \u0438 \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u043e \u043a\u0440\u0443\u0442\u043e. \u041d\u043e \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0441\u0445\u0432\u0430\u043b\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438, \u0440\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0435\u0442 \u043a\u0430\u043a \u0440\u0430\u0437 \u043e \u0435\u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0430\u0445 \u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u0445 \u0438\u0445 \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f.","og:url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/town-crier-vs-deco-kakoj-orakul-ispolzovat-v-blokchejne","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-09-10T05:42:27+00:00","article:modified_time":"2020-09-10T05:42:27+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"93794","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 11:39:33","updated":"2026-02-09 15:05:02","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/93794","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=93794"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/93794\/revisions"}],"predecessor-version":[{"id":158360,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/93794\/revisions\/158360"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/93795"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=93794"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=93794"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=93794"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}