Blockchain Archives - Page 2 of 3 - Ekino FR

Il est également intéressant de noter que cette solution est davantage connue par les CSP+ de moins de 35 ans. Une génération qui semble les avoir adoptées comme une solution de paiement à part entière. Ce sont 44% des 25-34 ans qui connaissent les cryptomonnaies qui déclarent que la possibilité de payer avec en magasin les inciterait à se rendre dans une enseigne qui le propose.

Pour en savoir plus sur cette étude, lisez le communiqué de presse.

Infographie représentant les Français et les nouveaux moyens de paiement selon une étude CSA par ekino, EY, Global POS et Smartchain. Elle démontre que les cryptomonnaies se démocratisent en France avec environ 95% des français se disant prêts à régler leurs achats avec un nouveau moyen de paiement. Mais aussi plus de 7 français sur 10 connaissent les cryptomonnaies. Les cryptomonnaies séduise les moins de 35 ans avec notamment 44% d'entre eux qui déclarent que la possibilité de payer en cryptomonnaie en magasin les inciterait à se rendre dans une enseigne qui le propose. Enfin, les utilisateurs sont conquis par ces technologies. En effet, 80% estiment qu'il s'agit d'une solution de paiement sécurisée et 76% estiment que les cryptomonnaies devraient davantage être utilisées en France
Infographie : Les Français et les nouveaux moyens de paiement

Comment la blockchain peut révolutionner la vente de billets ? [Tribune publiée dans le JDN le 04/12]

Depuis une dizaine d’années, le marché de la billetterie est en pleine révolution, notamment dû à l’augmentation continue des réservations en ligne, et de l’arrivée de revendeurs proposant des services supplémentaires comme l’assurance annulation, la réservation via des applications… Pour se démarquer, les acteurs du marché de la billettique devront prendre en compte dans leur […]

Lire la suite de Comment la blockchain peut révolutionner la vente de billets ? [Tribune publiée dans le JDN le 04/12]

Miniscript est un projet personnel de Peter Wuille (@pwuille) et Andrew Poelstra, développeurs de Bitcoin Core, qui vise à changer cet état de fait et à démocratiser l’emploi des scripts bitcoin pour des cas d’usage plus complexes.

Cette présentation organisé par Sosthène s’adresse à tous ceux qui sont intéressés par Bitcoin, aucune connaissance préalable n’est requise.

Le meet-up aura lieu au sein des locaux d’ekino ce jeudi 7 novembre au 157 rue Anatole France (M.Pont de Levallois – L.3) 92300 Levallois-Perret de 19h00 à 21h00.

Intéressé ? Pour vous inscrire, ça se passe ici.

Ekino accompagne Global P.O.S pour le paiement en bitcoin dans près de 25 000 points de vente français

En effet, les 25 000 points de vente, clients de Global P.O.S pourront décider ou non d’utiliser cette solution pour permettre à leurs clients de payer en Bitcoin. Une opportunité pour les marques de proposer un nouveau service au bénéfice de l’expérience client. Selon l’étude Kantar TNS 2018, on estime que plus de quatre millions […]

Lire la suite de Ekino accompagne Global P.O.S pour le paiement en bitcoin dans près de 25 000 points de vente français

The Libra project is presented as a payment service with its own digital currency and created originally by the Facebook company. However, since its official launch on June 18th 2019, the Libra project encountered multiple regulation hurdles. Facebook recently announced that the Libra crypto-currency would not launch until all regulatory concerns have been met with the proper appropriate approvals.

Despite this troublesome regulatory situation, the Libra Association released the first prototype of the Libra Blockchain technology alongside multiple technical whitepapers, allowing us to have a first overview and better understanding of the Libra project.

The Libra Project

The Libra project is, as its logo suggests, three components:

libra

~ the Libra Blockchain
~ the Libra Crypto-currency
~ the Libra Association

The Libra Blockchain will be built as a secure, scalable, and reliable blockchain system that offers a global, open, instant and low-cost economic network. It will be primarily designed as a system to support the Libra crypto-currency, but will allow anyone to build and deploy smart-contracts on top of it, similarly to Ethereum.

