Send Message (Transmit Content)
Catenis allows any application to send messages to any other application across Bitcoin’s peer-to-peer network. These messages are sent and received in real-time with no need to wait for blockchain confirmations. Since our customers own both endpoints of the communication stream, confirmation time is not pertinent. This allows transmitted messages to become inputs to robust applications and smart contracts triggering events across the blockchain’s peer network in real-time.
Sending Off-chain Message
Catenis defaults to sending messages via its second layer capabilities. These are called off-chain messages and leverages its peer network without encumbering bitcoin’s peer network and blockchain. All off-chain messages are logged to the blockchain via Catenis’ eventual blockchain logging technology. Eventual blockchain logging aggregates all messages and logs them in aggregate using only one bitcoin transaction. This allows Catenis to handle millions of messages while leveraging the Bitcoin blockchain as a control-plane. Giving us the ability to deliver messages in real-time and the capability to cryptographically verify all messages via the blockchain for proof of occurrence, existence, authenticity, and auditing. For more information see section titles “off-chain messages and aggregation”.
Sending Standard Message
Alternatively, our customers can use Cateni’s standard message sending capabilities. These messages correlate one-to-one with a bitcoin transaction and for every Catenis message that is sent a bitcoin is created and a blockchain entry is made. It also leverages the bitcoin peer-to-peer network via a real-time bitcoin transaction broadcast (standard messages carry additional fees).
Intelligent messaging technology allows a Catenis device to dynamically decide if the content is stored directly in a Bitcoin transaction or if a hash of the content is inserted instead and it’s content stored on IPFS. Larger messages (above 75 bytes) that are beyond the size of a single Bitcoin transaction’s capability to store content are intelligently cryptographically hashed for blockchain inclusion and storage while simultaneously sent across the peer network. Catenis will then insert the message hash reference into the Bitcoin transaction and place the information content on IPFS allowing the send message endpoint to deliver and inscribe (cryptographically locking) a message of any size. When the API endpoint method is instructed to encrypt the message, the result is a cryptographically locked and inscribed message encrypted with military-grade security.
This functionality empowers global applications and devices while abstracting the difficulties when dealing with blockchains that limit transaction message size.
Catenis handles all of the difficult interactions with the bitcoin protocol, blockchain, IPFS, encryption, etc. making it super simple to build applications. Catenis performs the following process when the message content is larger than 75 bytes and the send message API method is used:
How Catenis Processes a Standard Message
- Encrypts the message content with dynamically generated target device’s Bitcoin public key (default and optional).
- Stores the encrypted message content onto IPFS.
- Creates a bitcoin transaction:
- Adds the message’s SHA-256 hash returned by IPFS to the transaction’s “null data output” (where arbitrary data is stored on a bitcoin transaction).
- Pays the proper Bitcoin network fees for the transaction.
- Transmits the transaction to the Bitcoin peer network.
- Verifies whether or not the receiving device has the proper permissions set to receive a message from the sending device.
- Sends the notification and message ID to the end user’s target device.
When sent messages are 75 bytes or smaller these messages are placed directly into the Bitcoin transactions, delivered to the target device and the IPFS storage procedure is skipped.