Each data packet, which leaves a device supporting the ubirch protocol, is cryptographically signed with a private key. This key is generated on the device itself and never leaves this device.
After reception of such a sealed data packet, each receiver can easily verify the integrity of the data and the identity of the sender with the public key of this device. Each data packet is additionally secured in a mix of private and public blockchain structures.
This solution is implemented through:
firmware running on nearly all modern MCUs in the devices
a thin cloud-based backend responsible for device management