The Libra Crypto-currency (or LibraCoin) is the native currency of the Libra Blockchain, and will be backed with a collection of low-volatility assets, including bank deposits and government securities in currencies from stable and reputable central banks (except gold assets). As the value of Libra will be effectively linked to a basket of fiat currencies, from the point of view of any specific currency, there will be fluctuations in the value of Libra. This decision should make Libra Coin a low-volatility cryptocurrency, combined with a smart-contract platform that allows the creation of new financial innovations.

The Libra Association is an independent group governing the Libra project and tasked with evolving the ecosystem. It is currently run by 28 Founding Members (which includes Facebook), however, the association is still looking for a total of 100 members. Each of the members has an equal vote power in the decision-making progress, which allows no bias in the direction of the project. Furthermore, no financial institution was integrated to the Libra association.

In-depth analysis of the Libra Blockchain:

The Libra Blockchain will serve as a solid foundation for financial services, including a new global currency, which could meet the daily financial needs of billions of people. The blockchain has been built from the ground up to prioritize scalability, security, efficiency in storage and throughput, and future adaptability.

As described in the Libra protocol paper, the protocol used by the Libra blockchain is designed as a Proof-of-Stake system (similar to the Peercoin and Decred blockchain projects). However, because the Libra project is still very young and experimental, the network will only be controlled by the Libra Association, which will be the only entity allowed to run validator nodes in the Libra network, and thus, creating a persistent point of centralized control.

This marks the major difference between the Libra blockchain and others such as Ethereum and Bitcoin; Ethereum is considered permissionless as anyone can freely join the network and authenticate the data. However, since Libra will be running with a restricted number of validator nodes, the system will be permissioned. And thus, the Libra Blockchain would be fairly similar to a Delegated Proof-of-Stake system at launch (used by the Lisk and EOS blockchain projects.).

The Libra blockchain will use a modified Byzantine Fault Tolerance algorithm called LibraBFT, which will be a variant of the HotStuff consensus protocol that allows a network with potentially malicious validators to maintain a single, consistent database. It does so by executing transaction scripts and coming to an agreement on their execution using the authenticated data structures.

What’s more, the ledger history of the Libra blockchain has no concept of block of transactions; the data structure of the ledger history is a set of signed ledger states. Validator nodes make commitments for each ledger state, and all of the historical ledger states are also committed to in Merkle trees.

Thus, the Libra Blockchain is a single data structure that records the history of transactions and states over time. Blocks are not present in the way data is stored in the system, however, the consensus protocol LibraBFT will batch transactions inside blocks for the validator nodes as a mean for optimization and to drive the consensus forward.

In terms of performance, these numbers cannot be confirmed with the Libra testnet, however, the Libra team anticipates the protocol to support over 1,000 payment transactions per second, with an approximate 10 seconds finality time between its submission and confirmation. In comparison, Bitcoin does approximately 7 tx/s (excluding off-chain solution such as Lightning Network) and Ethereum can process 15 tx/s. In addition, in comparison with more traditional payment systems, Visa has an approximate 1700 transactions per second transaction speed, and Mastercard processes around 5000 payment transactions per second. This makes the Libra network underperforming compared to these networks, however, the Libra Association is considering new scaling solutions such as payment channels. Therefore, off-chain implementations such as Bitcoin’s Lightning Network could come into place to increase the Libra network performances.

Libra and the smart-contracts

The Libra Blockchain introduces a new programming language called Move for implementing a custom transaction logic and smart-contracts in the Libra Blockchain.
To create smart-contracts in the Libra blockchain, we use Modules which contain Move code that declares resources types and procedures. Compared to Ethereum, which uses Solidity, Move follows the model of functional language, which strictly separate the code and the data.

image4

To illustrate, when creating a token on Ethereum, we would deploy a smart-contract that would contain a mapping with user addresses and their balance, and the code for transferring and managing the tokens. Move, on the other hand, would deploy a new resource type (or data type), corresponding to the new token, and the code to operate the token. Each token resource would be generated inside the user account and strictly follows the rules of the contract code inside the Move module.

