14 research outputs found

    On-Chain Smart Contract Verification over Tendermint

    Get PDF
    Smart contracts are computer code that runs in blockchain and expresses the rules of an agreement among parties. A bug in their code has major consequences, such as rule violations and security attacks. Smart contracts are immutable and cannot be easily replaced to patch a bug. To overcome these problems, there exist automatic static analyzers that find bugs before smart contracts are installed in blockchain. However, this off-chain verification is optional: programmers are not forced to use it. This paper defines on-chain verification instead, that occurs inside the same blockchain nodes, when the code of smart contracts is installed. It acts as a mandatory entry filter that bans code that does not abide to the verification rules, that are consequently part of the consensus rules of the blockchain. Thus, an improvement in on-chain verification entails a consensus update of the network. This paper provides an implementation of on-chain verification for smart contracts written in the Takamaka subset of Java, running as a Tendermint application. It shows that on-chain verification works, reporting actual experiments

    Fungible and non-fungible tokens with snapshots in Java

    Get PDF
    Many blockchain applications exchange tokens, such as bitcoin and ether, or implement them through smart contracts. A trend in blockchain is to apply standards for token interoperability, unchanged, from platform to platform, easing the design challenges with trusted and widely-used specifications. However, the exploitation of the target language semantics can result in technological advantages and more efficient contracts. This paper presents a re-engineering of OpenZeppelin’s implementation of the ERC-20 and ERC-721 standards in Takamaka, a Java framework for programming smart contracts. It describes a sound solution to the issue about the types allowed for the token holders and a novel implementation for making snapshots of tokens, based on tree maps, that is possible in Java, but not in Solidity, more efficient than the literal translation in Java from Solidity, within the Java virtual machine. Moreover, it applies to ERC-721 as well, where a snapshot mechanism was previously missing. The same snapshot mechanism can also be applied beyond the smart contracts for tokens

    Information Flow Analysis for Detecting Non-Determinism in Blockchain

    Get PDF
    A mandatory feature for blockchain software, such as smart contracts and decentralized applications, is determinism. In fact, non-deterministic behaviors do not allow blockchain nodes to reach one common consensual state or a deterministic response, which causes the blockchain to be forked, stopped, or to deny services. While domain-specific languages are deterministic by design, general purpose languages widely used for the development of smart contracts such as Go, provide many sources of non-determinism. However, not all non-deterministic behaviours are critical. In fact, only those that affect the state or the response of the blockchain can cause problems, as other uses (for example, logging) are only observable by the node that executes the application and not by others. Therefore, some frameworks for blockchains, such as Hyperledger Fabric or Cosmos SDK, do not prohibit the use of non-deterministic constructs but leave the programmer the burden of ensuring that the blockchain application is deterministic. In this paper, we present a flow-based approach to detect non-deterministic vulnerabilities which could compromise the blockchain. The analysis is implemented in GoLiSA, a semantics-based static analyzer for Go applications. Our experimental results show that GoLiSA is able to detect all vulnerabilities related to non-determinism on a significant set of applications, with better results than other open-source analyzers for blockchain software written in Go

    Information Flow Analysis for Detecting Non-Determinism in Blockchain (Artifact)

    Get PDF
    A mandatory feature for blockchain software, such as smart contracts and decentralized applications, is determinism. In fact, non-deterministic behaviors do not allow blockchain nodes to reach one common consensual state or a deterministic response, which causes the blockchain to be forked, stopped, or to deny services. While domain-specific languages are deterministic by design, general-purpose languages widely used for the development of smart contracts such as Go, provide many sources of non-determinism. However, not all non-deterministic behaviours are critical. In fact, only those that affect the state or the response of the blockchain can cause problems, as other uses (for example, logging) are only observable by the node that executes the application and not by others. Therefore, some frameworks for blockchains, such as Hyperledger Fabric or Cosmos SDK, do not prohibit the use of non-deterministic constructs but leave the programmer the burden of ensuring that the blockchain application is deterministic. In this paper, we present a flow-based approach to detect non-deterministic vulnerabilities which could compromise the blockchain. The analysis is implemented in GoLiSA, a semantics-based static analyzer for Go applications. Our experimental results show that GoLiSA is able to detect all vulnerabilities related to non-determinism on a significant set of applications, with better results than other open-source analyzers for blockchain software written in Go

    Neotropical Freshwater Fishes: A dataset of occurrence and abundance of freshwater fishes in the Neotropics

    Get PDF
    The Neotropical region hosts 4225 freshwater fish species, ranking first among the world's most diverse regions for freshwater fishes. Our NEOTROPICAL FRESHWATER FISHES data set is the first to produce a large-scale Neotropical freshwater fish inventory, covering the entire Neotropical region from Mexico and the Caribbean in the north to the southern limits in Argentina, Paraguay, Chile, and Uruguay. We compiled 185,787 distribution records, with unique georeferenced coordinates, for the 4225 species, represented by occurrence and abundance data. The number of species for the most numerous orders are as follows: Characiformes (1289), Siluriformes (1384), Cichliformes (354), Cyprinodontiformes (245), and Gymnotiformes (135). The most recorded species was the characid Astyanax fasciatus (4696 records). We registered 116,802 distribution records for native species, compared to 1802 distribution records for nonnative species. The main aim of the NEOTROPICAL FRESHWATER FISHES data set was to make these occurrence and abundance data accessible for international researchers to develop ecological and macroecological studies, from local to regional scales, with focal fish species, families, or orders. We anticipate that the NEOTROPICAL FRESHWATER FISHES data set will be valuable for studies on a wide range of ecological processes, such as trophic cascades, fishery pressure, the effects of habitat loss and fragmentation, and the impacts of species invasion and climate change. There are no copyright restrictions on the data, and please cite this data paper when using the data in publications.Fil: Tonella, Lívia Helena. Universidade Estadual de Maringá. Departamento de Engenharia Química. Laboratorio de Pesquisa.; BrasilFil: Ruaro, Renata. Universidade Estadual de Maringá. Departamento de Engenharia Química. Laboratorio de Pesquisa.; BrasilFil: Daga, Vanessa Salete. Universidade Federal do Paraná; BrasilFil: Garcia, Diego Azevedo Zoccal. Universidade Estadual de Londrina; BrasilFil: Barroso Vitorino Júnior, Oscar. Instituto Natureza do Tocantins-Naturatins; BrasilFil: Lobato de Magalhães, Tatiana. Universidad Autonoma de Queretaro.; MéxicoFil: Reis, Roberto Esser. Museu de Ciências e Tecnologia; BrasilFil: Di Dario, Fabio. Universidade Federal do Rio de Janeiro; BrasilFil: Petry, Ana Cristina. Universidade Federal do Rio de Janeiro; BrasilFil: Mincarone, Michael Maia. Universidade Federal do Rio de Janeiro; BrasilFil: Assis Montag, Luciano Fogaça. Universidade Federal do Pará; BrasilFil: Pompeu, Paulo Santos. Universidade Federal de Lavras; BrasilFil: Teixeira, Adonias Aphoena Martins. Universidade Estadual da Paraiba; BrasilFil: Carmassi, Alberto Luciano. Universidade Federal de Sao Paulo; Brasil. Universidade Federal do São Carlos; BrasilFil: Sánchez, Alberto J.. Universidad Juárez Autónoma de Tabasco; MéxicoFil: Giraldo Pérez, Alejandro. Universidade Federal de Minas Gerais; BrasilFil: Bono, Alessandra. Universidad de Vale do Rio dos Sinos; BrasilFil: Datovo, Aléssio. Universidade de Sao Paulo; BrasilFil: Flecker, Alexander S.. Cornell University; Estados UnidosFil: Sanches, Alexandra. Universidade de Sao Paulo; Brasil. Universidade Federal do São Carlos; BrasilFil: Godinho, Alexandre Lima. Universidade Federal de Minas Gerais; BrasilFil: Matthiensen, Alexandre. Embrapa Suínos e Aves; BrasilFil: Peressin, Alexandre. Universidade Federal de Lavras; BrasilFil: Silva Hilsdorf, Alexandre Wagner. Universidade de Mogi das Cruzes; BrasilFil: Barufatti, Alexéia. Universidade Federal da Grande Dourados; BrasilFil: Hirschmann, Alice. Universidade Federal do Pampa; BrasilFil: Jung, Aline. Universidade Do Estado de Mato Grosso (unemat);Fil: Cruz Ramírez, Allan K.. Universidad Juárez Autónoma de Tabasco; MéxicoFil: Braga Silva, Alline. Instituto Federal de Goiás; BrasilFil: Cunico, Almir Manoel. Universidade Federal do Paraná; BrasilFil: Tagliaferro, Marina Beatriz. Consejo Nacional de Investigaciones Científicas y Técnicas. Centro Austral de Investigaciones Científicas; Argentina. Consejo Nacional de Investigaciones Científicas y Técnicas. Centro Científico Tecnológico Conicet - Córdoba. Instituto de Diversidad y Ecología Animal. Universidad Nacional de Córdoba. Facultad de Ciencias Exactas Físicas y Naturales. Instituto de Diversidad y Ecología Animal; Argentin

    Re-engineering ERC-20 Smart Contracts with Efficient Snapshots for the Java Virtual Machine

    No full text
    Blockchain replicates the execution of transactions in a decentralized network of machines, supporting trust since each machine, by itself, cannot violate the rules for the transactions. Many applications of blockchains are related to the exchange of tokens, ie. valuable units that can be native, such as bitcoin and ether, or implemented in software, through smart contracts. Standards ensure token interoperability among decentralized applications of a certain platform, but they are general enough to be used in other contexts as well. A trend in blockchain is to implement such standards from a platform to another one, easing the design challenges with trusted and widely-used specifications. Exploiting the target language semantic can result in technological advantages with more efficient contracts. This paper presents a re-engineering of OpenZeppelin\u2019s implementation of the ERC-20 standard for fungible tokens on Takamaka, a subset of Java for programming smart contracts in the Hotmoka blockchain. It starts with a literal translation from Solidity to Takamaka, but then describes a novel implementation for making snapshots of tokens, based on tree maps, that is possible in Java, but not in Solidity, and shows that it is much more efficient than the literal translation in Java from Solidity, within the Java Virtual Machine

    Van Dyck a Genova. Grande pittura e collezionismo

    No full text
    Mostra di livello internazionale su uno dei massimi ritrattisti dell'et\ue0 barocca, focalizzata sul suo periodo genovese (1621-1627), sui suoi rapporti con la committenza, con l'ambiente locale, con la comunit\ue0 pittorica fiamming

    Ensuring determinism in blockchain software with GoLiSA: an industrial experience report

    No full text
    Ensuring determinism is mandatory when writing blockchain software. When determinism is not met it can lead to serious implications in the blockchain network while compromising the software development, release, and patching processes. In the industrial context, it is widespread to adopt general-purpose languages, such as Go, for developing blockchain solutions. However, it is not surprising that non-deterministic behaviors may arise, being these programming languages not originally designed for blockchain purposes. In this paper, we present an experience report on ensuring determinism in blockchain software with GoLiSA, a static analyzer based on abstract interpretation for Go applications, in an industrial context. In particular, we ran GoLiSA on Commercio.network, a blockchain-based solution for exchanging electronic documents in a legally binding way. Thanks to GoLiSA, non-trivial bugs got detected and the analysis performed made it possible to identify the critical points where to apply the fixes

    Individual and contextual factors related to dental caries in underprivileged brazilian adolescents

    No full text
    Investigate the individual and contextual variables related to caries in underprivileged adolescents, and the disparity in distribution of the disease. Methods Cross-sectional analytical study, conducted in the city of Piracicaba, SP, Brazil, in 2012. The probabilistic sample was composed of 1,179 adolescents from 15–19 years of age, randomly selected from 21 state schools and 34 Primary Health Units – Family Health (PHU-FH). The dependent variables studied were number of decayed teeth and caries experience (DMFT). The independent variables were classified into individual (clinical, sociodemographic, psychosocial, self-perception, impact on oral health, access to services, and quality of life) and contextual (social exclusion index, total number of residents in suburb, literacy rate, and the following variables given in percentages: residences in the home ownership category, provision of domestic sewerage, trash collection, families with income of over 1 minimum wage per month, and families without monthly income) variables. The multilevel regression model was estimated by the PROC GLIMMIX (Generalized Linear Models-Mixed) procedure, considering the individual variables as Level 1 and the contextual variables of the suburbs as Level 2. Adjustment of the model was evaluated by -2 Res Log Likelihood with α = 0.05. Results As regards the individual variables, adolescents who declared having a prison inmate in the Family and resided in homes with a larger number of persons, showed a higher number of decayed teeth. There were a larger number of decayed teeth, a higher DMFT value, and worse self-perception as regards the health of their teeth and mouth. Other variables, such as being of the female gender, age and time since last visit to the dentist were related to the DMFT index. As regards the contextual variables, the DMFT was lower in suburbs with greater access to domestic sewage, and the number of decayed teeth was higher in suburbs with the worst social exclusion indices. Conclusion Individual and contextual variables were associated with the presence of caries and DMFT index in underprivileged adolescents, indicating that they must be taken into consideration in the formulation of policies directed towards oral health promotion and prevention activities in this group15FUNDAÇÃO DE AMPARO À PESQUISA DO ESTADO DE SÃO PAULO - FAPESP#2011/03657-5; #2011/01768-

    Individual and contextual factors related to dental caries in underprivileged Brazilian adolescents

    Get PDF
    Background: Investigate the individual and contextual variables related to caries in underprivileged adolescents, and the disparity in distribution of the disease.Methods: Cross-sectional analytical study, conducted in the city of Piracicaba, SP, Brazil, in 2012. The probabilistic sample was composed of 1,179 adolescents from 15-19 years of age, randomly selected from 21 state schools and 34 Primary Health Units - Family Health (PHU-FH). The dependent variables studied were number of decayed teeth and caries experience (DMFT). The independent variables were classified into individual (clinical, sociodemographic, psychosocial, self-perception, impact on oral health, access to services, and quality of life) and contextual (social exclusion index, total number of residents in suburb, literacy rate, and the following variables given in percentages: residences in the home ownership category, provision of domestic sewerage, trash collection, families with income of over 1 minimum wage per month, and families without monthly income) variables. The multilevel regression model was estimated by the PROC GLIMMIX (Generalized Linear Models-Mixed) procedure, considering the individual variables as Level 1 and the contextual variables of the suburbs as Level 2. Adjustment of the model was evaluated by -2 Res Log Likelihood with alpha = 0.05.Results: As regards the individual variables, adolescents who declared having a prison inmate in the Family and resided in homes with a larger number of persons, showed a higher number of decayed teeth. There were a larger number of decayed teeth, a higher DMFT value, and worse self-perception as regards the health of their teeth and mouth. Other variables, such as being of the female gender, age and time since last visit to the dentist were related to the DMFT index. As regards the contextual variables, the DMFT was lower in suburbs with greater access to domestic sewage, and the number of decayed teeth was higher in suburbs with the worst social exclusion indices.Conclusion: Individual and contextual variables were associated with the presence of caries and DMFT index in underprivileged adolescents, indicating that they must be taken into consideration in the formulation of policies directed towards oral health promotion and prevention activities in this group
    corecore