Bazo Blockchain for indoor IoT systems with IEEE 802.15.4

State: completed by Elfat Essati

Previous works [1,2] demonstrate the successful integration of the Bazo Proof-of-Stake (PoS) Blockchain (BC) [3] with the Internet of Things (IoT) applications using Long Range (LoRa) Wide Area Networks (WAN) [4]. LoRa has become an interesting access technology for long range outdoor data delivery through the establishment of the Low Power (LP)-WAN. In the indoor environments, however, other technologies such as ZigBee [5] or Thread [6] over the IEEE 802.15.4 communications standard [7] provide Low-Rate (LR)-Wireless Personal Area Network (WPAN). This work should materialize an IoT network using the TelosB [8] devices (i.e., clients). The client TelosB node is equipped with the IEEE 802.15.4 compliant radio. The client TelosB device shall be programmed and be able to submit a BC transaction signed with the Ed25519 [9] Elliptic Curve Digital Signature Algorithm (ECDSA) over the air. There are several implementations of Ed25519. For example, TweetNaCl [10] provides a complete, architecture-independent, and RFC 8032 compliant Ed25519 ECDSA algorithm [11]. TweetNaCl is slow, of low memory footprint, and compatible with the TelosB motes. There exist other much faster algorithms; for example Arduino Cryptographic Library (ACL) [12] provides an almost 10x faster Ed25519 ECDSA for the AVR micro-controller family [13] such as Arduino Mega 2560 (AT2560) [14]. The submitted transactions shall be received by the Raspberry Pi (RPI) 3 [15] Gateway (GW). The RPI is not directly equipped with an IEEE 802.15.4 port, but can be connected with a TelosB (i.e., dongle) through the Universal Serial Bus (USB) to receive/send IEEE 802.15.4 radio signals. 

The role of the student is to adapt the previously developed modules, i.e., the IoT BC Wallet (C/C++), BC Client (JS), and Bazo BC (Go) to work with the IEEE 802.15.4 technology [16]. The student will have to port the IoT BC Wallet to the Contiki Operating System (OS) [17] or equivalent, and adapt it to the Ed25519 ECDSA library of choice. The packets exchanged by the IoT Wallet should use the client TelosB IEEE 802.15.4 interface. As an IoT GW, the student should use a RPI 3 device with an attached TelosB dongle. The TelosB dongle should be programmed with the Contiki OS or equivalent. The TelosB dongle should receive data from the RPI through the serial port and propagate corresponding IEEE 802.15.4 packets through the air. Moreover, the IEEE 802.15.4 packets received by the TelosB dongle should be delivered to the RPI device through the serial port. The BC Client on the GW should be modified to recognize the underlying IEEE 802.15.4 connectivity between the TelosB clients and the GW. Finally, the BC client delivers the transactions originated by the IoT BC Wallets to the Peer-to-Peer (P2P) network of Bazo BC miners [3]. The modifications to the BC Miner shall be minimal in comparison to [16] as the Bazo miner is not IoT network technology dependent. 

[1] S. Rafati et al., "Adaptation of Proof-of-Stake-based Blockchains for IoT Data Streams," 2019 IEEE International Conference on Blockchain and Cryptocurrency (ICBC), Seoul, Korea (South), 2019, pp. 15-16. doi: 10.1109/BLOC.2019.8751260

[2] E. Schiller et al., "Scalable Transport Mechanisms for Blockchain IoT Applications," 2019 IEEE Conference on Local Computer Networks (LCN), Osnabrück, Germany, 2019.

[3] https://github.com/bazo-blockchain 

[4] LoRaTM Alliance: "A Technical Overview of LoRa and LoRaWAN," URL: https://www.lora-alliance.org/portals/0/documents/whitepapers/LoRaWAN101.pdf, Last visit October 3, 2018.

[5] S. Farahani: "ZigBee wireless networks and transceivers," Newnes, 2011.

[6] Thread Group. https://www.threadgroup.org. Last visit: May 17, 2019.

[7] IEEE 802.15 WPAN Task Group 4 (TG4). http://www.ieee802.org/15/pub/TG4.html. Last visit: July 31, 2019.

[8] TelosB Mote Platform. http://www.memsic.com/userfiles/files/Datasheets/WSN/telosb_datasheet.pdf. Last visit: July 31, 2019.

[9] Daniel J. Bernstein, Niels Duif, Tanja Lange, Peter Schwabe, Bo-Yin Yang. High-speed high-security signatures. Journal of Cryptographic Engineering 2 (2012), 77–89. 

[10] Daniel J. Bernstein, Bernard van Gastel, Wesley Janssen, Tanja Lange, Peter Schwabe, Sjaak Smetsers. TweetNaCl: a crypto library in 100 tweets. LatinCrypt 2014.

[11] S. Josefsson, I. Liusvaara: Edwards-curve digital signature algorithm (EdDSA). In Internet Research Task Force, Crypto Forum Research Group, RFC (Vol. 8032), Jan. 2017.

[12] Arduino Cryptographic Library (ACL). https://rweather.github.io/arduinolibs/crypto.html. Last visit: July 31, 2019.

[13] Microchip AVR MCUs. https://www.microchip.com/design-centers/8-bit/avr-mcus. Last visit: July 31, 2019.

[14] ARDUINO MEGA 2560 REV3, https://store.arduino.cc/mega-2560-r3. Last visit: July 31, 2019.

[15] Raspberry Pi 3 Model B. https://www.raspberrypi.org/products/raspberry-pi-3-model-b. Last visit: July 31, 2019.

[16] I. Cepilov: "Design and Implementation of an IoT-based Hierarchical Payment System with BAZO Blockchain", BSc Thesis, University of Zurich, 2019.

[17] Contiki Operating System. http://www.contiki-os.org/download.html. Last visit: July 31, 2019.

20% Design, 70% Implementation, 10% Documentation
C, C++, JavaScript (JS), Go

Supervisors: Dr. Eryk Schiller

back to the main page