As we can see on the illustration above, Ethereum would store on a single address the Smart-contract component. This allows anyone with the smart-contract address to visualize the code of the contract and to check the balance values of the Token holders. On Libra however, everything is separated and thus, the data belongs to the user account and not the contract.

Libra: Between Centralization and Regulation

In conclusion, the Libra blockchain draws a lot of inspiration from existing Blockchain projects such as Ethereum, and made changes on aspects it considered necessary.
We have to keep in mind, however, that the Libra technology is still a work-in-progress, and many functionalities still need to be flesh-out, more specifically the ability for a user to publish custom Move modules.

Given these points, one important aspect of the Libra Blockchain we have to keep in mind is that the network will be centralized at launch; by having 100 validated members in the network (28 being confirmed as of July 2019), Facebook promoting Libra as a permissionless network sounds like false advertisement.

Despite this issue, the company promised to move into a permissionless network in the coming 5 years. The Libra blockchain would become one of the first projects to switch from a permissioned to a permissionless network.
To clarify, after some research, it turns out the Libra association created this permissioned model as an effort to make KYC (Know your Customer) and AML (Anti-Money laundering) easier to track against money-stealing and terrorism. Without this, it would have been an immediate deal breaker for highly regulated corporations such as Visa, Uber, Facebook, Lyft and more… The network has to be centralized enough to prevent any illicit activity by freezing the funds, but also decentralized enough to not discriminate against any participant.

This, however, opens up a dilemma for the Facebook company and the Libra association; not everyone wants to prove their identity every time they want to execute a transaction. In addition, after the Libra’s audition at the American congress, it became clear that Facebook privacy issues and data collection could become another underlying issue, which could lead to the exploitation of people’s personal data through the Calibra wallet. The cooperation with law enforcement agencies and lawmakers after the congressional hearings came to such an extent that the Libra developers are now discussing the limitation of not allowing anyone sending transactions; only AML/KYC wallets by Calibra would be allowed to emit transactions.

This situation consequently puts Libra in a difficult position, which could be solved with an improved system design and a more creative approach despite not looking that way.

For people who would like to learn more about the development side of the Libra project, a community repository has been created and gathers all the projects developed around Libra. An unofficial newsletter is also available for news about the Libra association and regulations issues surrounding it.

Meet up Global P.O.S et ekino – Blockchain et Retail

Blockchain : Confiance, Transparence et Expérience Ces monnaies virtuelles qui ne nécessitent plus l’intervention d’un tiers pourraient être dépensées dans près d’une trentaine d’enseignes qui choisiront d’utiliser la solution EasyWallet dès 2020. En effet, les 25 000 points de vente, clients de Global P.O.S pourront décider ou non d’utiliser cette solution pour permettre à leurs […]

Lire la suite de Meet up Global P.O.S et ekino – Blockchain et Retail

En juin dernier, le forum Planet A® faisait son grand retour en centrant sa réflexion sur la problématique des sols, sous le titre « Terre, matière, planète : la qualité des sols pour la santé du vivant ».

En présence du Ministre de l’Agriculture et de l’Alimentation, ce forum rassemblant plus de 390 acteurs venus de 32 pays (chercheurs, institutions, décideurs politiques, entreprises, experts, agriculteurs…) a pour vocation d’imaginer les solutions qui réinventeront l’agriculture de demain. 

Notre Blockchain Lead, Hugo Briand a eu l’honneur de donner une conférence sur les possibilités offertes par les technologies blockchain pour transformer ce secteur d’activité.

Pour plus d’infos concernant l’événément, ça se passe ici.

Comment détecter plus facilement les fake news grâce à la blockchain ? Une expérience menée par ekino

Cet article fait suite à celui sur l’industrialisation de smart contracts avec truffle. Notre projet Pour répondre à ce besoin, nous avons écrit un scénario Gherkin (Gherkin est le langage utilisé pour décrire les tests fonctionnels), qui est le suivant : Étant donné que je suis connecté sur Slack. Et que je vois un lien […]

Lire la suite de Comment détecter plus facilement les fake news grâce à la blockchain ? Une expérience menée par ekino

