All: this is quite an interesting article. It deserves much better than the tedious flamewar that this topic has routinely been converging to, so let's give it a go.
If you're going to comment, please focus on specific, interesting things in the article that you're curious about.
Please don't post generic, shallow, obvious, indignant, and/or dismissive comments—those are repetitive and predictable, we've had more than enough of them, they're tedious, not what this site is for, and we don't need more.
This is a really well-thought-out, nuanced take. I really appreciate mixture of "but there are still servers", not being able to stop a gold rush, and (refreshingly) the technical take on the implementation details.
It stands in such stark contrast to other content. For example, a web3 chat app announcement I saw yesterday [1]. I even joined the Discord to learn more and just found...hype.
I found this parenthetical to be amusing:
> (visualizing this financial structure would resemble something similar to a pyramid shape)
The centralization of apis (infura, opensea and ethscan used by metamask) is the biggest problem. I could be wrong, but I don't think we've seen that fast consolidation in other early tech. I remember in the late 90s there were a number of search engines but no one really owned the space. Only 20 years later did Google emerge as the winner and is (IMO) by far the best in terms of relevant results. But that didn't happen overnight, and there wasn't a search engine dominating 90% of the market within a few years of the beginning of mainstream acceptance.
How hard is it to create a competitor to infura? MetaMask should be incentivized to do this as they're core offering is controlled by one party.
[edit] Never mind, metamask and infura are owned by the same company (ConsenSys). It's even worse than it appears...
Tally is a community-owned, open-source fork of MetaMask. From first impressions it looks like it will also solve some of the issues brought up in Moxie's (excellent) blog post, i.e decentralizing the node-> NFT->wallet Metadata routes.
Regarding the immutability of NFT image pointers:
Some emerging solutions to this issue are:
Use ERC2477 (DRAFT). This allows you to have some control over the metadata to ensure the name is as you want it. Note that this will require you to implement a zero-knowledge proof or a JSON parser on-chain which validates the new metadata.
Use 0xcert Framework. The 0xcert framework is specifically designed to provide metadata integrity for ERC-721 tokens, it uses a different hashing technique (Merkle tree). But it requires you to use the same schema across metadata versions.
Ceramic Network is doing some interesting work on schema coordination amongst other things.
> How hard is it to create a competitor to infura?
Infura is merely hosting nodes for you and exposing their JSON RPC endpoints. They did not _create_ the API.
There's already plenty of competitors in that space. QuickNode and GetBlock for instance, if you want mutualised/managed nodes. You can also host your own node yourself, or use e.g. AWS Blockchain to host it for you, or even use the public free hosted nodes that most blockchain project provide. It's just a Metter of trade-off between cost, time and security.
If you are using JSON RPC APIs (which most people do) there is nothing that locks you to Infura or any other provider.
> I don't think we've seen that fast consolidation in other early tech
I actually struggled with this point throughout the article. I'm not sure I see this as a parallel trend toward centralization like we saw with web2 - but rather that this is how software is built today and this is what we're comfortable with. It doesn't seem unnatural or problematic to me that we will start with something that approximates the world around us today and move toward the decentralized end state that apologists are hoping for.
I would argue consolidation and centralized elements are inevitable, the promise of true decentralization is like socialism: a promising theory but failed application.
There are voices within the space that have been talking about this issue for many years. There is at least one project which aims to use economic incentives within the design of the protocol to mitigate. Check out Saito.
> The centralization of apis (infura, opensea and ethscan used by metamask) is the biggest problem. I could be wrong, but I don't think we've seen that fast consolidation in other early tech. I remember in the late 90s there were a number of search engines but no one really owned the space. Only 20 years later did Google emerge as the winner and is (IMO) by far the best in terms of relevant results. But that didn't happen overnight, and there wasn't a search engine dominating 90% of the market within a few years of the beginning of mainstream acceptance.
> How hard is it to create a competitor to infura? MetaMask should be incentivized to do this as they're core offering is controlled by one party.
> [edit] Never mind, metamask and infura are owned by the same company (ConsenSys). It's even worse than it appears...
Currently working in the space (graduated from doing systems-level . My hot take is what is considered a "full node" can potentially use significantly less resources. The base word size is 256-bit (size of SHA256), most is either 1s or 0s, the entire raw Ethereum blockchain is roughly 350 GiB uncompressed, probably can be much better with zstd compression on multi-core. Let's just quietly ignore that most is not using an assembly-level optimized implentations of uint256 arithmetic operations. Also all the current clients (a) afaik run transactions single-threaded, and (b) no on-disk compression, (c) at best use mmap relying on OS level paging even though you're going to have 32-byte random reads invalidating entire 4K or 16K pages out of ~3TiB of read/write space. I'm more than certain execution can be ran speculatively using STM (software transaction memory). I seriously doubt that most Ethereum transactions within a single block have that much r/w contention if you were to execute them in arbitrary order in parallel. Basically application level speculative execution (except you know the ending hash ahead of time, so you know of the ending state is valid or not). Anyhow...
The fundamental problem with decentralisation is that it will always be less efficient than a centralised solution due to the overhead necessary for coordinating the system. This means increased costs of some nature. In order to justify those costs, the decentralised system has to add a sufficient amount of value compared to the centralised solution. And not only is that usually not the case, but, as Moxie points out, it is usually the opposite, because a centralised system can iterate more quickly.
And that is also true for the crypto/web3 world: Outside of some niches, it does not add any value. Almost anything it can do, existing centralised technologies can do better. The only reason they haven't so far is that most of these things are not terribly useful to begin with.
This is the exact argument for authoritarianism over democracy. Centralization is easier and often cheaper, but you have to trust the group in charge completely. Even then, the collective loses out on innovation and new ideas because only a small subset of the population is in a position to change anything.
Centralization is often a short term win, decentralization is a long play. Unfortunately, we almost always seem to chose immediate gratification which is why we see decentralization abandoned early, and why we see democratic freedoms being replaced by authoritarian control.
The fundamental problem is that problems with centralized platforms are attributed to centralization, and thus decentralization is seen as the answer. This is entirely false. Centralization and decentralization are just words that have an objective definition. Neither is inherently better than the other and choosing either as a solution to your problem is entirely context dependent. Anyone that has a stake in crypto / web 3 conveniently leaves this crucial piece of information. E.g. it's a different solution to the same problem, not a _better_ solution the same problem. Having options by itself can be a valuable use case, but I'm afraid the gold rush is not driven by the excitement for having options, but rather for the excitement of becoming rich quick.
Only looming at financial and corporate systems is a seriously limited pool of data. There are non profits, collectives, employee owned businesses, etc that are not a hierarchical structure but I don't think they would fall into the pool of financial or corporate structures.
fwiw I follow a lot of crypto people on Twitter and 0 of them are following this message app, it has 700 followers and you decide to jump into the discord? To me that’s like getting a random email about a product and saying “yes tell me more” I’m not sure what you are expecting.
>When you think about it, OpenSea would actually be much “better” in the immediate sense if all the web3 parts were gone. It would be faster, cheaper for everyone, and easier to use.
That sums up the situation for me. Having a marketplace for purely digital goods might be a concept with a future. Having standard ways to interoperate between different platforms and query and update these goods might make sense (although I still think it goes opposite to the general trend of walled gardens vs. decentralized web, I don't see why the IP owners would play ball and accept the loss of control).
The thing is that in most case those NFTs wouldn't be trustless. I see people putting forward that a use case would be an NFT that proves that your Rolex is real, or for Fortnite skins, or for the ownership of your house. But in all these situations, there's a very clear authority (Rolex, Epic Games and the municipal authorities, respectively). These authorities will be allowed to mint new NFTs at will (because who else?) and as such have to be trusted. That opens up interesting questions btw, like "who is Rolex exactly?" which creates a chain of custody of trusted authority involving trademark management among other things. But I digress.
But then as soon as an authority is identified, why bother with the extreme overhead (it terms of resources and costs) of blockchain tech? Couldn't Rolex issue a PGP signed CSV of all valid Rolex serial numbers once a month on IPFS and you'd get the exact same security and trust profile without having to involve any "web3" feature?
Like cryptocurrencies, the subset of problems that can only be solved using NFTs is incredibly tiny and speculators rush to make up use cases that, if you think about it for five minutes, clearly make no sense and could be better solved using good old centralized tech.
As the article points out, many NFTs are implemented by storing a URL in the blockchain; the digital artwork sits on some server and is reachable by that link. Fine, you can prove that you own the URL. But what that URL points to can change out from under you, so there's no way to make that trustless. If you own the domain and the server that it points to, the registrar can take the domain away from you and give it to someone else.
In a sense, NFTs are a lot like those schemes we used to see where some company will promise to name a star after you, even though no one recognizes their authority to do this. Fine, that URL is "yours". You just own a sequence of bytes, the ones in the URL, not the ones that the URL (temporarily) points to.
So, this has a really easy fix. The NFT points to a content hash, and the content is uploaded to the Internet Archive (and they're compensated for the storage) as part of the NFT minting process.
Your ownership is now on a distributed ledger, with a cryptographic hash of the content, paired with long term storage of said digital artwork. The Internet Archive's costs are ~$2/GB to store content in perpetuity, which seems insanely cheap to carve off as part of a transaction (Eth gas fees aside).
This was insanely surprising to me - I actually always thought the jpeg/art was stored as a kind of ‘blob’ on the blockchain that it was authenticated against the owners wallet/private key.
We need a version of Freenet, where the network _guarantees_ that your content is always highly available. Well, at least as long as the tech/network itself is still alive.
Every user of the network has to provide some storage for the network itself. If there's not enough storage to safely store your new content on the network as highly available, the network would just say sorry, can't do right now, please wait on the line while we get new storage (users).
Sure, it would need some massive network effect to work at scale, but we have now, what, billions of devices connected to Internet? That ought to be enough.
I never really understood this current "decentralized" tech. Decentralized hashes with centralized gate keepers, and mixed with "old school SPOF tech", e.x. the VPS's that store the actual content. wat.
Well the image could also be embedded in the data of the blockchain and/or a irreversible (currently) hash made for the image sitting on the server. Now will a court enforce that digital contract as a legal contract if the person takes down the server or puts up a different image? shrug I doubt it under current law.
I definitely agree that most people/projects/etc gloss over that fact that there still needs be a 'start of authority' to be trusted with NFTS. I think a major upside of doing the digital transactions on a Blockchain (as opposed to the system you described) is that the start authority does not need to be present or keep track of any future transactions. In your Rolex example, I believe that there would be no way of person A selling their Rolex (and digital rights of the Rolex) without notifying Rolex and Rolex having to keep track of transaction. With a Blockchain, the people could agree that the 'start of authority' matches the public address that is associated with Rolex and then proceed with the transaction with no need for any middle party.
I played a decent amount of Runescape growing up, so when I first heard of NFT's I naturally thought of that game. I would definitely find intrinsic value in truly owning an NFT of some of the rare in game items. And knowing that even if Jagex (parent company) disappears that I still have ownership over the items definitely adds a lot of value.
But see, this is where I get lost in this concept.
Should Jagex fold and the game become unplayable, what do you own? An entry in a database that says that you once had this item but you can't do anything with it? Why is that valuable?
I can sort of see the argument if other game developers allow for these items to be reused in other environments, and that's something pushed by NFT enthusiasts, but I don't see how that makes economical sense.
For one thing that puts a lot of work on the table of other game developers. If every NFT of every game needs to be usable in other games, can you imagine the headache? It's a combinatorial nightmare.
Besides devs want to make money selling their own NFTs, not adding items made by others for free, so what incentive is there for adding support for your rare Runescape item in some other game? Seems like devs would rather sell you a special "Runescape retro item set pack, only $9.99!"
And then we haven't even touched on IP issues. If you have an NFT of Lara Croft, can the devs of another game just clone the model in order to let you import her?
I feel like all of these issues by far dwarf whatever convenience NFTs bring to the table. The problems I outline above are the ones that need solving, and if you find a way around those you could very easily achieve what you want without "web3" tech (see Steam trading cards and Nintendo's Amiibos for instance).
> In your Rolex example, I believe that there would be no way of person A selling their Rolex (and digital rights of the Rolex) without notifying Rolex and Rolex having to keep track of transaction.
What does "digital rights of the Rolex" mean? Also, why is it harder to notify Rolex of this transaction than it is to notify some blockchain?
> Couldn't Rolex issue a PGP signed CSV of all valid Rolex serial numbers once a month on IPFS and you'd get the exact same security and trust profile without having to involve any "web3" feature?
A serial number can be copied and engraved onto a forged watch, so not really.
A more analogous scenario would be if Rolex embedded an NFC hardware chip with a private key inside the watch, such that anyone could wave their phone over their watch and verify that the chip’s cert was indeed signed by Rolex.
Well sure but that's the "analog gap" problem. NFTs don't fix that, do they? In the end there'll have to be something that will tie a given NFT to a given watch, and one way or the other it'll be the same issue as tying my CSV to a given watch.
This is sort of true.
In the case of the watch, if you read the blockchain for the serial-number on the Rolex, you could engrave that too? The storage medium of the data wouldn't make a difference.
The same could be said for the NFC chip. Those are copied all the time. Just purchase a blank and overwrite it with an original.
> NFC hardware chip with a private key inside the watch, such that anyone could wave their phone over their watch and verify that the chip’s cert was indeed signed by Rolex.
This is an excellent idea and I am now wondering why luxury brands haven't started doing this. It would be super hot. One would do it and suddenly they would all be doing it. Watches, handbags, shoes, whatever
This is one of the few usecases of crypto that kinda make sense. If those certs were on a blockchain, Rolex could fold and people in the future might still be able to check for authenticity.
There's more steps involved that I'm not sure could be solved, like, who controls the authenticity Oracle? Is it an API that gets pinged? Do you have to pay a gas or network fee to check authenticity? Could a smart contract be made to automate the work? Maybe it could work like credit card chips, which give out a one-time code to the retailer, who then gets it checked by an online service... except somehow replace the web API with a smart contract.
For larger scale operations, tagging individual items with NFC chips might be cost prohibitive.
The problem with traditional authority models is that the authority may disappear or be subverted. In regions with unstable governments you cannot rely on the government to keep saying that your house is your house.
This is why I think the really valuable and underserved use case of the blockchain is decentralized identity. You can prove you are who you say, you’ve studied where you claim, you’ve worked at the places on your resume, and do this in ways that cannot be subverted or lost. This would be invaluable for refugees who often struggle for months or years with proving they are who they are.
For people that live in stable countries with reliable governments and strong enforcement of contracts this does not provide much value however, and I think this is why this subdomain of web3 remains underserved.
> This is why I think the really valuable and underserved use case of the blockchain is decentralized identity. You can prove you are who you say, you’ve studied where you claim, you’ve worked at the places on your resume, and do this in ways that cannot be subverted or lost. This would be invaluable for refugees who often struggle for months or years with proving they are who they are.
That's a very interesting use case, but it's hard for me to see exactly how this can be made to work.
Suppose you study at the National University of Unstabilia, which is located in a disaster-prone and conflict-riven environment. You complete your B.A. there, and you get the NUU to record this fact on a public blockchain.
A few years later, things are really bad in Unstabilia, so you move to Belgium. After you arrive there, you tell someone (maybe a prospective employer?) "hey, I'm Joeri, I'm a refugee from Unstabilia, and I have a B.A. degree!". For some reason this person is skeptical, so you say "it's OK, just look up the blockchain record with the following hash!".
Sure enough, the public blockchain contains an entry reflecting that someone named Joeri did, indeed, earn a B.A. at NUU a few years back. This is great, because maybe
* Unstabilia City was mostly destroyed in an earthquake, making it hard to contact people there, and many of the people who would have known you during your studies have likely died or become refugees themselves; and
* Lately, the new NUU administration really hates your ethnic group, so much so that it prefers to deny that people of your ethnicity were just recently widely represented among its student body; and
* Many of NUU's records were previously lost in a fire; and
* Before that, someone reputedly hacked NUU's computer systems and stole all of their records, and probably all of their cryptographic keys.
But thanks to the blockchain records, your new Belgian friends can still confirm that you actually studied at NUU, right?
But, how do they know that that record is really from NUU? How do they know that NUU really exists? How do they know what its signing keys were, and how long they remained under the university administration's control? How do they know whether it's a legitimate university? And, maybe most significantly, how do they know that you're the same Joeri who earned that degree back in the day, as opposed to some other Joeri? Are these records including some kind of digitally signed biometrics?
None of that requires a blockchain. The same level of investment in digitization to get all of this info on to a blockchain could be used to publish it to the cloud, secured and authenticated by cryptography.
The blockchain gets you exchange, with completely transparent meditation, in the form of the smart contract / script code.
> In regions with unstable governments you cannot rely on the government to keep saying that your house is your house.
You can say it's your house all you want, but if the new regime sends soldiers to evict you, no amount of evidence that it belongs to you is going to help you.
Do you propose that "all" authorities provide digital certificates, in preparation for the region becoming unstable? If yes, paper certificates already exist, and seem to go missing -- why would it be harder for digital certificates to go missing? Or for the thing that ties one person to their digital certificates?
Or do you propose that authorities in unstable regions provide digital certificates? If yes, how can you trust them, given the unstable nature?
I value thinking about these things, but somehow I still struggle to see where the proposed extra value comes in. Maybe I'm thinking too much in extremes, and the value breaks down in extreme cases.
> I don't see why the IP owners would play ball and accept the loss of control).
The main reason would be if they could make more money on their digital goods by floating them in a large, open, heterogeneous market rather than in their smaller walled-garden. That's what traditional capital markets are good for, and the name of the game here is figuring out how to recreate those benefits in decentralized digital markets.
I am only interested by money aspect of crypto and especially on ability to fund companies easily via labor (actually that worked well in Communism). Will see if central bank currencies will allow for the same. That could be big boost to economy and big hit to VCs so I expect this to come from EU.
All those creator economy apps show that there's a need to democratise economy. I am again tempted to quote hustlers here.
>>Rolex issue a PGP signed CSV of all valid Rolex serial numbers once a month on IPFS and you'd get the exact same security and trust profile without having to involve any "web3" feature?
This doesn't enable real-time transfers of NFTs.
Ideally, the blockchain allows the NFTs to be traded without Rolex relying on another company acting as a trusted third party platform keeping track of ownership, or Rolex itself running its own transaction database. The blockchain is a common open platform for transactions, and that's useful.
> Couldn't Rolex issue a PGP signed CSV of all valid Rolex serial numbers once a month on IPFS and you'd get the exact same security and trust profile without having to involve any "web3" feature?
They totally could. But what’s interesting about NFTs is they standardize this process across all kinds of assets and issuers. Instead of a CSV for Rolex, a Twitter history for an artist, a deed for a house, a rental agreement for an Airbnb, it’s all just one format.
In the past, there’s been tremendous value that’s come out of standardizing stuff, allowing infrastructure and new kinds of businesses to be built on top.
It would be easy to create standards for Digital Asset and Identity so that producers could represent ownership on their servers and allow for trade. The only thing NFTs give you is hosting for this in a logically centralized network. Hypothetically, this allows for operations on different contracts to be composible, but I don't think this happens much in practice.
While it's refreshing to hear critique from someone who actually built something on web3, there are a couple of points where I'd dare to disagree, somewhat.
Particularly, regarding "early days". It really is, still, early days, because there is a lot of complexity in getting all the pieces built. It took years to get overall blockchain going. Then, to understand the need of programmability (smart contracts). Other pieces too: more efficient consensus mechanisms and clever ways to express commitments, decentralized storage, etc. And the space is so far from being done.
Particulary, about servers being clients. This is true today, but it would be wrong to say that nobody cares about it. Ethereum developers spend considerable effort on pushing the idea of light clients, going as far as re-architecturing the way whole blockchain state is stored, so that browsers could actually become fully valid clients, and services such as Infura would become a lot less necessary. This requires cryptographic innovations (verkle trees), client implementations, consensus between participants, etc. It is likely to require 2+ years to get there. Early days.
Another moment I would critique is the clever NFT, that displays different things. Yes, ERC-721 allows any URL as metadata file, so you can put traditional DNS-resolved URL there. But I would struggle to find any "respected" NFT collection that actually does that. Almost every high quality NFT project (Art Blocks, BAYC, so on) has IPFS as metadata URL, and goes as far as to freeze metadata, so it couldn't ever be changed.
Lastly, his discussion about value of decentralization is very valid. Yes, Ethereum developers spend a lot of effort on light clients. Will anyone care to use them? Yes, best NFT collections freeze metadata pointed to IPFT... does anyone care? Success of OpenSea and Binance Smart Chain shows that for many, idealistic goals are irrelevant, as long as money can be made. That's fine. But there are some of us who actually care. Majority has uninteresting goals (money). There are still amazing gems to be found.
Re "early days," servers as clients, etc: There are a lot of very real problems with crypto, and the solution always lies in new technologies. Slow settlement and high gas fees? L2 networks. Limited global TPS? More L2 networks or alternative L1 chains. Wasteful energy use? Proof-of-stake. No connection to real world data? Oracles. Relying on centralized APIs? Light clients are in the works. Can't trust that you'll get an untampered version of the dapp? I don't even know the solution for this but I saw a very complicated flowchart about it, so I assume there is one.
Every layer adding more complexity and more fingers in the pie.
All the while, nothing ever actually seems to get fixed. Like, high gas fees has been a conversation for years and clever people have made dozens of solutions, but everybody seems to still use vanilla Ethereum.
And these problems don't seem to be the usual problems of new technologies dealing with limited feature sets and primitive tooling, these problems fundamentally undermine the whole point of blockchain. It's not like you can only make simple distributed apps and more advance stuff will arrive as the space matures, you literally can't make a practical, truly distributed app at the moment.
The more I learn about web3 the more it seems like vaporware, and the end result will be a bunch of web3-in-name-only, VC cash-grab apps.
I'm sorry, it's difficult for me to find a truly charitable interpretation of this response. But I'll do my best.
Blockchains started very simply. Famously, Bitcoin's whitepaper is just a couple of pages long. Simple systems are nice, but they can't solve every problem. As problems were discovered, solutions were proposed. Most solutions were themselves the simplest solutions to a given problem, so naturally, as new problems are found, new solutions almost always introduce complexity. This is not unique to crypto - see, for example, HTTP, or HDMI…
I can't see a world where this wouldn't happen. Ideas usually start small and simple. Additional capabilities introduce complexity. That is not a bad thing.
Also not a bad thing: people taking different approaches to identified problems. Ethereum saw congested L1 and didn't want to sacrifice decentralization, so they focused their effort on L2. Other developers thought differently, and adopted faster, less decentralized L1s. Great!
> you literally can't make a practical, truly distributed app at the moment
Another issue is that the goalpost is ever-shifting. We have truly distributed apps. Because they were successful, they got used, and on one particular L1 that meant expensive competition for block space. Does that make the achievement invalid? Or does the fact that most popular browsers currently don't have built-in integration with ENS and IPFS, allowing for decentralized frontends, also make the effort invalid?
Again, I struggle with truly charitable interpretation of your argument.
"All the while, nothing ever actually seems to get fixed."
Meanwhile, Bitcoin just works, and it is fairly easy to understand.
Every once in a while I try to get excited about Ethereum. They really do seem to think about a lot of interesting things and try to address them. But at the end of the day, it all just seems way too complex.
As for NFTs, I think they could just be colored coins on the Bitcoin Blockchain, which would also be easy to understand.
I don't buy the early part either, but "3 years into the internet we had emails and tcp" is the wrong way to critique it IMO. The "Internet" meaning IP was already the 3rd or 4th (or more) attempt at trying to create a computer networking standard. Predecessors to the internet include: ARPANET, Usenet, FidoNet, BBSes, and CYCLADES, if not more. By the way, Email existed on _all_ of these platforms before TCP or even IP. Usenet used UUCP to transfer Internet Messages (the format used by Email later on). FidoNet had EchoMail. BBSes had their own custom mail message like standards. The Internet also had a direct competitor in the form of France's MiniTel.
In hindsight, it seems like "3 years into the internet we already had emails and TCP", but the seeds for these things had been in the works for a decade plus. It's a testament to the massive success of the internet that we _think_ in hindsight that "3 years into the internet we had emails and tcp".
When writing code for a blockchain today, even on an Ethereum L2, you're in a very resource-constrained environment where you end up using bitpacking tricks and the like. That's how it was for early computers, too, of course — they may serve as a better analogy. Programmable computers have taken decades to develop, beginning in ~1950, and I expect that decentralized computation will follow a similar path.
There simply are numerous hard problems to solve to make this all work at greater scale. In a healthy ecosystem like Ethereum's, there are frequent research discoveries (discovery of the concept of data availability, the application of BLS signature aggregation, proposer-builder separation, zkevm, data availability sampling, ...). The software engineering effort required to implement such research is colossal as well. Eventually we'll even see e.g. specialized hardware for efficiently producing or verifying zero-knowledge proofs.
It would be easy to look at the very early computers, which were perhaps not all that useful, and shrug — but that take wouldn't have extended well into the future as the technology scaled.
It’s extremely disingenuous to say we have “nothing”. The EVM and smart contracts really are amazing technology that I hope any technical person could appreciate, even if they don’t see a practical application.
I'd add that having a globally readable ledger encourages interoperability in ways we can't yet appreciate.
I believe that ERC-731 is valuable for the same reason that GIF89a is valuable.
I don't think anyone in 1989 could have predicted meme culture and the importance of the gif, but it happened because an enabling technology (communicate with animations) arrived and people started experimenting.
NFTs will probably become part of daily life in unexpected ways, because an enabling technology (cryptographic ownership of assets) has arrived and people are starting to experiment.
> I believe that ERC-731 is valuable for the same reason that GIF89a is valuable.
GIFs can be created, parsed, read, played, copied, deleted on commodity hardware for free. GIFs became popular because they were so easy to exchange because video formats were so heavy and patent encumbered at the time (less so than GIF was, anyway). The cultural phenomenon of reaction GIFs arose because of its accessibility.
Tell me how a child is supposed to safely do the following: easily create a wallet, somehow get some Ethereum, and starts minting and/or buying NFTs. None of that is even remotely comparable to ease of use of GIFs on the internet.
If you want to argue that "cryptographic ownership of assets" is going to be commonplace, that's fine, but only for strictly digital onchain assets. It's never going to apply to any asset in meatspace because humans have sticks and stones to get what they want and renders your claims irrelevant.
If you lose access to your wallet for whatever reason, be it fire, flood, social engineering, forgetting your password, death, solar flare, it's gone forever. If you depended on it for anything important, there's no recourse. Let's say there are cryptocoin insurance companies. How do you prove that you don't secretly still have access to your wallet?
>Another moment I would critique is the clever NFT, that displays different things. Yes, ERC-721 allows any URL as metadata file, so you can put traditional DNS-resolved URL there. But I would struggle to find any "respected" NFT collection that actually does that. Almost every high quality NFT project (Art Blocks, BAYC, so on) has IPFS as metadata URL, and goes as far as to freeze metadata, so it couldn't ever be changed.
The problem with digital art is that it is infinitely copyable (at no cost) and untraceable (with little effort, and a huge/impossible effort to trace backwards). There's nothing stopping an artist from selling a work of art as edition 1 of 1, and then a month later "minting" another copy or 10. Secondly, there's no way to prove the image uploaded is from the original owner. What happens if someone steals someone else's work, mints an NFT and sells it, and the buyer finds out the next day?
Thus, I cant be convinced a "respected" NFT collection / distributor can exist.
> There's nothing stopping an artist from selling a work of art as edition 1 of 1, and then a month later "minting" another copy or 10.
There is a social cost to making a promise and breaking it.
> What happens if someone steals someone else's work, mints an NFT and sells it, and the buyer finds out the next day?
Don't buy from random sources. You have similar problems with Pokemon cards, for example. Lots of fakes and it's often hard to tell a fake. However, people have found ways around the issue.
My understanding of IPFS is that there is some DNS-and-HTTP translation step that resolves content to IPFS locations. Is that correct, and is it immutable? How does that work?
There are many gateways that allow viewing IPFS content over HTTP (e.g. ipfs.io), but the "true" IPFS experience is not over HTTP, it's done via P2P and addressed using content hashes. For example, one of my NFTs has content hash of
QmTqkpmbKmciQgqhUWpML7dsJ59MBEjgQd7wH853n4ASZM
I keep a copy of it on my computer (+ backups). If for some reason it were to be unhosted by every IPFS participant, I could become one, and re-establish my NFT. Image content -> content hash, so everyone would agree about content re-establishing.
Content on IPFS is keyed by hash values. The data is immutable at least to the extent that it's impractical to find a hash collision with sha256 (today). The content will also only remain up so long as someone (either the initial submitter or others) has it pinned. Otherwise, the content will, eventually, disappear.
> It took years to get overall blockchain going. Then, to understand the need of programmability (smart contracts)
When was this need "understood"? When was it realized? How exactly?
I find it a bit paradoxical to say that "we understood the need for smart contracts right after the blockchain was invented". What problem did smart contracts solve when they were invented?
That's not quite right. The JS source code is committed on chain via a contract interaction and every minted token gets a token hash which, when run through the JS source, can recreate the art.
But...the execution environment is still your web browser and non-animated Art Blocks NFTs still have a "preview" stored off-chain like most other. Neither running the code in your browser or retrieving the preview is an on-chain operation.
Moxie makes so many good critiques (some are so subtle, it might be worth a second read). I got the sense he’s trying very hard to be even handed and constructive about a situation he feels pretty badly about, but his true feelings are bleeding through in some of the side points / parentheticals.
One point that I disagree with is his almost axiomatic premise that decentralization is an inherent good and the implication that the Internet went wrong because it failed to stay decentralized. To hint at great cryptography as the solution, as he does im his conclusion, is baked deep in his bones as an amazing cryptographer, but I think he’s prescribing the wrong cure. The problems with the Internet are fundamentally not about decentralization - they’re about trust. It’s a people problem, not a technology problem. Because of this, cryptography (I do not mean crypto) simply cannot be the answer - even the best cryptography is, like a great legal system, only capable of dramatically reducing the overhead costs and risk of operating in a given environment. When it comes to what great cryptography can achieve, I think HTTPS and maybe some E2E stuff that’s happening with Signal is as good as it can get (interestingly, HTTPS is good in large part thanks to Moxie) - it cannot bring us back to some golden Internet age.
It’s pretty interesting to consider the intersection between what counts as “people” and “technical” problems.
For example, concurrent version control systems (like perforce) were horrible. This can be thought of as a technical problem, but it was actually right at the intersection of something technical and a people thing. What git understood is that having a canonical repo was a people issue, and it correctly abandoned a central “source of truth”… basically no amount of technology can fix what is a people problem, so no repos are “special” or “the one” from a technical point of view. It then forced people to sort their shit out. However, because of this insight, git was able to get the technical aspects spot on. It correctly recognized that what was needed was the right data structure. Git is extremely simple software, that basically does two things really well: branch and merge, but it needed the right data structure.
I think talking about centralization (APIs and infrastructure) vs decentralization (protocols) as a people vs tech problem is exactly the same sort of thing, and to get the correct view on it you have to really mail in detail where the people/tech problems begin/end.
it's impossible to talk about trust without talking about cryptography.
from an implementation pov "trust" is a distraction where anyone can quickly derail any argument citing "Trusting Trust" or "the show me the root of trust" ...
So to avoid meta-discussions talking about cryptography instead of trust skips the noise and goes straight to the heart of the issue.
Consider this:
- Talking about cryptography is hard but it's unambiguous.
- Talking about trust is easy but ambiguous.
Cryptography forces us to look at the reality of implementation instead of a "meta-psychological concept" from meat space. Problem with talking about trust in engineering is that we like to lift things from meatspace and model it within the digital space.
But we forget trust isn't "a thing", it constantly changes, it's useful only as a tool to accept randomness/chaos of life. And so we'll perpetually fail when discussing trust in the digital space or try to pin it down in order to allow converting it into a spec or an implementation.
And I think Moxie understands this and so skips the noise by going straight to cryptography which is the only "tool" that is meaningful when we talk about the things we base trust assumptions on (cia triad).
To be fair, the vision of crypto isn't to revert the web back to when it was better, that is pretty much not possible. That doesn't mean it can't lead us somewhere forward, different from the past, that is also better.
> One point that I disagree with is his almost axiomatic premise that decentralization is an inherent good and the implication that the Internet went wrong because it failed to stay decentralized.
But isn't decentralization one of the points of crypto and Web3? It doesn't matter if Moxie agrees with decentralization or not. If the direction everyone is charging in is "decentralization", and it's not really decentralized, then it's a movement that isn't heading where it thinks (or where it claims). That's still true, regardless of what Moxie thinks the direction should be.
The golden internet age was innovation and community. You wanted your own X? Code it yourself. You looking for a certain subject? You may find a forum.
Web2 has been polluted by frameworks, modules, libraries and that the generic website now looks like the next. It hasn't gotten any easier its gotten harder. Where do you actually start if you want to create a new website or "app"?
My mother knows html, she has her own website. When it comes down to wanting a gallery to display her portfolio the easiest answer is to say "install wordpress". Which isn't easy in any shape or form.
And then if you wish to be part of Googles Search Engine you have to pay sponsorship.
The golden age was the innovation, the new, creativity, surprisingly freedom. Folk putting work in to developing a new platform.
Sadly we are now surrounded by walled gardens and one of the caveats are that if you want it on display, you have to pay.
Isn't the fundamental discussion we should be having if decentralization embodies trust? Is something decentralized automatically trustful? Or can trust only be established in a decentralized way? Which way is it?
The only thing I see people agreeing on is that centralized setups are never (infinitely) trustworthy.
This is insightful, but a bit depressing. How do you propose solving these problems if cryptography is not the answer? At least Moxie is suggesting that there is a viable path forward by focusing on solutions that decentralize the infrastructure.
We have centuries of data and precedent from human legal systems. How could human and machine governance be improved with the aid of modern technology, including but not limited to, revision control of legislation and public caselaw, graph databases for threat analytics across time/space/network, automated identification of gaps in machine governance which require human intervention, and yes, all the tools of web3/crypt0.
"With the shift to mobile, we now live firmly in a world of clients and servers – with the former completely unable to act as the latter – and those questions seem more important to me than ever. Meanwhile, ethereum actually refers to servers as “clients,” so there’s not even a word for an actual untrusted client/server interface that will have to exist somewhere, and no acknowledgement that if successful there will ultimately be billions (!) more clients than servers."
Finally someone articulates the problem with crypto. People don't want to run their own servers, and they sure as shit don't want to run their own banks. So in theory you have a decentralised trustless web or financial system, but in practice, everyone is trusting someone to run a node for them. Which is exactly how the web and finance work now.
If people want banks, they can have them. At this point exchanges have become the banks of the cryptocurrency space. Lots of people just leave their coins in the exchanges, they even have savings accounts.
The ability to withdraw the money and use it directly with no third party involved is still important. Especially since governments are already implementing digital currencies that will be fully under their control.
How is withdrawing your crypto keys from an exchange functionally different from hiding jewellery around the house? At least the value of the jewellery is far less volatile, plus you can wear and enjoy it, which makes you less likely to lose it.
Yes yes you can memorise some encryption key, but that poses its own problems - what happens to your money if you die or become non-compos mentis?
Ultimately any sane person ends up trusting someone, whether a bank, an exchange, a lawyer or safe deposit box. Crypto removes the need for trust with a pretty extraordinary and elegant idea, but nobody actually wants it.
This is not a problem with crypto, because there are solutions to this, it's a problem with how people use it. The real danger is that people get too comfortable with this way of doing things and we never switch to more secure solutions.
The same thing can be said of the web in general. The linked article even makes this point! If in the early web users all wanted to run their own servers the centralization of web 2.0 would not have happened. Is there any reason to think that history won't repeat itself and users will choose to use web3 technologies the "right" way?
First of all, nobody participating in a blockchain protocol is running their own bank, no more than you are running the country when you vote for president.
Secondly, you are correct that in Web 2 people do not desire to run their own servers or analogously in crypto today they do not want to run nodes. But many people do want to mine - its a massive industry, but the issue stands, the nodes connecting people to the network and serving the data end up centralized; The Infura Problem is a great example of this. Infura was started by Ethereum founders to run Ethereum nodes that the standard wallets (the biggest of which, Metamask, made by the same organization) connect to by default.
The issue is that the Ethereum network is deeply reliant on both consensus and data-distribution, but it only compensates infrastructure for consensus - the miners - and in the future, stakers. Bitcoin is not as deeply affected by this because of its low data throughput, but its worth noting that non-mining nodes, which are essential to non-miners having a say in the network, are volunteering. These nodes are also responsible for distributing transaction data when miners use a modified Bitcoin Core Client designed to try and gain advantages by selectively sharing.
The miners on each network and those who run businesses around it don't want the networks to crumble, so they end up doing the work of nodes, but at the bare minimum. In Ethereum this means centralized node hosting services - that's a reality of the state of the network at this point. The solution is to start compensating both aspects of the network, because both are important. This not only re-decentralizes the nodes' motives and control, but it also means that distributing data more efficiently offers more rewards, so node operators are rewarded for scaling the network. The key concept here is that if the network does not compensate for its vital functions directly and proportionally to performance, then those functions will simply remain on life support.
The average user (the same user that doesn't want to be bothered with running a server at home) doesn't care about this, I don't think. Most people would prefer to rely on a trusted authority or expert for this sort of thing.
When talking about democratization, the average user is probably the only user that matters.
This is more a problem with Ethereum rather than with "standard" crypto.
For mobiles you have "SPV wallets" that does communicate with many other nodes while verifying block headers and that the transactions you're interested in are included in the blocks.
So an SPV wallet doesn't contain the whole blockchain, but to cheat it (and make you see invalid transactions), you need to generate a fake block, which is just as expensive as creating a real and valid block.
And all that's needed is for you to find a single node you can communicate with
I'll be honest I had no idea that access to Ethereum is effectively gate-kept by two centralized entities (Infura, Alchemy). I knew there were only one or two true Ethereum full-nodes, but the impact of that never quite clicked.
Me either. I had no idea that accessing a link to NFT-described content went through OpenSea for content that isn't even hosted by OpenSea. That's apparently a MetaMask thing. Supposedly a MetaMask wallet can connect to any willing node, but in practice they use the Infuria->OpenSea server.
Yes, you can run your own Etherium node and server, and connect a MetaMask wallet to it.[1] As Moxie points out, nobody wants to do that.
Worse, the blockchain does not, apparently, contain the hash of the data. You can't even prove you even have access rights to the data if the hosting service goes down. All you own is a link to a URL.
There are more Ethereum full nodes than two, but how many will accept web queries? That's a service.
> Worse, the blockchain does not, apparently, contain the hash of the data.
It very often does, and it is certainly the case for most high-value NFTs. It is indeed not the case if you create your NFT on OpenSea and do not take the additional step of freezing the metadata.
Also, there are many artworks that change, so a hash to a single file is not necessarily the right solution.
Bit that it'd be very practical, but the data itself is shared so in theory every company could set up their own API to render the blockchain into a readable, quick to access format. Even the vanished poop emoji NFT would reappear once someone else renders their view on the blockchain in the right way.
The problem with this is that running servers that store and process one or even multiple blockchains in a searchable way is terribly costly and inefficient. In theory the public ledgers are all safe against locking away data, like Google or Microsoft could do with your accounts in the real web, but in practice nobody wants to be the guy making a loss on serving blockchain views.
If web3 ever gets off the ground, it needs more of these access provider companies. Perhaps even a prebuilt system you can throw onto your own server to participate, like IPFS and other existing decentralised systems provide.
I'm still not clear on the actual benefit of the cryptocurrency web other than the concept of "owning things without legal protection or oversight" which I (and I believe most people) have very little interest in if it comes at the premium it comes at today. From a technical standpoint all of this blockchain stuff is awesome, but it's an awesome solution in search of a problem.
In practice none of this is happening. All the major wallets query OpenSea to determine what NFTs an account has (according to the article). anyone can access the data but that doesn't change what the wallets query. I can start my own wallet that directly calculates who owns what using the blockchain, but that sounds computationally expensive and there's no guarantee that anyone would use it.
"In theory" the data is open. but I believe that the point of the article is that unless I'm running my own node, data visibility is limited to what someone else tells me. and here, in reality, OpenSea has decided to delist the author's NFT and they have no recourse.
Problem is who cares if you run your own servers when everyone you know is viewing NFTs through servers which are manipulating the data like Opensea is.
It is costly, but not inefficient. This is what we do at my company and our products monetize our blockchain indexing operations. We are doing it all open source and are in the process of decentralizing our operations, so that:
1. anyone who operates a node can contribute time on their node for a share of our revenue
2. anyone can host one of our blockchain crawlers for a share of our revenue
3. anyone can contribute storage to our platform for a share of our revenue
We currently support Ethereum and Polygon, and are expanding to more chains.
I found this an excellent article, but the HN discussion (not calling out your comment specifically) seems to miss the fact that, as programmers, it is fully within OUR power to create the world we want to operate in.
Edit: To clarify - we run our own nodes. Currently on AWS but we are running out of credits soon so soon in our offices and living rooms, and eventually in data centers.
I'm curious what would happen if somebody uploaded illegal data (e.g. child porn, sensitive PII, or government secrets) to an Ethereum contract. Would these nodes be legally required to filter it? If you look at something like the Pirate Bay, it's not simply enough that you are an allegedly content-unaware service -- once you become aware of your service being used for or distributing something illegal, you are required to mitigate it. At the end of the day, these are businesses which operate within a jurisdiction and must act in self-preservation.
But at the point where they start filtering transactions/addresses, there's going to be big questions about what is the true view of the blockchain.
IIRC this happened years ago on the bitcoin blockchain. I guess that nobody seems to care about that data being shared across every full wallet because bitcoin's primary use case is too remote from data sharing ?
In what sense is it "gate-kept"? Isn't the complaint that in practice most people probably use those two services? As far as I know those two services don't do anything to try to force you to use them, and people just use them out of convenience because "People don’t want to run their own servers, and never will."
The potential for single points of failure (or even intentional abuse) does exist because of this de facto dominance of two service providers, but as far as I can tell there's nothing stopping anyone from running their own node and connecting their various cryptocurrency wallets to them other than the money and inconvenience of running your own server.
> As far as I know those two services don't do anything to try to force you to use them, and people just use them out of convenience because "People don’t want to run their own servers, and never will."
Indeed, but one could make the same claim re any Web 2 juggernauts like Google and Facebook. You don't need to use them, sure. You can start your own social network. It's just expensive and inconvenient. This is what causes centralization and gatekeeping in the first place. It becomes self-reenforcing.
The concern is that since these companies are iterating faster than the protocol and providing their own API services that apps/products built on these platforms will not in fact be portable, and in practice will suffer from the same lock-in and network effects as web2.
The point is if you buy a stylized poop icon but the pseudo-gatekeeper company deems they want to shut off that part of the blockchain what are you going to do? Are you going to download and maintain 20 PiB of data on a server to keep your unique one-of-kind poop icon? The same could happen in the future to actually valuable things like a contract/NFT between you and another party.
Analysis of blockchain transactions is also consolidating around middlemen too! If you're trying to read data off of the blockchain for professional analysis purposes, you'll find a lot of working analysts are using sites like Dune.xyz, which stick a SQL interface in front of data slurped from the blockchain and charge a pretty penny to access it.
(Wouldn't be surprised if they're slurping from middlemen services themselves)
We have built an open source tool that you can connect to any node (on an Ethereum-based blockchain) and instantly start building datasets about contracts that you care about. All you need is their ABI.
We are committed to keeping this code free. Our policy is only to charge for our operational expertise, but all the code that we use is open source. We are in the process of opening our platform up for decentralization (so anyone can contribute node time, storage, etc.).
There’s no real reason for this to be honest. The Web3 projects I’ve worked on tends to fall for centralized services like Infura because of development needs at first and then it’s just easier to use it for production. I’ve made a decent living for the last two years setting up test infrastructure for Web3 projects due to its complex nature. This is true across all blockchains, not just Ethereum. It’s an area ripe for new DX products.
New products? Would those be more centralized platforms, or is it feasible for me to connect to the blockchain, verify stuff, and so on if I am running my own server?
It still seems that my users on phones and browsers would need to trust me in that case, right?
It's not gate-kept, it's just that it's not easy to run your own node and synchronize to the chain (especially if you're on mobile) so people don't do it and instead decide to trust public nodes.
It's the early days, remember how long the internet worked with http:// ? It's only in 2009 I believe that Facebook switched to https://
I should have said archival nodes, the ones that keep state back to the genesis block. I don't know if that number is even tracked anywhere. I've read estimates ranging from 2 to 5. I'm trying to find where I read that, happy to be wrong - or right, if anyone has data.
[edit] Here. [1] And here. [2]
After examining every which way we could think of to add the Trie state to our Ethereum state, we asked Vitalik for assistance. His first comment to us was “oh you’re one of the few running one of those big, scary nodes.” We asked him if he knew of anyone else running a “big, scary node” to see if we could possibly sync with them. He knew of no one, not even the Ethereum Foundation keeps a full archival copy of the Ethereum chain. [2].
Its a bit of a well kept secret. It does not represent maliciousness on the part of Ethereum or centralized node providers - its a consequence of the network doing nothing to compensate for nodes to deliver data to-and-fro. Miners and businesses stand to lose if the whole network crumbles, so the bare minimum is done to supply nodes, which means centralized node hosting.
A fully scalable, sustainable and decentralized network compensates all infrastructure important to the network, which means mining (consensus) and transaction/data routing. A nice side effect of rewarding data transmission is that you incentivize speed, so scalability can happen naturally with no conflicts of interest between miners and users.
Check out Pocket Network, it's a web3 network protocol that incentivizes node operators to run ethereum nodes (and other blockchains). Effectively decentralizes Infura / Alchemy https://www.pokt.network/
It's not gate-kept by two centralized entities at all, there are a lot of alternatives many completely decentralized. This author is clearly new to the space and hasn't really done much research, outside 5 minutes of google.
You're not wrong, but it can be a fantastic experience if you do have your own self-hosted node. I run the geth node on a linux server and can connect to it to send blockchain transactions or retrieve information from the chain. Example: my tax prep software took my wallet addresses and found all my uniswap trades by querying the local node.
At the risk of displaying my ignorance and lack of knowledge about this area, one part I found very familiar in this article is that the action interactions in his apps didn't actually interact with the blockchain, but essentially with two centralized services.
My very limited understanding is that for blockchains essentially the way to distribute them is that every node has a full copy. This sounds awfully expensive in the long run. My intuition would be that once running a node is expensive enough, this would not be truly decentralized. If I can't get the fundamental information out of a blockchain myself on hardware I can afford, the actual properties of the blockchain don't matter anymore as I cannot access them myself.
The moment you need to rely on third parties, you lose any unique properties a blockchain might have. I don't know how this would work if blockchains inherently are inefficient enough that you always need a way around querying them directly. I find the idea of a distributed trust-less database interesting, but if it is so inefficient that I can't actually access it myself that idea doesn't seem that interesting anymore.
Except that as you say, it's too expensive for every node to have a full copy, so there will only be a few dominant players. If that's the case, web3 will be like what we have now, where instead of the dominant players being Google, Meta, and Amazon they will be the two or three dominant web3 companies, with a few smaller people trying to keep up.
You are massively over estimating how much a copy of the entire history of ethereum costs.
You can store the entire blockchain on a 1 tb harddrive.
The cost prohibitive nature is only running an open rpc that you tell hundreds of thousands of people about. Then you will have to deal will letting all those people access that 1tb of data.
Quicknode lets you have a private rpc with the full history of the chain for dollars a month.
That's not how decentralized blockchains work, you participate in staking or as a validator, there are no "companies", it's open source and decisions ar3 made from the ground up, meaning your are a participant. Also to say every node needs a full copy is about 5 years behind what's currently happening in the space.
> blockchain data providers obviously need to provide the exact same data
That's not obvious to me. I'd expect that companies could be asked to censor certain parts of the blockchain, and would then hide those parts in their API. I would also expect that transacting with certain addresses could be blocked, and companies could enforce that in their APIs.
This article also helps me appreciate how important the "small node" approach is. Bitcoin and Ethereum nodes can run on $200 of hardware (a basic Raspberry Pi + 1 TB drive). And even that investment is inaccessible to most.
>> At the risk of displaying my ignorance and lack of knowledge about this area, one part I found very familiar in this article is that the action interactions in his apps didn't actually interact with the blockchain, but essentially with two centralized services.
Absolutely correct. Extremely flawed reasoning regarding blockchains and web3 on Moxie's part. He actually created more confusion than enlightenment.
If you're going to comment, please focus on specific, interesting things in the article that you're curious about.
Please don't post generic, shallow, obvious, indignant, and/or dismissive comments—those are repetitive and predictable, we've had more than enough of them, they're tedious, not what this site is for, and we don't need more.
https://news.ycombinator.com/newsguidelines.html
It stands in such stark contrast to other content. For example, a web3 chat app announcement I saw yesterday [1]. I even joined the Discord to learn more and just found...hype.
I found this parenthetical to be amusing:
> (visualizing this financial structure would resemble something similar to a pyramid shape)
Pyramid-shaped financial setups indeed :).
[1] https://twitter.com/MessagePartyApp/status/14791510011813765...
How hard is it to create a competitor to infura? MetaMask should be incentivized to do this as they're core offering is controlled by one party.
[edit] Never mind, metamask and infura are owned by the same company (ConsenSys). It's even worse than it appears...
Regarding the immutability of NFT image pointers:
Some emerging solutions to this issue are:
Use ERC2477 (DRAFT). This allows you to have some control over the metadata to ensure the name is as you want it. Note that this will require you to implement a zero-knowledge proof or a JSON parser on-chain which validates the new metadata.
Use 0xcert Framework. The 0xcert framework is specifically designed to provide metadata integrity for ERC-721 tokens, it uses a different hashing technique (Merkle tree). But it requires you to use the same schema across metadata versions. Ceramic Network is doing some interesting work on schema coordination amongst other things.
https://ceramic.network/
https://tally.cash/community-edition/
> How hard is it to create a competitor to infura?
Infura is merely hosting nodes for you and exposing their JSON RPC endpoints. They did not _create_ the API.
There's already plenty of competitors in that space. QuickNode and GetBlock for instance, if you want mutualised/managed nodes. You can also host your own node yourself, or use e.g. AWS Blockchain to host it for you, or even use the public free hosted nodes that most blockchain project provide. It's just a Metter of trade-off between cost, time and security.
If you are using JSON RPC APIs (which most people do) there is nothing that locks you to Infura or any other provider.
I actually struggled with this point throughout the article. I'm not sure I see this as a parallel trend toward centralization like we saw with web2 - but rather that this is how software is built today and this is what we're comfortable with. It doesn't seem unnatural or problematic to me that we will start with something that approximates the world around us today and move toward the decentralized end state that apologists are hoping for.
Here's[0] an example doing it on k8's. I had something similar running on GCP in a couple hours. It's been running for a month with no issues.
0 - https://messari.io/article/running-an-ethereum-node-on-kuber...
Dead Comment
> How hard is it to create a competitor to infura? MetaMask should be incentivized to do this as they're core offering is controlled by one party.
> [edit] Never mind, metamask and infura are owned by the same company (ConsenSys). It's even worse than it appears...
Currently working in the space (graduated from doing systems-level . My hot take is what is considered a "full node" can potentially use significantly less resources. The base word size is 256-bit (size of SHA256), most is either 1s or 0s, the entire raw Ethereum blockchain is roughly 350 GiB uncompressed, probably can be much better with zstd compression on multi-core. Let's just quietly ignore that most is not using an assembly-level optimized implentations of uint256 arithmetic operations. Also all the current clients (a) afaik run transactions single-threaded, and (b) no on-disk compression, (c) at best use mmap relying on OS level paging even though you're going to have 32-byte random reads invalidating entire 4K or 16K pages out of ~3TiB of read/write space. I'm more than certain execution can be ran speculatively using STM (software transaction memory). I seriously doubt that most Ethereum transactions within a single block have that much r/w contention if you were to execute them in arbitrary order in parallel. Basically application level speculative execution (except you know the ending hash ahead of time, so you know of the ending state is valid or not). Anyhow...
And that is also true for the crypto/web3 world: Outside of some niches, it does not add any value. Almost anything it can do, existing centralised technologies can do better. The only reason they haven't so far is that most of these things are not terribly useful to begin with.
Centralization is often a short term win, decentralization is a long play. Unfortunately, we almost always seem to chose immediate gratification which is why we see decentralization abandoned early, and why we see democratic freedoms being replaced by authoritarian control.
Deleted Comment
Deleted Comment
Deleted Comment
That sums up the situation for me. Having a marketplace for purely digital goods might be a concept with a future. Having standard ways to interoperate between different platforms and query and update these goods might make sense (although I still think it goes opposite to the general trend of walled gardens vs. decentralized web, I don't see why the IP owners would play ball and accept the loss of control).
The thing is that in most case those NFTs wouldn't be trustless. I see people putting forward that a use case would be an NFT that proves that your Rolex is real, or for Fortnite skins, or for the ownership of your house. But in all these situations, there's a very clear authority (Rolex, Epic Games and the municipal authorities, respectively). These authorities will be allowed to mint new NFTs at will (because who else?) and as such have to be trusted. That opens up interesting questions btw, like "who is Rolex exactly?" which creates a chain of custody of trusted authority involving trademark management among other things. But I digress.
But then as soon as an authority is identified, why bother with the extreme overhead (it terms of resources and costs) of blockchain tech? Couldn't Rolex issue a PGP signed CSV of all valid Rolex serial numbers once a month on IPFS and you'd get the exact same security and trust profile without having to involve any "web3" feature?
Like cryptocurrencies, the subset of problems that can only be solved using NFTs is incredibly tiny and speculators rush to make up use cases that, if you think about it for five minutes, clearly make no sense and could be better solved using good old centralized tech.
In a sense, NFTs are a lot like those schemes we used to see where some company will promise to name a star after you, even though no one recognizes their authority to do this. Fine, that URL is "yours". You just own a sequence of bytes, the ones in the URL, not the ones that the URL (temporarily) points to.
Your ownership is now on a distributed ledger, with a cryptographic hash of the content, paired with long term storage of said digital artwork. The Internet Archive's costs are ~$2/GB to store content in perpetuity, which seems insanely cheap to carve off as part of a transaction (Eth gas fees aside).
Every user of the network has to provide some storage for the network itself. If there's not enough storage to safely store your new content on the network as highly available, the network would just say sorry, can't do right now, please wait on the line while we get new storage (users).
Sure, it would need some massive network effect to work at scale, but we have now, what, billions of devices connected to Internet? That ought to be enough.
I never really understood this current "decentralized" tech. Decentralized hashes with centralized gate keepers, and mixed with "old school SPOF tech", e.x. the VPS's that store the actual content. wat.
edit: 10GB per device/user and 1 billion devices. That's 10 exabytes. https://www.wolframalpha.com/input/?i=10GB+*+1+billion
I played a decent amount of Runescape growing up, so when I first heard of NFT's I naturally thought of that game. I would definitely find intrinsic value in truly owning an NFT of some of the rare in game items. And knowing that even if Jagex (parent company) disappears that I still have ownership over the items definitely adds a lot of value.
Should Jagex fold and the game become unplayable, what do you own? An entry in a database that says that you once had this item but you can't do anything with it? Why is that valuable?
I can sort of see the argument if other game developers allow for these items to be reused in other environments, and that's something pushed by NFT enthusiasts, but I don't see how that makes economical sense.
For one thing that puts a lot of work on the table of other game developers. If every NFT of every game needs to be usable in other games, can you imagine the headache? It's a combinatorial nightmare.
Besides devs want to make money selling their own NFTs, not adding items made by others for free, so what incentive is there for adding support for your rare Runescape item in some other game? Seems like devs would rather sell you a special "Runescape retro item set pack, only $9.99!"
And then we haven't even touched on IP issues. If you have an NFT of Lara Croft, can the devs of another game just clone the model in order to let you import her?
I feel like all of these issues by far dwarf whatever convenience NFTs bring to the table. The problems I outline above are the ones that need solving, and if you find a way around those you could very easily achieve what you want without "web3" tech (see Steam trading cards and Nintendo's Amiibos for instance).
What does "digital rights of the Rolex" mean? Also, why is it harder to notify Rolex of this transaction than it is to notify some blockchain?
A serial number can be copied and engraved onto a forged watch, so not really.
A more analogous scenario would be if Rolex embedded an NFC hardware chip with a private key inside the watch, such that anyone could wave their phone over their watch and verify that the chip’s cert was indeed signed by Rolex.
This is an excellent idea and I am now wondering why luxury brands haven't started doing this. It would be super hot. One would do it and suddenly they would all be doing it. Watches, handbags, shoes, whatever
There's more steps involved that I'm not sure could be solved, like, who controls the authenticity Oracle? Is it an API that gets pinged? Do you have to pay a gas or network fee to check authenticity? Could a smart contract be made to automate the work? Maybe it could work like credit card chips, which give out a one-time code to the retailer, who then gets it checked by an online service... except somehow replace the web API with a smart contract.
For larger scale operations, tagging individual items with NFC chips might be cost prohibitive.
This is why I think the really valuable and underserved use case of the blockchain is decentralized identity. You can prove you are who you say, you’ve studied where you claim, you’ve worked at the places on your resume, and do this in ways that cannot be subverted or lost. This would be invaluable for refugees who often struggle for months or years with proving they are who they are.
For people that live in stable countries with reliable governments and strong enforcement of contracts this does not provide much value however, and I think this is why this subdomain of web3 remains underserved.
That's a very interesting use case, but it's hard for me to see exactly how this can be made to work.
Suppose you study at the National University of Unstabilia, which is located in a disaster-prone and conflict-riven environment. You complete your B.A. there, and you get the NUU to record this fact on a public blockchain.
A few years later, things are really bad in Unstabilia, so you move to Belgium. After you arrive there, you tell someone (maybe a prospective employer?) "hey, I'm Joeri, I'm a refugee from Unstabilia, and I have a B.A. degree!". For some reason this person is skeptical, so you say "it's OK, just look up the blockchain record with the following hash!".
Sure enough, the public blockchain contains an entry reflecting that someone named Joeri did, indeed, earn a B.A. at NUU a few years back. This is great, because maybe
* Unstabilia City was mostly destroyed in an earthquake, making it hard to contact people there, and many of the people who would have known you during your studies have likely died or become refugees themselves; and
* Lately, the new NUU administration really hates your ethnic group, so much so that it prefers to deny that people of your ethnicity were just recently widely represented among its student body; and
* Many of NUU's records were previously lost in a fire; and
* Before that, someone reputedly hacked NUU's computer systems and stole all of their records, and probably all of their cryptographic keys.
But thanks to the blockchain records, your new Belgian friends can still confirm that you actually studied at NUU, right?
But, how do they know that that record is really from NUU? How do they know that NUU really exists? How do they know what its signing keys were, and how long they remained under the university administration's control? How do they know whether it's a legitimate university? And, maybe most significantly, how do they know that you're the same Joeri who earned that degree back in the day, as opposed to some other Joeri? Are these records including some kind of digitally signed biometrics?
The blockchain gets you exchange, with completely transparent meditation, in the form of the smart contract / script code.
You can say it's your house all you want, but if the new regime sends soldiers to evict you, no amount of evidence that it belongs to you is going to help you.
Do you propose that "all" authorities provide digital certificates, in preparation for the region becoming unstable? If yes, paper certificates already exist, and seem to go missing -- why would it be harder for digital certificates to go missing? Or for the thing that ties one person to their digital certificates?
Or do you propose that authorities in unstable regions provide digital certificates? If yes, how can you trust them, given the unstable nature?
I value thinking about these things, but somehow I still struggle to see where the proposed extra value comes in. Maybe I'm thinking too much in extremes, and the value breaks down in extreme cases.
The main reason would be if they could make more money on their digital goods by floating them in a large, open, heterogeneous market rather than in their smaller walled-garden. That's what traditional capital markets are good for, and the name of the game here is figuring out how to recreate those benefits in decentralized digital markets.
What problems can only be solved by using NFTs?
All those creator economy apps show that there's a need to democratise economy. I am again tempted to quote hustlers here.
Not sure I'm following. How would that work, and how would crypto facilitate this?
This doesn't enable real-time transfers of NFTs.
Ideally, the blockchain allows the NFTs to be traded without Rolex relying on another company acting as a trusted third party platform keeping track of ownership, or Rolex itself running its own transaction database. The blockchain is a common open platform for transactions, and that's useful.
They totally could. But what’s interesting about NFTs is they standardize this process across all kinds of assets and issuers. Instead of a CSV for Rolex, a Twitter history for an artist, a deed for a house, a rental agreement for an Airbnb, it’s all just one format.
In the past, there’s been tremendous value that’s come out of standardizing stuff, allowing infrastructure and new kinds of businesses to be built on top.
Particularly, regarding "early days". It really is, still, early days, because there is a lot of complexity in getting all the pieces built. It took years to get overall blockchain going. Then, to understand the need of programmability (smart contracts). Other pieces too: more efficient consensus mechanisms and clever ways to express commitments, decentralized storage, etc. And the space is so far from being done.
Particulary, about servers being clients. This is true today, but it would be wrong to say that nobody cares about it. Ethereum developers spend considerable effort on pushing the idea of light clients, going as far as re-architecturing the way whole blockchain state is stored, so that browsers could actually become fully valid clients, and services such as Infura would become a lot less necessary. This requires cryptographic innovations (verkle trees), client implementations, consensus between participants, etc. It is likely to require 2+ years to get there. Early days.
Another moment I would critique is the clever NFT, that displays different things. Yes, ERC-721 allows any URL as metadata file, so you can put traditional DNS-resolved URL there. But I would struggle to find any "respected" NFT collection that actually does that. Almost every high quality NFT project (Art Blocks, BAYC, so on) has IPFS as metadata URL, and goes as far as to freeze metadata, so it couldn't ever be changed.
Lastly, his discussion about value of decentralization is very valid. Yes, Ethereum developers spend a lot of effort on light clients. Will anyone care to use them? Yes, best NFT collections freeze metadata pointed to IPFT... does anyone care? Success of OpenSea and Binance Smart Chain shows that for many, idealistic goals are irrelevant, as long as money can be made. That's fine. But there are some of us who actually care. Majority has uninteresting goals (money). There are still amazing gems to be found.
Every layer adding more complexity and more fingers in the pie.
All the while, nothing ever actually seems to get fixed. Like, high gas fees has been a conversation for years and clever people have made dozens of solutions, but everybody seems to still use vanilla Ethereum.
And these problems don't seem to be the usual problems of new technologies dealing with limited feature sets and primitive tooling, these problems fundamentally undermine the whole point of blockchain. It's not like you can only make simple distributed apps and more advance stuff will arrive as the space matures, you literally can't make a practical, truly distributed app at the moment.
The more I learn about web3 the more it seems like vaporware, and the end result will be a bunch of web3-in-name-only, VC cash-grab apps.
Blockchains started very simply. Famously, Bitcoin's whitepaper is just a couple of pages long. Simple systems are nice, but they can't solve every problem. As problems were discovered, solutions were proposed. Most solutions were themselves the simplest solutions to a given problem, so naturally, as new problems are found, new solutions almost always introduce complexity. This is not unique to crypto - see, for example, HTTP, or HDMI…
I can't see a world where this wouldn't happen. Ideas usually start small and simple. Additional capabilities introduce complexity. That is not a bad thing.
Also not a bad thing: people taking different approaches to identified problems. Ethereum saw congested L1 and didn't want to sacrifice decentralization, so they focused their effort on L2. Other developers thought differently, and adopted faster, less decentralized L1s. Great!
> you literally can't make a practical, truly distributed app at the moment
Another issue is that the goalpost is ever-shifting. We have truly distributed apps. Because they were successful, they got used, and on one particular L1 that meant expensive competition for block space. Does that make the achievement invalid? Or does the fact that most popular browsers currently don't have built-in integration with ENS and IPFS, allowing for decentralized frontends, also make the effort invalid?
Again, I struggle with truly charitable interpretation of your argument.
Meanwhile, Bitcoin just works, and it is fairly easy to understand.
Every once in a while I try to get excited about Ethereum. They really do seem to think about a lot of interesting things and try to address them. But at the end of the day, it all just seems way too complex.
As for NFTs, I think they could just be colored coins on the Bitcoin Blockchain, which would also be easy to understand.
In hindsight, it seems like "3 years into the internet we already had emails and TCP", but the seeds for these things had been in the works for a decade plus. It's a testament to the massive success of the internet that we _think_ in hindsight that "3 years into the internet we had emails and tcp".
There simply are numerous hard problems to solve to make this all work at greater scale. In a healthy ecosystem like Ethereum's, there are frequent research discoveries (discovery of the concept of data availability, the application of BLS signature aggregation, proposer-builder separation, zkevm, data availability sampling, ...). The software engineering effort required to implement such research is colossal as well. Eventually we'll even see e.g. specialized hardware for efficiently producing or verifying zero-knowledge proofs.
It would be easy to look at the very early computers, which were perhaps not all that useful, and shrug — but that take wouldn't have extended well into the future as the technology scaled.
We have a ton of money in unregulated markets sloshing around reinventing every financial scam known to man.
That's got to be something!
I'd add that having a globally readable ledger encourages interoperability in ways we can't yet appreciate.
I believe that ERC-731 is valuable for the same reason that GIF89a is valuable.
I don't think anyone in 1989 could have predicted meme culture and the importance of the gif, but it happened because an enabling technology (communicate with animations) arrived and people started experimenting.
NFTs will probably become part of daily life in unexpected ways, because an enabling technology (cryptographic ownership of assets) has arrived and people are starting to experiment.
GIFs can be created, parsed, read, played, copied, deleted on commodity hardware for free. GIFs became popular because they were so easy to exchange because video formats were so heavy and patent encumbered at the time (less so than GIF was, anyway). The cultural phenomenon of reaction GIFs arose because of its accessibility.
Tell me how a child is supposed to safely do the following: easily create a wallet, somehow get some Ethereum, and starts minting and/or buying NFTs. None of that is even remotely comparable to ease of use of GIFs on the internet.
If you want to argue that "cryptographic ownership of assets" is going to be commonplace, that's fine, but only for strictly digital onchain assets. It's never going to apply to any asset in meatspace because humans have sticks and stones to get what they want and renders your claims irrelevant.
If you lose access to your wallet for whatever reason, be it fire, flood, social engineering, forgetting your password, death, solar flare, it's gone forever. If you depended on it for anything important, there's no recourse. Let's say there are cryptocoin insurance companies. How do you prove that you don't secretly still have access to your wallet?
I am not buying it.
The problem with digital art is that it is infinitely copyable (at no cost) and untraceable (with little effort, and a huge/impossible effort to trace backwards). There's nothing stopping an artist from selling a work of art as edition 1 of 1, and then a month later "minting" another copy or 10. Secondly, there's no way to prove the image uploaded is from the original owner. What happens if someone steals someone else's work, mints an NFT and sells it, and the buyer finds out the next day?
Thus, I cant be convinced a "respected" NFT collection / distributor can exist.
There is a social cost to making a promise and breaking it.
> What happens if someone steals someone else's work, mints an NFT and sells it, and the buyer finds out the next day?
Don't buy from random sources. You have similar problems with Pokemon cards, for example. Lots of fakes and it's often hard to tell a fake. However, people have found ways around the issue.
QmTqkpmbKmciQgqhUWpML7dsJ59MBEjgQd7wH853n4ASZM
I keep a copy of it on my computer (+ backups). If for some reason it were to be unhosted by every IPFS participant, I could become one, and re-establish my NFT. Image content -> content hash, so everyone would agree about content re-establishing.
Not sure if I fully answered your question.
When was this need "understood"? When was it realized? How exactly?
I find it a bit paradoxical to say that "we understood the need for smart contracts right after the blockchain was invented". What problem did smart contracts solve when they were invented?
But...the execution environment is still your web browser and non-animated Art Blocks NFTs still have a "preview" stored off-chain like most other. Neither running the code in your browser or retrieving the preview is an on-chain operation.
One point that I disagree with is his almost axiomatic premise that decentralization is an inherent good and the implication that the Internet went wrong because it failed to stay decentralized. To hint at great cryptography as the solution, as he does im his conclusion, is baked deep in his bones as an amazing cryptographer, but I think he’s prescribing the wrong cure. The problems with the Internet are fundamentally not about decentralization - they’re about trust. It’s a people problem, not a technology problem. Because of this, cryptography (I do not mean crypto) simply cannot be the answer - even the best cryptography is, like a great legal system, only capable of dramatically reducing the overhead costs and risk of operating in a given environment. When it comes to what great cryptography can achieve, I think HTTPS and maybe some E2E stuff that’s happening with Signal is as good as it can get (interestingly, HTTPS is good in large part thanks to Moxie) - it cannot bring us back to some golden Internet age.
For example, concurrent version control systems (like perforce) were horrible. This can be thought of as a technical problem, but it was actually right at the intersection of something technical and a people thing. What git understood is that having a canonical repo was a people issue, and it correctly abandoned a central “source of truth”… basically no amount of technology can fix what is a people problem, so no repos are “special” or “the one” from a technical point of view. It then forced people to sort their shit out. However, because of this insight, git was able to get the technical aspects spot on. It correctly recognized that what was needed was the right data structure. Git is extremely simple software, that basically does two things really well: branch and merge, but it needed the right data structure.
I think talking about centralization (APIs and infrastructure) vs decentralization (protocols) as a people vs tech problem is exactly the same sort of thing, and to get the correct view on it you have to really mail in detail where the people/tech problems begin/end.
from an implementation pov "trust" is a distraction where anyone can quickly derail any argument citing "Trusting Trust" or "the show me the root of trust" ...
So to avoid meta-discussions talking about cryptography instead of trust skips the noise and goes straight to the heart of the issue.
Consider this:
Cryptography forces us to look at the reality of implementation instead of a "meta-psychological concept" from meat space. Problem with talking about trust in engineering is that we like to lift things from meatspace and model it within the digital space.But we forget trust isn't "a thing", it constantly changes, it's useful only as a tool to accept randomness/chaos of life. And so we'll perpetually fail when discussing trust in the digital space or try to pin it down in order to allow converting it into a spec or an implementation.
And I think Moxie understands this and so skips the noise by going straight to cryptography which is the only "tool" that is meaningful when we talk about the things we base trust assumptions on (cia triad).
But isn't decentralization one of the points of crypto and Web3? It doesn't matter if Moxie agrees with decentralization or not. If the direction everyone is charging in is "decentralization", and it's not really decentralized, then it's a movement that isn't heading where it thinks (or where it claims). That's still true, regardless of what Moxie thinks the direction should be.
Why? Because trust is a human problem not a technological one? What does that actually mean?
Web2 has been polluted by frameworks, modules, libraries and that the generic website now looks like the next. It hasn't gotten any easier its gotten harder. Where do you actually start if you want to create a new website or "app"?
My mother knows html, she has her own website. When it comes down to wanting a gallery to display her portfolio the easiest answer is to say "install wordpress". Which isn't easy in any shape or form.
And then if you wish to be part of Googles Search Engine you have to pay sponsorship.
The golden age was the innovation, the new, creativity, surprisingly freedom. Folk putting work in to developing a new platform. Sadly we are now surrounded by walled gardens and one of the caveats are that if you want it on display, you have to pay.
The only thing I see people agreeing on is that centralized setups are never (infinitely) trustworthy.
We have centuries of data and precedent from human legal systems. How could human and machine governance be improved with the aid of modern technology, including but not limited to, revision control of legislation and public caselaw, graph databases for threat analytics across time/space/network, automated identification of gaps in machine governance which require human intervention, and yes, all the tools of web3/crypt0.
Finally someone articulates the problem with crypto. People don't want to run their own servers, and they sure as shit don't want to run their own banks. So in theory you have a decentralised trustless web or financial system, but in practice, everyone is trusting someone to run a node for them. Which is exactly how the web and finance work now.
The ability to withdraw the money and use it directly with no third party involved is still important. Especially since governments are already implementing digital currencies that will be fully under their control.
Yes yes you can memorise some encryption key, but that poses its own problems - what happens to your money if you die or become non-compos mentis?
Ultimately any sane person ends up trusting someone, whether a bank, an exchange, a lawyer or safe deposit box. Crypto removes the need for trust with a pretty extraordinary and elegant idea, but nobody actually wants it.
If nearly everyone uses your tool incorrectly, it's a problem with your tool.
Secondly, you are correct that in Web 2 people do not desire to run their own servers or analogously in crypto today they do not want to run nodes. But many people do want to mine - its a massive industry, but the issue stands, the nodes connecting people to the network and serving the data end up centralized; The Infura Problem is a great example of this. Infura was started by Ethereum founders to run Ethereum nodes that the standard wallets (the biggest of which, Metamask, made by the same organization) connect to by default.
The issue is that the Ethereum network is deeply reliant on both consensus and data-distribution, but it only compensates infrastructure for consensus - the miners - and in the future, stakers. Bitcoin is not as deeply affected by this because of its low data throughput, but its worth noting that non-mining nodes, which are essential to non-miners having a say in the network, are volunteering. These nodes are also responsible for distributing transaction data when miners use a modified Bitcoin Core Client designed to try and gain advantages by selectively sharing.
The miners on each network and those who run businesses around it don't want the networks to crumble, so they end up doing the work of nodes, but at the bare minimum. In Ethereum this means centralized node hosting services - that's a reality of the state of the network at this point. The solution is to start compensating both aspects of the network, because both are important. This not only re-decentralizes the nodes' motives and control, but it also means that distributing data more efficiently offers more rewards, so node operators are rewarded for scaling the network. The key concept here is that if the network does not compensate for its vital functions directly and proportionally to performance, then those functions will simply remain on life support.
When talking about democratization, the average user is probably the only user that matters.
For mobiles you have "SPV wallets" that does communicate with many other nodes while verifying block headers and that the transactions you're interested in are included in the blocks.
So an SPV wallet doesn't contain the whole blockchain, but to cheat it (and make you see invalid transactions), you need to generate a fake block, which is just as expensive as creating a real and valid block.
And all that's needed is for you to find a single node you can communicate with
[edit] By "full node" I meant "archival node."
Yes, you can run your own Etherium node and server, and connect a MetaMask wallet to it.[1] As Moxie points out, nobody wants to do that.
Worse, the blockchain does not, apparently, contain the hash of the data. You can't even prove you even have access rights to the data if the hosting service goes down. All you own is a link to a URL.
There are more Ethereum full nodes than two, but how many will accept web queries? That's a service.
[1] https://media.consensys.net/how-to-install-and-synchronize-y...
It very often does, and it is certainly the case for most high-value NFTs. It is indeed not the case if you create your NFT on OpenSea and do not take the additional step of freezing the metadata.
Also, there are many artworks that change, so a hash to a single file is not necessarily the right solution.
https://thegraph.com/en/
e.g. the EtherFreakers contract is immutable and contains a git commit hash (line 83: https://etherscan.io/address/0x3a275655586a049fe860be867d10c...), so you can prove you have the code which generates your freaker.
The problem with this is that running servers that store and process one or even multiple blockchains in a searchable way is terribly costly and inefficient. In theory the public ledgers are all safe against locking away data, like Google or Microsoft could do with your accounts in the real web, but in practice nobody wants to be the guy making a loss on serving blockchain views.
If web3 ever gets off the ground, it needs more of these access provider companies. Perhaps even a prebuilt system you can throw onto your own server to participate, like IPFS and other existing decentralised systems provide.
I'm still not clear on the actual benefit of the cryptocurrency web other than the concept of "owning things without legal protection or oversight" which I (and I believe most people) have very little interest in if it comes at the premium it comes at today. From a technical standpoint all of this blockchain stuff is awesome, but it's an awesome solution in search of a problem.
"In theory" the data is open. but I believe that the point of the article is that unless I'm running my own node, data visibility is limited to what someone else tells me. and here, in reality, OpenSea has decided to delist the author's NFT and they have no recourse.
1. anyone who operates a node can contribute time on their node for a share of our revenue
2. anyone can host one of our blockchain crawlers for a share of our revenue
3. anyone can contribute storage to our platform for a share of our revenue
We currently support Ethereum and Polygon, and are expanding to more chains.
I found this an excellent article, but the HN discussion (not calling out your comment specifically) seems to miss the fact that, as programmers, it is fully within OUR power to create the world we want to operate in.
Edit: To clarify - we run our own nodes. Currently on AWS but we are running out of credits soon so soon in our offices and living rooms, and eventually in data centers.
But at the point where they start filtering transactions/addresses, there's going to be big questions about what is the true view of the blockchain.
The potential for single points of failure (or even intentional abuse) does exist because of this de facto dominance of two service providers, but as far as I can tell there's nothing stopping anyone from running their own node and connecting their various cryptocurrency wallets to them other than the money and inconvenience of running your own server.
Indeed, but one could make the same claim re any Web 2 juggernauts like Google and Facebook. You don't need to use them, sure. You can start your own social network. It's just expensive and inconvenient. This is what causes centralization and gatekeeping in the first place. It becomes self-reenforcing.
(Wouldn't be surprised if they're slurping from middlemen services themselves)
https://github.com/bugout-dev/moonworm
We are committed to keeping this code free. Our policy is only to charge for our operational expertise, but all the code that we use is open source. We are in the process of opening our platform up for decentralization (so anyone can contribute node time, storage, etc.).
Intellectual property is theft.
It still seems that my users on phones and browsers would need to trust me in that case, right?
It's the early days, remember how long the internet worked with http:// ? It's only in 2009 I believe that Facebook switched to https://
Check my other comment to see that the future doesn't look that bad: https://news.ycombinator.com/item?id=29847881
[edit] Here. [1] And here. [2]
[1] https://librehash.org/ethereum-archival-node-review/[2] https://blog.blockcypher.com/ethereum-woes-d9b2af62da67
A fully scalable, sustainable and decentralized network compensates all infrastructure important to the network, which means mining (consensus) and transaction/data routing. A nice side effect of rewarding data transmission is that you incentivize speed, so scalability can happen naturally with no conflicts of interest between miners and users.
https://news.ycombinator.com/item?id=29846272
Deleted Comment
Dead Comment
Dead Comment
My very limited understanding is that for blockchains essentially the way to distribute them is that every node has a full copy. This sounds awfully expensive in the long run. My intuition would be that once running a node is expensive enough, this would not be truly decentralized. If I can't get the fundamental information out of a blockchain myself on hardware I can afford, the actual properties of the blockchain don't matter anymore as I cannot access them myself.
The moment you need to rely on third parties, you lose any unique properties a blockchain might have. I don't know how this would work if blockchains inherently are inefficient enough that you always need a way around querying them directly. I find the idea of a distributed trust-less database interesting, but if it is so inefficient that I can't actually access it myself that idea doesn't seem that interesting anymore.
So I would agree with your last sentence.
You can store the entire blockchain on a 1 tb harddrive.
The cost prohibitive nature is only running an open rpc that you tell hundreds of thousands of people about. Then you will have to deal will letting all those people access that 1tb of data.
Quicknode lets you have a private rpc with the full history of the chain for dollars a month.
Deleted Comment
Not really, since the blockchain data providers obviously need to provide the exact same data, from the decentralized blockchain.
That's not the case with centralized providers.
That's not obvious to me. I'd expect that companies could be asked to censor certain parts of the blockchain, and would then hide those parts in their API. I would also expect that transacting with certain addresses could be blocked, and companies could enforce that in their APIs.
Deleted Comment
Dead Comment
Absolutely correct. Extremely flawed reasoning regarding blockchains and web3 on Moxie's part. He actually created more confusion than enlightenment.