RoadTest: Experiment with Blockchain Tech
Author: fyaocn
Creation date:
Evaluation Type: Development Boards & Tools
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: None up to now.
What were the biggest problems encountered?: Fairly easy to use, NFC card with embedded security chipset.
Detailed Review:
Blockchain2Go is fairly easy to use but very difficult to understand. Since the the design concept is innovative and it shall take time to understand what it means for. While well documented manual helps a lot.
This roadtest is about Experiment with Blockchain Tech . So it would be fun to try as many as one can think of it.
Blockchain Security 2Go Starter Kit is product by Infineon. There is no connectors or power jacks with the DevKit, just plastic Credit size card with security chip and NFID antenna inside.
There are five identical cards in the Blockchain2GO pack, of course with different ID and secuity signature.
2.1 Documents and links to useful resources can be got form official website of Infineion.https://www.infineon.com/cms/en/product/security-smart-card-solutions/blockchain-security-2go/?redirId=100002
Here is the process flow diagram on How the Blockchain2Go works,
Here shows how to play the blockchain2Go in the BLOCKCHAIN
More BLOCKCHAIN can be supported likeBitcoin Ethereum if the Blockchains based on ECC using the secp256k1 curve.
2.2 There are totally four function for
creation and storage of up to 255 private/public key pairs for Blockchain applications,
loading and storing a key that is provided by the user in an encrypted form,
signature generation for signing Blockchain transactions and
user authentication with PIN.
There are 5 credit card sized ID1 cards based on ISO/IEC 7810 inside with contactless interface and a Class 1 communication antenna based on ISO/IEC 14443 and an Infineon security controller.
Each function is achieved with one set of Command Instruction in Binary Code via NFC read/write commond.
2.3 The User Credentials Creation process is ,
The Application Identifier (AID) for the Blockchain Security 2Go starter kit is D2 76 00 00 04 15 02 00 01 00 00 00 01
Then COMMOND and RETURN code issued from Interface Device and The Card, for example GENERATE KEY command
0002000000 # GENERATE KEY
Relavent libraries shall follow the API document . And one can develop costumized APPLICATION according to the APIs freely.
3.1 According to the manual, the Blockchain2GO need to work with mobile or NFC reader in 13.56MHz. Most dual frequency NFC reader can read ID card on 125kHz as well, but not for this Blockchain2GO .
I choose Blockchain2GO to work with Matrix Creator+RaspberryPi 3B, with Raspbian Stretch. The installation takes some time and the library for blocksec2go works.
But there is one bug for this python library, it is not compatible with Debian Stretch. One library shall be updated to new version in order for pycard to be built properly.
With python library ,hen the blocksec2go can be installed.
The blocksec2go runs in python 3.x. Import the blocksec2go and the blockchain toolchain can be access then.
3.2 TO get card info , with blocksec2go to go, here is the reference code,
import sys import json import argparse from blocksec2go import open_pyscard, CardError from blocksec2go import select_app def _get_card_info(args): reader = open_pyscard(args.reader) (pin_active, card_id, version) = select_app(reader) if args.machine_readable: json.dump({ 'status': 'success', 'pin_active': pin_active, 'card_id': card_id.hex(), 'version': version}, fp=sys.stdout) else: print('PIN is: ' + ('ENABLED' if pin_active else 'disabled')) print('Card ID (hex): ' + card_id.hex()) print('Version: ' + version) def add_subcommand(subparsers): parser = subparsers.add_parser('get_card_info', description='Retrieve card information') parser.set_defaults(func=_get_card_info)
As with python cli o
P
$ blocksec2go get_card_info PIN is: disabled Card ID (hex): 02058d190004001a002d Version: v1.0
4.1 After the Matrix Creator is set. the Blockchain2GO card can be read with parameters below.
Here is the code,
import matrix_lite_nfc as nfc def read_callback(tag): if (tag.status == 256): print("Tag Was Scanned") print(tag.info) elif (tag.status == 1024): print("Nothing Was Scanned") nfc.read.start({"rate": 1, "info":True}, read_callback)
Here is the output, type A layer 4 in Mifare protocol.
Below is another card Type A Layer 2 with Classica Mifare protocol.
4.2 Then the blockchain2go kit can work with more function only with blockchain pools. The android Application source code is open sourced in HERE. Revised the code and UI as you like.
Within the subdirectory, one smart contract demostration is listed, implements a very simple and basic voting contract.This contract has been deployed to the public ethereum blockchain at address: 0x2c680955cd340eae72703e6886957bf8465f9583
There have been many BlockChain ecosysem under development, used this blockchain2go to access the blockchain with reinforced security.