You can also read this article in English.

Depuis l’incident du Hack de la DAO, la sécurisation des smart contracts est devenue un enjeu important dans le développement d’applications décentralisées sur Ethereum. Un des moyens de sécuriser est la mise en place d’un processus d’industrialisation de ces smart contracts. Nous allons voir comment automatiser les tests unitaires, fonctionnels ou d’intégration. Une fois que nous aurons ce processus d’industrialisation, nous pourrons automatiser nos tests de sécurisation. Nous utiliserons Truffle pour mettre en place notre processus d’intégration continue ; ce qui nous permet de valider chacune des modifications apportées à notre code par rapport à nos exigences de qualité.

Truffle est  un framework de développement Ethereum (créé par ConsenSys, l’entreprise co-fondée par Vitalik Buterin). Il permet d’interfacer des smart contracts avec du code JavaScript et l’ensemble de l’écosystème NodeJS. Cela ouvre donc la voie à l’utilisation des outils d’industrialisation du monde JavaScript pour la chaîne de blocks Ethereum.

  • Truffle apporte les fonctionnalités suivantes :
  • Gestion des dépendances (au travers de NPM ou EthPM – le package manager Ethereum de smart contracts)
  • Compilation des contrats
  • Migrations
  • Tests (2 modes possibles)

<li style="font-weight: 400;">
En JavaScript, pour valider votre contrat depuis l’extérieur à l’aide de Mocha et Chai.
</li>

<br />

<li style="font-weight: 400;">
En Solidity, pour valider votre contrat depuis l’intérieur (depuis le réseau directement).
</li>

<br />

  • Interaction avec les contrats en JavaScript

<li style="font-weight: 400;">
Truffle fournit notamment une console
</li>

<br />

  • Gestion des différents environnements (networks)

Cet ensemble de fonctionnalité nous permet de mettre en place un processus d’industrialisation classique, à savoir : Build > Test > Deploy

Nous allons voir comment Truffle nous permet de faire cela.

Préparation

Tout d’abord, nous aurons besoin de mettre en place un projet. Nous partirons sur le projet de base de Truffle :

npm install -g truffle ethereumjs-testrpc && truffle init

Vous devriez désormais avoir un projet contenant un dossier “contracts”, un dossier “migrations” et un dossier “test”, ainsi qu’un fichier truffle.js.

Build

Afin de déclarer vos smart contracts sur le réseau Ethereum, ce dernier a besoin de connaître leurs fonctions disponibles. Il faut donc générer un fichier JSON pour chacun des smart contracts qui sera l’équivalent d’un fichier header (.h) en C/C++.

Truffle offre la possibilité de générer ce fichier grâce à la commande :

truffle build

Gestion des dépendances

Vos contrats ou votre code JavaScript dépend peut être (sans doute) d’autres paquets. Truffle permet de gérer ces dépendances facilement : une fois déclarées dans le fichier adéquat, vous pouvez les installer à l’aide de truffle install  (pour les dépendances de smart contracts) ou npm install  (pour le JavaScript, rien d’inhabituel ici).

En résumé, pour builder notre application, rien de plus simple :

npm install
truffle install
truffle build

Note : il peut être plus simple sur le long terme de gérer vos dépendances en customisant le processus de build de Truffle. Ceci sera à adapter en fonction de votre projet, mais permet de n’avoir qu’à entrer la commande truffle build .

Test

Les choses se complexifient quelque peu ici : en effet, nous ne voulons pas tester notre code sur le réseau ethereum directement, mais pouvoir voir ce qui se passe. C’est pourquoi nous avons installé le paquet ethereumjs-testrpc lors de la préparation. Celui-ci va nous permettre de simuler localement un réseau Ethereum, et de voir tout ce qu’il s’y passe.

Pour le lancer, dans un terminal, entrez la commande testrpc , et votre réseau sera disponible localement (sur le port 8545 par défaut).

TestRPC Output

Une fois ce réseau allumé, vous pouvez exécuter vos tests de smart contracts avec la commande :

truffle test

Truffle Test

Nos tests s’exécutent alors, et nous pouvons voir dans la console testrpc ce qu’il se passe directement.

