Blockchain IoT For Developers

Powering the IoT infrastructure of the future and the fourth revolution.

Submit Your Proposals

If you are interested to receive funding from the Trusted IoT Alliance, please submit a proposal no longer than 500 words, describing:

Project goal

Industry use case

Smart contract deliverable

In kind resources

Alliance members involved

Preference shall be given to projects with real industrial use cases where proposers have some in-kind contribution (either financial or POC access) and where the project is aligned with the overall roadmap. Projects involving multiple Alliance members shall also be weighted more heavily.

submit your proposal

Documentation

Things and identities

For blockchain integration, typically we recommend the use of IoT microchips containing a cryptographic identity with an asymmetric key pair. This is because we can register the public key of the asymmetric keypair to the blockchain without any risk of a counterfeiter using the information to create a clone or counterfeit chip. However, we can also work with serial numbers, UPC codes, bar codes, UIDs, and other insecure unique identifiers.

When we work with weak identifiers, oftentimes we register the cryptographic hash so that the plain text is inaccessible on the blockchain record, and using an approach to verification involving the comparison of the hash of the identifier to the hash stored on blockchain.

Thing identity schema

Our approach is to register identity and data of “things” as an immutable record under a Registrant, as a way of “giving birth” to a secure digital identity for a thing on blockchain.

We adopted the Uniform Resource Name convention to represent identities, including cryptographic identities, unique identifiers, and serial numbers. We also use JSON and ProtoBuf to capture data.

Format

Each identity will be split by : into multiple sections, denoting more specific information about the identity after each subsequent colon. The last section denotes the actual identity of the Thing.

<Category>[:SubCategory>[:<sub-SubCategory> ... ]]:<ID>

All cases are insensitive.

URN specification

In the smart contract, all Things have identities. The Uniform Resource Name (URN) standard is flexible and easily readable. It allows for the support of a wide variety of identities, from cryptographic public keys to BLE & NFC device IDs.

It complies with current standards for representing products, books, electronics, etc., and can be used to identify literally anything without needing to specify any special schema. This extensibility is essential for building a universal and open platform for the Internet of Things.

Examples

BLE

ble:1.0:0A153C993D9C

NFC

nfc:1.0:04062782DF4980

Serial Number

sn:C02EK02HG8DL

Electronic Product Code: Serialized Global Trade Item Number

epc:id:sgtin:0614141.012345.62852

Elliptic Curve Public Key

pbk:ec:secp256r1:0260fed4ba255a9d
31c961eb74c6356d68c049b8923b61fa6
ce669622e60f29fb6

RSA public key

pbk:rsa2048:cb47e6aada931986bb6bbf02c8618437c072cefa4e19c1ee6cb189b95a49e3ce94fb4de129c30ab7e683f827c98eb05e844af24f809ed5f217e93c14d58f64b98fc9136d3c2b56a672853a8f52c7ac7acd201b09d0f78f32f377f954905e18fa360448901d0ac538cd1102dc0821cd13a843e370471c00e95daf4bba001186c5b2220e1f2f4777aa9b0a823186c34d82fd557e245b4d5816f48bdc09dd34806982609b63012dd13fe603f23730940e684631b68f24ee77907925d286d55ec22bad53119f8354388e051854ef436589538f1efbf104af477dc3ca2cf29974fcf32639b8716c38c717d44c8f0c90d59f02f2ab0aef8b59c2feb460e2cbfb57010001

Construction of URN for public key

Public key

pbk

Elliptic curve public key

pbk:ec

RSA public key

pbk:rsa

Elliptic curve using verified random parameters

pbk:ec:secp256r1

Full ECC URN

pbk:ec:secp256r1::0260fed4ba255a9
d31c961eb74c6356d68c049b8923b61fa
6ce669622e60f29fb6

Smart Contracts

Smart contracts are modules of code that run on a blockchain, which, ideally perform one specific function. A single smart contract or several smart contracts running together to perform a business purpose, is oftentimes referred to as a distributed application, or D-App.

You can think of each smart contract like a lego brick. It is a module of code that can be combined with other modules of code to create a more advanced D-App. As new smart contracts are added to the reference architecture, the capacity to tackle more advanced business cases can grow at a compounding rate.

Reference Architecture

We are developing an open source reference architecture that supports multiple blockchains via a single API. We aim to establish interoperability across IoT devices and blockchains by defining a set of general-purpose protocol functions, including device registration/verification/transfer, firmware registrations/verification, and data ledger.

Licensing

Our goal is to accelerate industry adoption of a blockchain backend for IoT solutions.
 
Therefore, we decided to license the open source under Apache 2.0, a business-friendly license. Anyone can host and operate the code that implements the reference architecture.

Learn More On Github

Based on pioneering work by Chronicled and SkuChain teams, developers can use smart contracts to register “thing” identities to Ethereum, Ethereum Enterprise, and Hyperledger blockchains.

view github repository