-
Notifications
You must be signed in to change notification settings - Fork 47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AuctionHouse Improvement Proposal: Standard for non-fungible, on-chain assets #30
Comments
Currently, the |
How about using the mechanism of a "Safe Remote Purchase" to validate the sale as in http://solidity.readthedocs.io/en/develop/solidity-by-example.html (maybe with an escape hatch whereby [1 or 2] parties lose X% of the deposit etc.)? |
@rmerom I like that as an option. It still requires the buyer to be familiar enough with the contract of the asset they're purchasing to have confidence that when they call On a related note, on the issue of trusting remote contract calls, we have some ideas for a decentralized social transaction attestation platform, built on identity and reputation that we're thinking about hacking on soon ;) |
@dob yes, i think the advantage of using the Safe Remote Purchase paradigm is that it's easier for non-techies to validate. Suppose, for example, that I want to buy an Ethereum-based asset of a game. As an ordinary person, I may not have an idea what all these "contracts" mean or how to verify them, but I surely know whether I got the asset or not. I'm curious about the decentralized social transaction attestation platform. I myself am trying to come up with a reasonable Automated Bug Bounty paradigm to help high-stake contract authors build public confidence in their contracts, on top of the more traditional security audits. |
One option is an Escrow situation for the Asset itself. Instead of just attempting to call
|
@MidnightLightning Thanks, that's close to how it works now actually. The seller doesn't need to create a new auction contract, as he can use the one that's already deployed, but he does need to call |
Ah, great; I missed that detail that the Asset is already owned by the AuctionHouse for the duration of the auction. As I've been musing on this more, maybe what's needed is a pre-auction escrow contract? So, the seller transfers ownership to the escrow contract, and triggers creating a new auction at the AuctionHouse. The AuctionHouse can verify that the Asset is owned by the escrow contract, and then trigger the escrow contract to send the Asset to the AuctionHouse. The escrow contract uses the If the escrow contract fails to transfer the asset to the AuctionHouse ( |
Yah I like some things about the direction of this idea. The "escrow contract" is probably a wrapper on top of the ownership transfer mechanisms of other assets. I still think you'd unfortunately need many escrow contract implementations - one for each of the popular assets with different interfaces. Kind of like the way the WrappedEth ERC20 token is just a wrapper around Ethereum so that it can be traded on Maker's exchange. And then each of these would have to be vetted to make sure it's implemented correctly. But at least the AuctionHouse contract could use the standard |
ERC 721 (ethereum/EIPs#721) addresses this, so AuctionHouse should update to support these assets. |
Any item that adheres to the Asset.sol spec is auctionable, however we aren’t sure how to guarantee other than via social inspection and proof, that the underlying implementation of
owner()
andsetOwner()
actually transfer full semantic ownership of the asset to the winning bidder. In the fungible world, ERC20 has emerged as a standard, however in the non fungible world there can’t really be a standard as each asset has unique attributes, metadata, and functionality. There’s no standard bytecode to check against like there is with ERC20. Any suggestions would be appreciated here.The text was updated successfully, but these errors were encountered: