Hacker News new | ask | show | jobs
by Kiro 1376 days ago
HyperDragons. Someone made a game where you bred dragons that could eat CryptoKitties to absorb their attributes. The composability and interoperability of the blockchain means anyone can extend your game and build mechanics with your assets, without your permission. It's truly an open API.
3 comments

And what here does the blockchain offer that a database table doesn't? Other than the ability to monetize.
The fact that I can build upon CryptoKitties with no obstacle. If CryptoKitties was on a private database I would need to get access to their API and also trust them with the ownership/management of the assets. Now I can just build it on the blockchain and have people destroy CryptoKitties in my smart contract to get benefits in my game. No API functionality or permission from CryptoKitties needed.
So how does this open API works? Every time you use it you have to pay a third party?
You submit the action you want to do, anywhere in the ethereum network, and if it's valid (e.g. if you're running an operation that destroys a kitty then you'd better include a digital signature showing that you own that kitty) then it will be accepted and published. You have to pay a "gas fee" which in theory a) should be pretty small and b) is what pays for the running of that ethereum network. In practice under the current implementation those fees got to be big enough that they kind of killed cryptokitties, but this might be fixable.
What do you mean? All of the data is on the chain. It's a global "third-party" that everyone is a part of.
Even "the ability to monetize" is hardly unique - it would also be trivial to monetize that database table (see: Diablo 3).
That the two projects both shared the same DB.
Unless the intellectual property assets (art and character designs) have been licensed putting them on a blockchain does not make them legal to use.
What do you mean? HyperDragons is just interacting with the CryptoKitties smart contract. They are not using any art or other IP from CryptoKitties.
So cyptokitties are not cartoon characters like Pokemon?

All I'm saying is, if Nintendo made a Pokemon NFT, another company such as Ubisoft would not be able to add Pikachu to their blockchain based game without an intellectual property license by Nintendo. This would seemingly make a Pokemon NFT rather pointless.

I would still be able to build applications utilizing the Pokemon NFT, and use it in my game, without infringing on the copyright. The NFT itself is just an ID with some meta data and doesn't contain any IP. The IP is in Nintendo's own front-end for the NFT.
Couldn’t that have been done equally well with a centralized ledger? Lots of games have “high stakes pvp”, such as eve online. They don’t have a blockchain, and yet you can still steal stuff permanently from other players if that’s how you want to play the game.
Let's say I want to build a game where you can destroy your EVE Online spaceships to get bonuses in my game. How would that work? That's what happened with CryptoKitties and HyperDragons.

Just to clarify: someone who owns a CryptoKitty decides to send it to the HyperDragons smart contract that handles the absorption. It's not about stealing anything. You use your assets in CryptoKitties to boost your dragon in HyperDragons.

This is not inherently made possible by the blockchain itself though.

The mechanisms to transfer a Kitty to the HyperDragons lie within the CryptoKitty Smart Contract. This is not particularly different than a regular API, where the available operations have been chosen, specified, and made available to the public at large by the developers.

The only real difference with a public-facing documented traditional API is that said API will outlive the original product. But that doesn't make CryptoKitties a better game, since Cripto Kitties won't be a thing anymore when that comes into play.

> This is not inherently made possible by the blockchain itself though.

It basically is. This is impossible on Eve, if you don't have permission from the people who make Eve.

But, with something on the blockchain, you don't need permission from the person who made the original asset, on the blockchain.

The asset is on the blockchain, and it is much more difficult to stop me from using that asset, compared to a centralized Eve database.

Two things are wrong here:

1) The reason it can't be done with EVE is not because EVE is not on the blockchain. It just happens to not be possible because the devs didn't make it so. They could have, but they chose not to.

2) Something being on the blockchain does not make it automatically permission-less. It depends on how the smart contracts involved are coded.

I think point 2) is something that a lot of people don't realise wrt/ NFTs. The NFTs are transferable without the author being involved because the Smart Contract that drives them has a function (aka an API endpoint) that provides that feature. It is not a property of the blockchain itself. It is a property of an arbitrary piece of code that happens to reside on the blockchain. A property that any web service is capable of providing without the blockchain having to be involved.

So, let's see. To emulate the ERC-721 smart contract you would need:

1. An API to transfer ownership, updating the owner_id field in the database for the spaceship.

2. Legal obligations preventing EVE from reversing the transaction or tampering with your "wallet".

3. Legal documents making you the owner of said spaceship where you and only you can administer it in the future, forever.

4. A full and open audit log of every API call to said API endpoint.

5. Legal assurance 1 and 4 are true and transparent.

6. Measures taken to assure that the API and database will stay online and legal obligations enforced forever.

Even with all these fulfilled a rogue actor could wreck havoc since it would still be centralized, while in a smart contract these things are enforced in code. For me, that difference alone is so big that I can't even compare them.

In all honesty, it feels the only reason we don't just say "wow, it's cool that we have a technology that intrinsically supports this" is because it's a cryptocurrency.

> It just happens to not be possible because the devs didn't make it so. They could have, but they chose not to.

And then they could change it at any time, as they would be the central authority. There would be not way to stop them from changing it.

Well, thats not true technically. I guess one way that they could implement it, such that they cannot change their mind in the future, would be if the game was run on some sort of decentralized public ledger, with a consensus mechanism.... oh wait, what does that sound like? Oh yeah, we have a word for that. Its called a blockchain.

> Something being on the blockchain does not make it automatically permission-less.

If I read the code, and the code makes it permissionless, the author can't change it later, if the code was written in a way that I can verify that.

Thats the point. Yes, someone can always say "yep, I totally pretty please promise that I won't change anything! Just trust me!"

And it is quite another thing for it to be a smart contract, that verifiably cannot be changed by the original author. Thats the difference.

> (aka an API endpoint) that provides that feature.

> A property that any web service is capable of providing

Oh? A feature, such as a public, immutable ledger, that is decentralized in such a way, using a consensus algorithm (such as PoW or PoS), such that there is no central authority that can change it unilaterally?

That feature? The feature that is, by definition, a blockchain?

Yes, it is true that if you add all the features that a blockchain has, to your software, then by definition it has all the features of the blockchain.

But that makes it a blockchain. You just re-invented the blockchain.

> A property that any web service is capable of providing without the blockchain having to be involved.

No, then you run into the Byzantine generals problem, which is the specific problem solved by blockchains.

So maybe the problem is you still don't understand what a blockchain is.