signifec on Nostr: A messaging system based on the Bitcoin transaction structure, where each message is ...
A messaging system based on the Bitcoin transaction structure, where each message is represented as a transaction with inputs and outputs. The inputs reference previous messages, and the outputs contain new messages as reply to outputs encrypted with the recipient's public key, along with a signature and label attached that will used by the recipient to encrypt the reply to output of the message.
To initiate a conversation with someone, both parties would need to agree on a label, which would be stored in their contact book. When sending a message, the sender would encrypt the message with the recipient's public key, sign the plaintext message with their private key, and include the label in plain text format, The message would then be broadcast to the network of relays.
The recipient's client would listen for messages with matching labels and decrypt the message with their private key. They would then verify the signature to ensure that the message came from the correct contact and process the message accordingly. To reply, the recipient would need to construct an input that references the previous message's outpoint and sign it with their private key. Note: The outpoint is calculated using the sha256 of plaintext of the decrypted message + the label, that means no-one one network can understand witch message is being replied expected the 2 involved parties, then they would construct an output containing their reply message encrypted with the sender's public key, along with a signature that proves the plaintext of the encrypted message comes from them and an empty label.
The sender would then process the reply message by checking the outpoint to see if it matches any previous messages they sent to any of its contacts. They would verify the signature to ensure that it came from the correct contact, decrypt the message, and verify the signature of the decrypted message.
The label will be used once in order to start a conservation, that means only initial message's contains labels attached on outputs, after an initial message client's mark's the label as active and stop looking for messages under this label, the label attached to each message serves as identifier for the recipient to determine if a message is meant for them or not, while messages are relayed to all connected client's it's not efficient for each client to try to decrypt each message.
The label sharing method between user's should be for example under centralised social media, even if a someone hacks the centralised social media account of the user who shares the label will be able to understand that the user use the proposed message system have received a message under the specific label, but can't know if they both are in touch or not, this because on the rest of the conservation the label is not used public only private to calculate the outpoints, even if label is linked to specific user's no-one of the rest message's on the conservation can be linked to specific user, or that is a reply to a specific message that is know that the label was shared by specific user.
As we have and had excellent cryptographers based on their work and implement new protocols while is required we can address any issues regarding privacy and security.
All client's send messages to relays throw the nym network, relays receive message's from clients and forward them to client's, also clients should be able to ask relays about a specific message throw the nym network.
Targets
Trustless: The messaging system should be trustless, meaning that users do not need to rely on a trusted third party to mediate their communications. This reduces the risk of censorship, surveillance, and data breaches.
Anonymity: Since no metadata is publicly available regarding the parties involved in the communication, and no phone number or any other personal data is required, that means that no third party, including network operators, government authorities, or other users, can determine who is communicating with whom.
Privacy: The messaging system should provides privacy for users, since only the intended recipient can decrypt and read the message as the use of public-key cryptography ensures that the message is encrypted in such a way that it cannot be read by any unauthorized party.
Interoperability: The messaging system should be used across different platforms and devices, making it highly interoperable. This means that users can communicate with each other regardless of the type of device or platform they are using.
To initiate a conversation with someone, both parties would need to agree on a label, which would be stored in their contact book. When sending a message, the sender would encrypt the message with the recipient's public key, sign the plaintext message with their private key, and include the label in plain text format, The message would then be broadcast to the network of relays.
The recipient's client would listen for messages with matching labels and decrypt the message with their private key. They would then verify the signature to ensure that the message came from the correct contact and process the message accordingly. To reply, the recipient would need to construct an input that references the previous message's outpoint and sign it with their private key. Note: The outpoint is calculated using the sha256 of plaintext of the decrypted message + the label, that means no-one one network can understand witch message is being replied expected the 2 involved parties, then they would construct an output containing their reply message encrypted with the sender's public key, along with a signature that proves the plaintext of the encrypted message comes from them and an empty label.
The sender would then process the reply message by checking the outpoint to see if it matches any previous messages they sent to any of its contacts. They would verify the signature to ensure that it came from the correct contact, decrypt the message, and verify the signature of the decrypted message.
The label will be used once in order to start a conservation, that means only initial message's contains labels attached on outputs, after an initial message client's mark's the label as active and stop looking for messages under this label, the label attached to each message serves as identifier for the recipient to determine if a message is meant for them or not, while messages are relayed to all connected client's it's not efficient for each client to try to decrypt each message.
The label sharing method between user's should be for example under centralised social media, even if a someone hacks the centralised social media account of the user who shares the label will be able to understand that the user use the proposed message system have received a message under the specific label, but can't know if they both are in touch or not, this because on the rest of the conservation the label is not used public only private to calculate the outpoints, even if label is linked to specific user's no-one of the rest message's on the conservation can be linked to specific user, or that is a reply to a specific message that is know that the label was shared by specific user.
As we have and had excellent cryptographers based on their work and implement new protocols while is required we can address any issues regarding privacy and security.
All client's send messages to relays throw the nym network, relays receive message's from clients and forward them to client's, also clients should be able to ask relays about a specific message throw the nym network.
Targets
Trustless: The messaging system should be trustless, meaning that users do not need to rely on a trusted third party to mediate their communications. This reduces the risk of censorship, surveillance, and data breaches.
Anonymity: Since no metadata is publicly available regarding the parties involved in the communication, and no phone number or any other personal data is required, that means that no third party, including network operators, government authorities, or other users, can determine who is communicating with whom.
Privacy: The messaging system should provides privacy for users, since only the intended recipient can decrypt and read the message as the use of public-key cryptography ensures that the message is encrypted in such a way that it cannot be read by any unauthorized party.
Interoperability: The messaging system should be used across different platforms and devices, making it highly interoperable. This means that users can communicate with each other regardless of the type of device or platform they are using.