Experiment with Blockchain Tech - Review

Table of contents

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:

1. Introduction

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.

imageimage

 

There are five identical cards in the Blockchain2GO pack, of course with different ID and secuity signature.

 

2. The Blockchain2go

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,

image

Here shows how to play the blockchain2Go in the BLOCKCHAIN

image

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.

image

 

2.3 The User Credentials Creation process is ,

image

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. Work with Matrix Creator

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.

image

With python library ,hen the blocksec2go can be installed.

image

The blocksec2go runs in python 3.x. Import the blocksec2go and the blockchain toolchain can be access then.

image

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. Demo

4.1 After the Matrix Creator is set. the Blockchain2GO card can be read with parameters below.

image

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.

image

Below is another card Type A Layer 2 with Classica Mifare protocol.

image

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.

image

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

 

 

5. Next step

There have been many BlockChain ecosysem under development, used this blockchain2go to access the blockchain with reinforced security.

Anonymous