Parsing Ethereum: The Evolution of a Messaging App

On August 11th, we saw one of the largest cryptocurrency hacks ever. $611 million from PolyNetwork stolen. The sheer number of hacks was not the only feature of the hack. Unlike most hacks, this one had an ongoing narrative accompanying it, fed by messages sent to and from the hacker's address. It even has a self-published Q&A series!


In this post, we take a look at the various ways Ethereum users use their wallets to communicate with the world and each other, take a look at:
Input Data Message (IDM)
non-standard IDM
verify signature
Input Data Message (IDM)
IDM is a term we coined to describe messages sent through input data fields in Ethereum transactions. Input data fields are used extensively to inform the blockchain which contract calls to make as part of a transaction. The data is written in hex, which can be decoded to show the exact function being called.

Raw hex input for a Uniswap V2 transaction.

The same input is decoded to reveal the function arguments.
However, the same field can also be used to enter hexadecimal data - when converted to UTF-8 encoding - represented as text.

Vitalik's news, burning 90% of his SHIBA tokens.
Identifying which of all transactions done on Ethereum is IDM is a challenge, because contract interaction transactions may be converted to UTF-8, and those transactions that should be messages may have some characters malformed.
From the information we can identify, their uses can be divided into:
Transaction Receipt/Note
Attribute description (JSON format)
dialogue
advertise
dialogue
Transaction Receipt/Note
The primary use of these messages appears to be in the form of receipts/bills. Such an example completely dwarfs the others when trying to find common words used in IDM that include a subset of addresses.

Bitfinex 3 addresses have sent over 117,000 transactions (presumably withdrawals).
Another example of a receipt is from the Anyswap: BSC bridge address. In this case, Anyswap takes the transaction hash of the user's deposit on BSC as the IDM in the Ethereum transaction they send to the user. Users can simply copy and paste the hash to BscScan.com to double check their BSC deposits.

See more Anyswap transaction receipts in this dashboard.
verify
Some addresses use IDM for verification. In one example, an address sends itself an IDM every day.

Checking IDM reveals that they follow the standard JSON format. We're not sure, but we can surmise that this is the daily validation of smart contracts added to the registry.
crypto begging
As long as there is a popular or newly rich address, bet another address will send them a message asking them to "help muh famili". Example message sent to Vitalik (Vb address):

Read through Vitalik's message here.
advertise

advertise
Different from begging information, some entrepreneurs will send IDM to popular addresses to promote their products. The address spammed over 150 addresses where IDM was promoting a campaign to raise funds for "Troll Hunters - The First Tokenized 3D Animated Movie." However, this fundraising does not appear to have been successfully completed.

list of facilitated deals
dialogue

dialogue
Finally, the most interesting IDMs for online busy people like us are on-chain conversations. The "heart-warming" exchange between two MEV robot operators is a prime example of the fruitful use of two-party IDM.

In the space of these 30 messages, two former online strangers and arbitrage competitors form a partnership, ensure better profits for both parties, and become friends!


Non-standard IDM

Non-standard IDM
While most IDMs are just sent as text, some require extra work to decode the message.
encrypted message
These messages combine the publicity of blockchains with the relative privacy of encrypted messages. Someone who wants to understand the contents of the message needs to decrypt it.

event log
event log
The second THORChain exploit uses this message as the message sent to the target, which needs to parse through the event log of 6 transactions and change the line-by-line input data view from Hex to Text. Future DeFi developers, please stick to the standard IDM approach!

byte
byte
Another non-standard form of IDM is to make the data (when converted to UTF-8) appear in byte format. For these cases, the reader needs to use such a tool to convert text from byte format to string format.
IDM, which takes the form of a long string of numbers, magically becomes human-readable.

Convert messages from this transaction to Vb addresses.
verify signature
Another type of message uses Ethereum but is not stored on-chain. Wallet owners can sign messages with their private key to prove that the message came from the signing address. Anyone can then verify the signed message using tools like Etherscan and Mycrypto.

Example of a message with a verified signature.
Etherscan keeps a record of messages signed with our tool. While this tool is primarily intended for contract creators to verify ownership of their contracts, it has been used by thousands of people in the community for a variety of use cases.
Why would users choose to use verified signed messages instead of IDM? First, these messages are not bound to a receiving address. Anyone logged into the Verify Signature page on Etherscan can see a list of these messages without navigating to a specific address. The UX for reading these messages is also simpler - users don't need to convert from hex to UTF-8. Perhaps most importantly, they do not incur transaction costs like IDMs.
By looking at these messages we can see that they serve a different purpose than in IDM.
30% of messages are used to verify their social media accounts.
29% of messages used a format other than Etherscan to prove address ownership.
Only 9% of messages actually followed the Etherscan template.
Interestingly, as much as 1% of these messages were used to indicate shipments by courier services!
Aside from these uses, some interesting highlights include:
Identify accounts for transaction support
License to issue smart contracts
Apply for P2P Loans on Bitcointalk
Announcing the correct Twitter account for a DeFi project
Vote on Uniswap governance
Financial Audit Verification
Correcting wrongly sent USDT

Due to its Turing completeness, Ethereum can be used for everything other than DeFi or NFTs. Using it as an instant messaging app is one example. The space of this use case is broad and underexplored. We look forward to seeing more done on this!


