This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
|
dido:public:ra:xapend:xapend.b_stds:defact:ethereum:eip:erc_0191 [2019/05/26 21:14] nick created |
dido:public:ra:xapend:xapend.b_stds:defact:ethereum:eip:erc_0191 [2021/08/18 11:16] (current) murphy |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ======== EIP 191: Signed Data Standard (Draft) ========= | + | ==== EIP 191: Signed Data Standard (DRAFT) ==== |
| - | [[dido:public:stds:defact:ethereum | Return to Ethereum ERCs ]] | + | [[dido:public:ra:xapend:xapend.b_stds:defact:ethereum:eip| Return to Ethereum ERCs ]] |
| - | : **Note**: The following is an excerpt from the official Ethereum site. It is provided here as a connivence and is not authoritative. Refer to the original document as the authoritative reference. | + | : **Note**: The following is an excerpt from the official Ethereum site. It is provided here as a convenience and is not authoritative. Refer to the original document as the authoritative reference. |
| <table> | <table> | ||
| Line 15: | Line 15: | ||
| </table> | </table> | ||
| - | + | === Abstract === | |
| - | ====== Abstract ====== | + | |
| This ERC proposes a specification about how to handle signed data in Ethereum contracts. | This ERC proposes a specification about how to handle signed data in Ethereum contracts. | ||
| - | ====== Motivation ====== | + | === Motivation === |
| - | : //Several multisignature wallet implementations have been created which accepts presigned transactions. A presigned transaction is a chunk of binary signed_data, along with signature (r, s and v). The interpretation of the signed_data has not been specified, leading to several problems:// | + | //Several multisignature wallet implementations have been created which accepts presigned transactions. A presigned transaction is a chunk of binary signed_data, along with signature (r, s and v). The interpretation of the signed_data has not been specified, leading to several problems:// |
| * //Standard Ethereum transactions can be submitted as signed_data. An Ethereum transaction can be unpacked, into the following components: RLP<nonce, gasPrice, startGas, to, value, data> (hereby called RLPdata), r, s and v. If there are no syntactical constraints on signed_data, this means that RLPdata can be used as a syntactically valid presigned transaction.// | * //Standard Ethereum transactions can be submitted as signed_data. An Ethereum transaction can be unpacked, into the following components: RLP<nonce, gasPrice, startGas, to, value, data> (hereby called RLPdata), r, s and v. If there are no syntactical constraints on signed_data, this means that RLPdata can be used as a syntactically valid presigned transaction.// | ||
| - | * //Multisignature wallets have also had the problem that a presigned transaction has not been tied to a particular validator, i.e a specific wallet. Example:// | + | * //Multisignature wallets have also had the problem that a presigned transaction has not been tied to a particular validator, i.e a specific [[dido:public:ra:xapend:xapend.a_glossary:w:wallet|wallet]]. Example:// \\ |
| - | - //Users A, B and C have the 2/3-wallet X// | + | //1. Users A, B and C have the 2/3-wallet X// \\ |
| - | - //Users A, B and D have the 2/3-wallet Y// | + | //2. Users A, B and D have the 2/3-wallet Y// \\ |
| - | - //User A and B submites presigned transaction to X.// | + | //3. User A and B submites presigned transaction to X.// \\ |
| - | - //Attacker can now reuse their presigned transactions to X, and submit to Y.// | + | //4. Attacker can now reuse their presigned transactions to X, and submit to Y.// |