I have an idea I am working on for some time, it would be using blockchain technology. However, although I know something about blockchain as it stands today, I am lacking a more deepened knowledge about cryptographic primitives. So, because I couldn't find a definitive answer anywhere, I thought I will try here. As I am completely new to this forum, please inform me if my questions should be posted in another category.
So here are the questions:
Let's presume that in a peer-to-peer network there is a big volume of information going from one node to the other, however most of this info is private. So, a node: 1) signs his message (to authenticate source) 2) then encrypts it using symmetric cryptography 3) then encrypts the symmetric key (which will be used to decrypt the message) using public key of the recipient 4) and then on top of that he signs using his key both the message encrypted and symmetric key
So, finally, we have 2 things: 1) Message -> Signed by his private key -> Encrypted using symmetric cryptography -> Finally signed again (so the nodes on the network will know from which node it is coming from) 2) Symmetric key that will be used to decrypt message -> encrypted using asymmetric cryptography by intended recipient's public key -> and finally signed by sender's key, so the nodes will know the source of message.
The benefits of this is that we can send information over the network, no node relaying this info will know the content of it, and still every node will be able to confirm the identity of the sender and intended recipient will be able to finally decrypt message and also confirm the source of this message (as it is signed) even in decrypted form.
1) Are there any technical reasons why something like this wouldn't work? 2) Could such a way of privately send messages be used on a big network (size of bitcoin for example), where every node "pools" messages and sends to his peers? The problems I see is size of messages (it grows bigger by signing and encrypting like that). 3) I am sure of that, but I want to ask anyway - could node compare two messages it received, even if they are different, and find every two or more messages that were signed by the same public key (from same source)?
Of course there is a problem that as nodes "pool" messages, they won't know if the message was delivered or not. But that is not part of this question.
If there some expert who have time to answer such basic questions on this forum, I am deeply thankful.