TestRPC Test Output

Pour résumer, de façon à tester notre application nous avons eu besoin des commandes suivantes :

testrpc & # permet de lancer en tâche de fond
truffle test

Note: si vous souhaitez modifier le port pour les tests, rien de plus simple. Lancez testrpc avec l’option -p :

testrpc -p 8242

puis, dans le fichier truffle.js, modifiez le paramètre port de l’environnement de développement :

module.exports = {
 networks: {
   development: {
     host: "localhost",
     port: 8242,
     network_id: "*" // Match any network id
   }
 }
};

Les tests de notre application sont passés, nous pouvons passer à l’étape suivante.

Deploy

Après des tests au vert, dans un processus d’intégration continue, vient le déploiement vers une plateforme d’intégration (où un groupe de beta-testeurs pourra l’essayer par exemple). Pour ce faire, il est nécessaire de  déclarer l’environnement dans le fichier truffle.js :

module.exports = {
 networks: {
   development: {
     host: "localhost",
     port: 8242,
     network_id: "*" // Match any network id
   },
   integration: {
     host: "integration.my-dapp.com",
     port: 80,
     network_id: "*"
   }
 }
};

Ici, mon environnement “integration” est hébergé sur un serveur distant, joignable à l’adresse “integration.my-dapp.com”. Enfin pour déployer les contrats sur cet environnement, la commande à utiliser est :

truffle migrate --network integration

Truffle Migrate

Cette commande aura pour effet de mettre à jour les fichiers JSON du contrat sur cet environnement, puis d’exécuter les migrations déclarées dans le dossier “migrations”. Voici ce qui se déroule sur cet environnement avec ces migrations.

TestRPC Migrate Output

Intégration à GitLab CI

Si vous souhaitez intégrer Truffle à GitLab CI, voici un exemple de fichier qui devrait fonctionner avec l’exemple de départ de Truffle. Dans l’idéal, il faudrait un service testrpc déclaré dans la configuration de votre GitLab CI, ainsi qu’une image docker dédiée pour exécuter les tests contenant truffle. Le processus tel qu’indiqué ci-dessous est un peu long autrement (il faut tout réinstaller à chaque fois).

image: alpine:latest    # Idéalement, il faudrait une image avec truffle déjà installé

before_script:
 - apk add --no-cache nodejs nodejs-npm git python g++ make
 - npm install -g truffle ethereumjs-testrpc

stages:
 - build
 - test
 - deploy

build:
 stage: build
 tags: [ek-docker]
 script:
   - truffle compile

test:
 stage: test
 tags: [ek-docker]
 script:
   - testrpc -p 8242 &     # On pourrait aussi avoir le testrpc dans un service
   - truffle test

deploy:
 stage: deploy
 tags: [ek-docker]
 script:
   - testrpc -p 8242 &
   - truffle migrate --network integration

Et le résultat une fois dans GitLab CI :

GitLab CI Truffle pipeline

Voici en quelques étapes, avec Truffle, comment industrialiser vos projets de Smart Contracts. Vous aurez ainsi une validation automatique de votre code à chaque modification de ce dernier, et pourrez même le déployer automatiquement.

Prochaines étapes

Nous pouvons rajouter des vérifications à notre processus, dans l’étape de tests, comme par exemple une intégration à l’outil d’analyse statique Oyente (encore en beta). Cet outil nous permettra d’augmenter notre confiance dans le code que nous avons produit, en nous indiquant si nous respectons les conventions de développement et n’avons pas potentiellement introduit un bug dans notre Smart Contract.

Les Smart Contracts Ethereum et le langage Solidity sont encore assez récents. Cependant, la présence d’outils d’industrialisation dans l’écosystème nous indique que la technologie arrive à maturité.

Quel sera l’avenir de l’agriculture ?

Cette année Hugo Briand, notre Lead Blockchain a été honoré d’animer un atelier le 27 juin dernier sur les possibilités offertes par les technologies blockchain pour transformer l’agriculture. Il nous en dit un peu plus.

Lire la suite de Quel sera l’avenir de l’agriculture ?