0x19 <1 byte version> <version specific data> <data to sign>
"\x19Ethereum Signed Message:\n" + len(message).
signed_datacould never be an Ethereum transaction, because it cannot be one RLP-structure, but a 1-byte RLP payload followed by something else.
approvemethods that allowed it to be used as a proxy, and attempted to forge the building blocks for access control lists through those contracts.
isValidSignature(hash, signature)on the signing contract that can be called to validate a signature. With the rise of smart contract wallets and DAOs controlled by multi-sigs, these parties require the means to use signed messages to demonstrate the right to move assets, vote, or for other purposes.
eth_signstandardization with prefixed signatures, as where signing became fragmented due to some applications using it and some choosing to keep the older
personal_signin order to make sure both old and new applications are using the same method.