5 ms·
> financial applications have been built on top of Ethereum that all share the same database and users can move from application to application, keeping their d
by selljamhere 5y ago
> financial applications have been built on top of Ethereum that all share the same database and users can move from application to application, keeping their data (and their login credentials stored in their wallet) as they go.
Does anyone have examples of this in the wild? I often hear data portability listed as one of the great benefits, but I don’t have a grasp on what that actually means.
In my mind, the data needs to be structured to be useful, otherwise other DAPs wouldn’t be able to act on it. Who defines the structure? And who manages changes?
- everfree 5y agoSome examples of dApp data sharing in the wild: For example if you have Ether, you can use a decentralized exchange (e.g. Uniswap) to swap it to stablecoins like USDC and DAI, deposit that USDC and DAI into a collateralized lending market (e.g. Compound), then deposit your deposit tickets into a stable pair exchange (e.g. Curve) to earn maker fees when others trade against your liquidity, while ALSO earning interest fees that accrue to the underlying. This is possible because these contracts are all able to share data about token balances with each other. On a side note, DAI is actually a great example to illustrate this kind of data sharing, because behind the scenes, DAI is itself a synthetic asset backed by yet other assets. DAI backing even includes derivative assets that themselves represent claims on liquidity denominated in yet other assets in external contracts (e.g. UNIV2WBTCETH). The tangled web of assets backed by other assets is insane, honestly, but it's all made possible by contracts sharing data with each other. As a second example, you could take some bitcoin, bridge it onto Ethereum (using e.g. the REN network), and deposit and earn interest on it on a collateralized lending platform. These actions all require data about ETH balances and token balances to be portable across dApps, and in this case even portability across the Bitcoin and Ethereum networks. A non-monetary example of data portability within Ethereum is the Ethereum Name Service. Like DNS, the name database is public and can be queried by other dApps. As a bonus, names in ENS also follow the ERC-721 token standard which provides a standard way to share data about who owns which names, so it's theoretically possible to write contracts that themselves write derivatives on name ownership, for example to give someone a collateralized loan backed by the value of their ENS name, or to have a contract that owns an ENS name but that requires a majority DAO vote in order to manage the name or transfer ownership. In summary, for the most part dApps are purposely written in such a way that they can be easily integrated with other dApps using open standards and without asking permission, which is why the space sometimes gets a "money legos" moniker. The data structures that allow these apps to pass data between each other are defined by the ERC-20 and ERC-721 token standards, which list standard method interfaces for smart contracts to store and query each others' token balances, and I believe were officiated as standards by the Ethereum Foundation. These standards are currently widely supported across all Ethereum smart contracts that involve tokens.
- selljamhere 5y agoThanks for the examples. The monetary case seems like the natural first step. The name service case seems more interesting. It isn’t a financial instrument, so it demonstrates DAP utility for non-financial application. You referenced a few standards that the DAPs adhere to, which lines up with assumptions I’ve had about the data schema management. In a generalized sense, it seems that community members, or a governing body, will propose changes, and if the community accepts them, the changes will be implemented into the network. It seems to me the name service case has parallels to identity management through protocols such as SAML and LDAP. But I’m still trying to wrap my head around examples I’ve heard such as building DAP social media apps that allow users to move their data to another DAP social app. Thinking of the social media sites we have today, they all consider their profile structures and models proprietary, as market differentiators that set each one apart from their competitors, and make up the “secret sauce” that gives social value to their users. How would a DAP be able to maintain similar differentiators? Or is the expectation that only certain things such as basic profile information be stored on the blockchain, able to move to other DAPs, while other proprietary functionality is managed elsewhere?
- everfree 5y agoWell, decentralized exchanges usually maintain their moat through liquidity (the catch-22 of attracting liquidity to a new dex without users, and attracting users without liquidity). Ethereum Name Service maintains their moat through legitimacy. You could copy paste the contract and start issuing .eth names of your own, but the ENS team is generally trusted by the community and thus their specific instance of the contract (at their contract address) is already widely integrated into products. You're right that social media dApps perhaps don't have a "moat" like that, which may be part of why we've seen so many of them blossom and fail, while none of them really catch on like with other types of services. Though that might be just as much due to the fact that social media is a low-value service compared to money transfer, and blockchains just haven't become scalable enough yet for a meaningful part of the social media stack to be run cost-efficiently on the blockchain. Personally I've always been less sold on cryptocurrency networks as a host for social media, as I believe traditional decentralized web2 schemes like ActivityPub (Mastodon) still have a long way to race in that regard before the scheme needs to be complicated with a blockchain integration. What I do believe will happen is similar to you explained, where just profile info (and maybe a profile image hash) is stored on the blockchain while other data is stored off-chain. Ethereum Name Service already acts as a profile service in a lot of ways as it already has records for your twitter handle, github handle, etc. as well as support for custom records. One global name standard like ENS would for example allow you to pick your Mastodon profile up and move it seamlessly to another instance, with the authorization of that cross-server move handled by the blockchain.