𝗛𝗼𝗷𝗲 𝗲𝘀𝘁𝗮𝗺𝗼𝘀 𝗮 𝗻𝗼𝘃𝗮𝗿 𝗼 𝗖𝗵𝗲𝗰𝗸𝗲𝗿 𝗱𝗲 𝗩𝗶𝗼𝗹𝗮𝗰̧𝗮𝗼 𝗔𝘁𝗼𝗺𝗶𝗰𝗶𝘁𝘆:
O nosso quarto verificador Rust na série em andamento de tópicos Chain-Fox sobre concorrência e questões de segurança em projetos Rust.
Erros sutis de concorrência podem minar silenciosamente os seus sistemas. A nossa próxima ferramenta traz esses problemas à luz.
Isto marca a continuação da nossa análise aprofundada dos verificadores Chain-Fox para Rust.🧵

𝗤𝘂𝗲 𝗳𝗮𝘇 𝗲𝘀𝘁𝗲 𝗰𝗵𝗲𝗰𝗸𝗲𝗿
Ele detecta potenciais condições de corrida causadas por operações atómicas intercaladas em programas Rust multi-threaded.
Operações atómicas que parecem seguras isoladamente podem violar a lógica quando combinadas sem a devida sincronização.
𝗢 𝗽𝗿𝗼𝗯𝗹𝗲𝗺
Quando múltiplas operações atómicas acedem à mesma variável, e esses acessos são intercalados por operações atómicas de outro thread, isso pode quebrar os invariantes do programa.
Isto resulta em bugs lógicos que são difíceis de reproduzir e ainda mais difíceis de depurar.
𝗣𝗼𝗿𝗾𝘂𝗲 𝗲́ 𝗳𝗼𝗿𝗺𝗮 𝗱𝗲 𝗮𝗰𝗼𝗿𝗱𝗼
Esses bugs não travam o seu programa
Eles fazem com que ele se comporte de forma incorreta
Em sistemas de blockchain ou aplicações concorrentes, isso pode levar a mensagens perdidas, consenso quebrado ou estado obsoleto.
𝗖𝗼𝗺𝗼 𝗼 𝗰𝗵𝗲𝗰𝗸𝗲𝗿 𝗳𝗮𝗯𝗿𝗶𝗰𝗮
O Verificador de Violação de Atomicidade analisa a Representação Intermediária de Nível Médio (MIR) do seu código Rust
Ele identifica padrões onde operações atômicas carecem de sincronização adequada
Ele reporta:
• Os tipos das operações atômicas
• Os locais do código onde ocorrem
𝗜𝗺𝗽𝗮𝗰𝘁𝗼 𝗻𝗼 𝗺𝗼𝗻𝗱𝗼 𝗿𝗲𝗮𝗹
Isto não é apenas teoria. Aqui está um bug que descobrimos no parity-ethereum
𝗙𝗶𝘅𝗮𝗻𝗱𝗼 𝗮 𝗳𝗼𝗿𝗺𝗮𝗰𝗶𝗼𝗻𝗮𝗹 𝗮𝘁𝗼𝗺𝗶𝗰𝗶𝘁𝘆 𝗻𝗼 𝗱𝗲𝘃𝗲𝗹𝗼𝗽𝗺𝗲𝗻𝘁𝗼-𝗽𝗲𝗿-𝗽𝗮𝗿𝗮𝗺𝗲𝘁𝗿𝗼 𝗽𝗼𝗿 𝗖𝗵𝗮𝗶𝗻-𝗙𝗼𝘅 · Pull Request #11277
openethereum/parity-ethereum
𝗣𝗼𝗿𝗾𝘂𝗲 𝗲́ 𝗰𝗿𝘂𝗰𝗶𝗮𝗹 𝗽𝗮𝗿𝗮 𝗱𝗲𝘃𝗲𝗹𝗼𝗽𝗮𝗱𝗼𝗿𝗲𝘀 𝗲𝗺 𝗥𝘂𝘀𝘁
• Rust oferece segurança de memória, mas a concorrência continua a ser um campo minado lógico
• Operações atômicas podem interagir silenciosamente entre threads
• O nosso verificador captura o que o compilador não consegue
Construa código concorrente correto com confiança.
𝗔𝗵𝗮 𝗳𝗮𝘇𝗲𝗺𝗼𝘀 𝗮𝗵𝗼𝗿𝗮 𝗼𝗯𝗿𝗮𝗻𝗱𝗼 𝗾𝘂𝗮𝘁𝗿𝗼 𝗰𝗵𝗲𝗰𝗸𝗲𝗿𝘀 𝗱𝗼 𝗥𝘂𝘀𝘁 𝗻𝗼 𝘀𝘂𝗶𝘁𝗲 𝗖𝗵𝗮𝗶𝗻-𝗙𝗼𝘅
• Verificador Double-Lock
• Verificador Conflict-Lock
• Verificador de Uso Incorreto de Condvar
• Verificador de Violação de Atomicidade
Mais estão a caminho. Vamos cobrir o próximo no nosso próximo tópico.
87
4,79 mil
O conteúdo apresentado nesta página é fornecido por terceiros. Salvo indicação em contrário, a OKX não é o autor dos artigos citados e não reivindica quaisquer direitos de autor nos materiais. O conteúdo é fornecido apenas para fins informativos e não representa a opinião da OKX. Não se destina a ser um endosso de qualquer tipo e não deve ser considerado conselho de investimento ou uma solicitação para comprar ou vender ativos digitais. Na medida em que a IA generativa é utilizada para fornecer resumos ou outras informações, esse mesmo conteúdo gerado por IA pode ser impreciso ou inconsistente. Leia o artigo associado para obter mais detalhes e informações. A OKX não é responsável pelo conteúdo apresentado nos sites de terceiros. As detenções de ativos digitais, incluindo criptomoedas estáveis e NFTs, envolvem um nível de risco elevado e podem sofrer grandes flutuações. Deve considerar cuidadosamente se o trading ou a detenção de ativos digitais é adequado para si à luz da sua condição financeira.