Eu assumi que "O DuskEVM suporta Solidity" queria dizer que os desenvolvedores poderiam aparecer com ferramentas Ethereum já existentes e pronto. As próprias docs de quickstart do Dusk adicionam silenciosamente um passo que a maioria das pessoas pula: verificar a fonte.
Fazer o deploy é a parte fácil. O DuskEVM usa o Blockscout como seu explorador, e conseguir verificar um contrato lá, em "Verify & Publish", significa que as configurações de build relevantes, a versão do compilador, a configuração do otimizador, os arquivos de origem, os argumentos do construtor precisam reproduzir o bytecode que está sendo realmente implantado.
Isso é um patamar diferente de compatibilidade com EVM. O deploy prova que o código consegue rodar. A verificação permite que outra pessoa confira o que está realmente rodando. Um contrato pode ser implantado e funcionar enquanto ainda estiver sem verificação, impedindo que qualquer outra pessoa consiga checar de forma independente se o código-fonte publicado realmente corresponde ao que está ao vivo.
O que significa que "compatível com EVM" e "pronto para desenvolvedores" não são exatamente a mesma afirmação. Uma diz respeito a se o seu código roda aqui. A outra diz respeito a se um auditor, uma instituição ou um usuário consegue realmente confirmar se o que está rodando corresponde ao que foi alegado.
"Uma cadeia pode rodar seu contrato Solidity e, ainda assim, deixar você sem conseguir provar o que esse contrato realmente é."
O que eu gostaria de ver a seguir: se um contrato implantado pelo caminho padrão do Solidity/Hardhat pode ser verificado de forma confiável com relação ao bytecode implantado, e não apenas implantado com sucesso.
#dusk $DUSK @Dusk
Fazer o deploy é a parte fácil. O DuskEVM usa o Blockscout como seu explorador, e conseguir verificar um contrato lá, em "Verify & Publish", significa que as configurações de build relevantes, a versão do compilador, a configuração do otimizador, os arquivos de origem, os argumentos do construtor precisam reproduzir o bytecode que está sendo realmente implantado.
Isso é um patamar diferente de compatibilidade com EVM. O deploy prova que o código consegue rodar. A verificação permite que outra pessoa confira o que está realmente rodando. Um contrato pode ser implantado e funcionar enquanto ainda estiver sem verificação, impedindo que qualquer outra pessoa consiga checar de forma independente se o código-fonte publicado realmente corresponde ao que está ao vivo.
O que significa que "compatível com EVM" e "pronto para desenvolvedores" não são exatamente a mesma afirmação. Uma diz respeito a se o seu código roda aqui. A outra diz respeito a se um auditor, uma instituição ou um usuário consegue realmente confirmar se o que está rodando corresponde ao que foi alegado.
"Uma cadeia pode rodar seu contrato Solidity e, ainda assim, deixar você sem conseguir provar o que esse contrato realmente é."
O que eu gostaria de ver a seguir: se um contrato implantado pelo caminho padrão do Solidity/Hardhat pode ser verificado de forma confiável com relação ao bytecode implantado, e não apenas implantado com sucesso.
#dusk $DUSK @Dusk
