One of the values of a trusted, centralized authority is that it can use two-factor authentication to establish a permission to do a given action.
Is it known whether an ethereum smart contract can verify a user through a channel. Ideally, the following should be possible (let's say for email):
(1) A secret is passed through email to the user seeking a permission. (2) The user signs a receipt to prove that the secret was received. (3) The receipt proves that the intended user received the secret.
The problem with this approach is that it does not prove that the channel was used. It is quite possible that the secret was passed to the user outside of the channel.
Proving that the email was sent is not sufficient because it must be proved that the secret or receipt was uniquely related to the email. It is necessary, as far as I understand it, to show that the secret could only have been sent through the channel. I am not clear how this could be proven.
Is there a known way to verify a user received a secret through an email or through a text?