Ir al contenido

ETSIINF en Twitter ETSIINF en Facebook
Inicio > Tablón de anuncios

Automatically generating tests for a Blockchain — finding exploits early in development

7 Nov. 15:00 H-1003.

Anuncio. Enviado por decanato válido desde 30/10/2019 hasta 07/11/2019 (caducado)


Automatically generating tests for a Blockchain — finding exploits early in development


Despite the seemingly absent killer application, blockchain technology draws a lot of attention these days. The advanced cryptographic techniques used in blockchains make it possible to build applications that remove the traditionally necessary trusted partner. Instead of being reliable on some institution providing and hosting a secure database for transactions, a distributed decentralised blockchain can be used. In theory, even though none of the parties has to be trusted, one can trust the system as a whole.

The well known bitcoin crypto currency is possibly the best known example of a blockchain. But blockchains can be used for more than just simple payments and for example Ethereum combines blockchains with smart contracts. Aeterium is a relatively new blockchain project that aims to be the next technology platform for blockchain development by extending payment and smart contracts by many additional features. The more features a blockchain has, the more risk that something is implemented wrongly or that a feature interaction causes an undesired effect. Small mistakes can have large consequence as we learn from many blockchain projects that lost a lot of assets due to such mistakes.


In this presentation the Aeternity blockchain is explained in more detail. We will focus on the QuickCheck testing technology, originating from the functional programming community. QuickCheck allows automatic test case generation from specifications. Different from manually crafted test cases, QuickCheck specifications grow linearly in the number of features added. This allows to generate thousands of meaningful tests that find faults that went uncovered by manually crafted tests. In this way we find faults early in development, making the blockchain more robust and safe.