You haven't been able to GPU mine bitcoin in like a decade, every miner uses dedicated ASICs specifically for mining btc. It's been impossible to compete without ASICs for a very long time.
Nvidia can design and manufacture asics too you know. Likely they have enough expertise to revolutionize the asic market as you know it, using the 3nm process at tsmc.
Since Bitmain asics are currently being made at around 16nm nodes, using 3nm process that Nvidia has access to - think about that for a bit.
Please bear in mind that 3nm is an "alpha" - a multiplier characterizing the process. If you took your time and find out difference between processes with different "alphas" you will find that transistor density is nowhere near what difference in "alphas" would suggest.
If I remember correctly, the difference in transistor density improves as 1/alpha whereas area of transistors, if everything gets shrunk with alpha decrease, should decrease as square of 1/alpha. I.e., if alpha differs two times, there should be 4 times more shrunk transistors whereas practice shows only 2 (and often less) more shrunk transistors.
This is because you cannot make transistors too small in every dimension, they will leak.
So the difference between 3nm and 16nm will be less than five times. Not 25 times as difference between these parameters would suggest.
The difference in getting masks and first prototype should be quite substantial in terms of upfront payments and time-to-production.
I remember that 25 square millimeters proof of concept in 180nm process needed $50K of money and half an year of delay. The 35nm (5 times less) prototype of the same area would cost about $500K and more than half an year delay. The difference between 16nm and 3nm is about the same, I can expect several millions of dollars of upfront cost of small chip and year long delay before prototype arrives for 3nm process.
These Bitmain guys should be assumed to be not stupid and they most probably have access to latest processes after second prototype. Yet they choose 16nm - we must ask ourselves "why?" and Nvidia should too.
As a matter of fact, Nvidia had its share of problems with tiny processes in past.
I'm creating an NFT project that's doing something I've never really seen other projects doing in any capacity, and can confirm it's pretty hard doing something against the current perception of what is possible with the tech. It's been disheartening sometimes tbh because of the stigma the tech has currently, and I've been called a scammer more than a few times simply because I'm creating a project that utilizes NFTs, by people who only know of the current "link to png on cloud storage and nothing else" model that is most common.
Oh well, I just hope that when I release my project next month that I can prove that it's an incredibly unique experience that some group of people find it to be an exciting product.
It's honestly difficult to discuss ideas in the space outside of specialized discord channels given how divisive people on social media like twitter have been on the subject. Wallet based authentication is amazingly simple to work with and provides a great developer and end user experience, but you only really hear about it in passing and it gets overshadowed by the noise. Same with using NFTs for novel purposes; you can use them as essentially authz tokens for specialized services. I've been working on an NFT project exploring these concepts and am quite happy with the end results.
You can easily create as many wallets as you'd like, and keep your funds isolated from a wallet you use as an identity, if you wanted. There are multi-key wallets out there as well to retain control of your wallet in the event that one of the keys are compromised. I haven't used any of those personally myself so I can't really elaborate more on those types of wallets, but it feels like being able to lower risk is a solvable problem.
I think it's a really neat space to explore and love the idea of provable digital ownership. There's a lot of projects in the space that are interesting ideas, and it is fascinating to see parts of the web stack increasingly decentralized. Whether or not it will be a long term success, who knows. It's a fascinating field to work in, and has given me motivation to run some creative independent ventures that I wouldn't have otherwise. For NFTs there's much more you can do with them than in the current model, and we'll see more increasingly complex and unique usecases from NFT projects in the coming year I'm certain.
Although it is fascinating to see more parts of the webstack increasingly decentralized, I also do not fully buy into the "decentralize everything" ideology that some people in the space have. Some people may not call projects "web3" if they run on traditional infra like AWS, but there is absolutely value in a hybrid model in my mind that leverages a decentralized ledger for proof of digital ownership on top of more traditional infra. I don't think for instance that making a platform to replace existing web2 websites like twitter / FB / your favorite website is the way to look at it, but rather to figure out new ideas and products, maybe fully decentralized, maybe not. To me it doesn't matter, I just want unique, streamlined user experiences that provide value to users who want to participate in the ecosystem. Even if it is just a small community, it's fun.
But you can determine NFT authenticity by only examining onchain data. You can for instance check the program ID that executed the mint and that it is verified (in the case of Solana, at least), it's a pretty simple verification system that is using entirely onchain data for validation.
NFTs are simply single issue tokens that can optionally be part of a collection. While most NFTs today take the form of a link to decentralized storage on solutions such as IPFS or Arweave, it is completely possible for an NFT to provide value as a token. For example you can have a project where NFTs provide access to services, as well as optionally have links to art. But you really don't need to have the art aspect at all, you can use them as access tokens or whatever you want really.
So it’s either an expensive way to claim ownership of a resource provided other people are trusted to do the actual work of hosting that resource, or it’s an expensive way to replace JWT’s. Exciting. Truly.
Expensive on Ethereum's base layer. Don't forget the many layer-2 solutions. Loopring is about to launch its marketplace, ImmutableX is already live as well.
Real estate title is a good example of something that could be handled this way more cheaply than it is now. Title to any physical asset could be handled this way, too.
> could be handled this way more cheaply than it is now
I don't see how that's possible. Right now, at its core a real-estate title is a row in a database managed by the local government (whether a row in sql, a row in excel, or a row in a physical document).
That system, with a centralized way to ensure it is unique etc, is strictly cheaper than any blockchain / NFT can be for storing that same row of data.
The reason real estate titles are expensive now is that there are significant legal burdens and human overhead on top of this database row.
NFTs can't be used like a real estate title unless we also add the same legal frameworks and human processes on top of them. The only bit the NFT actually replaces is that database row, not the expensive other stuff.
Now, you might claim "ah, but with NFTs you may be able to cut out some middle-men. If the token is legally binding, then you can transact directly and skip a lot of mess". But, of course, we could build that _already_ with the existing system by letting the owner of a row in the existing sql/excel/paper database digitally sign a statement saying "I transfer this ownership to X, this is legally binding". If we can get the law to recognize NFTs, then getting them to recognize this cheaper, far simpler, cryptographic operation would be both cheaper and easier.
... Or that's my take I guess. I'm curious to hear yours though!
Do you think an NFT-based real estate ownership system will be cheaper because we'll rebuild the system from scratch, and rebuilding the existing system without NFTs would be similarly cheap?
Or is there a fundamental reason NFTs are cheaper here than building the same thing on top of a centrally managed government-owned database?
Your cheap jab says more about your lack of imagination about potential use-cases than about whatever shortcomings the technology has at the moment.
Okta is a multi-billion business and could also be characterized as "an expensive way to replace JWTs". Authz/authn is one of the most common use cases that every application developer needs to implement. How much would you like to bet that in 5 years time NFT-based authn/authz will be bigger than Okta's market?
The value of Okta is in its centralization - the reputability of the brand and the existence of a conscious entity equipped with the power of reason that can use their centralized superpowers to resolve unexpected issues as they come up. And if there’s anything I know about software, it’s that unexpected issues always come up.
Remove that and you have all the existing scams of crypto, except now your personal information and account access is at stake in addition to your money.
As for bets, I’ll happily wager my expected future net worth against these projects by simply not investing in them. If you feel differently, do differently. I don’t care.
Clearly you have a strong dislike for the tech, and that's fine I don't care of course, but do keep in mind that there are ways to isolate risk pretty easily. Even if the technology doesn't result in a huge change in how auth is done to scale in the way that Okta does, there is value in simplifying authentication / authorization workflows for users that decide they want to participate in the web3 ecosystem.
As a solo developer making applications in the ecosystem, it's a breath of fresh air to not deal with Oauth+OIDC workflows and utilize wallet connectivity + token authorization to very elegantly handle these scenarios on smaller projects. End user experiences are pretty great too, I quite enjoy being able to authenticate into a website without needing to associate everything with my email address and/or rely on 3rd parties to provide trust solutions such as SSO via Google/FB/Okta/whatever.
And yes, the risk is higher in a decentralized model because if my private keys are compromised on most wallet types, then I can lose my funds / identity. There are solutions to help lower this risk however.
The best examples right now are honestly NFT marketplaces or DeFi, however you can authenticate with these services without needing to have any funds available on your wallet.
If you're curious and want to try out the flow, you can download a web3 wallet like MetaMask - https://metamask.io/ - this is a popular web wallet extension for Ethereum and EVM platforms. If you want to try out Solana, I recommend https://phantom.app/
I personally like Solana more than EVM chains at the moment but it doesn't cost anything for you to try either.
Once you have the extension and create your wallet, you can navigate to an NFT marketplace, and connect your wallet.
You can then click on the connect / select wallet button, and it will allow for you to connect your wallet to the website. This will authenticate you into their website, there's some additional steps on Opensea IIRC if you want to construct a full profile, but the base authentication only requires this. And like I mentioned, you can authenticate in this manner without owning a single dollar worth of crypto.
For the projects that allow for you to interface with chains / wallets, I've used these:
Essentially what it comes down to is a user has a wallet, that is typically a web wallet via extension, but you can of course use hardware wallets if you'd like, however those do require you to own one, so if you just want to play around with the ecosystem, these extensions are the easiest to use. These above projects are javascript APIs that allow for interacting with wallets and onchain programs.
Note that both of these are frontend solutions. There are backend solutions for both chains.
> Remove that and you have all the existing scams of crypto, except now your personal information and account access is at stake in addition to your money.
No, precisely the opposite. It's only with crypto that you can have a system that can authenticate you and authorize you to access resources without caring about any of your "real world" data. And if you are worried that your "wallet" might be hacked, you can simply use different ones for each different purpose. Your "money" crypto wallet does not need to be the same as your "online identity" wallet.
I can give an example of a proof of concept app I created for a hackathon -
Frontend hosting, I decided to go with a traditional hosting solution (vercel). Nothing changing here.
Backend APIs - Was able to replace the need for dedicated backend APIs by using RPCs and GraphQL queries using a project that allows for indexing smart contract event data in a GraphQL queryable format (https://thegraph.com/en/). I also created a smart contract which lives on the Ethereum chain and allows for users to achieve the interactivity that I desired for my app (which was essentially an escrow for a scheduling application). The events are indexed by the graph, so I could efficiently query this subgraph to retrieve relevant data to display on my frontend.
Authentication - Just use web3 packages to connect users wallets to the website. No need to use OAuth+OIDC or similar approaches for authentication, just connecting wallets on the frontend works.
If I wanted to take it a step further, I could have hosted my app on permaweb (https://www.arweave.org/) which will host the content in a distributed fashion with a one time charge.
For a different example, I'm creating an NFT project that uses the NFT ownership to grant access to specialized services (launching the user's NFT in a specialized application I created in an open source gaming engine). I use similar techniques as above, still hosting on vercel, but I use the innate ability to use NFTs as proof of ownership to act as an auth token into my service. This allows for me to distribute the interactive art I've created in a way that fully grants users ownership over the art, and also allows for them to access these specialized services only available to owners. Furthermore it's trivial to detect forgeries so even if someone does the horrible act of right click saving the art, they won't actually get any of the actual value from doing so. And if someone attempts to forge the token by minting an exact copy, it still will not grant access as it's easy to detect forgeries.
It's pretty exciting imo and has been a very fun project to work on. So by leveraging the similar approach for authentication (connect wallet), and NFT proof of ownership for authorization, I've been able to create a unique project with a lot less complicated of a stack tbh.
I personally think there's value in mixing centralized services (like traditional hosting of applications) with decentralized services (like using blockchains as a database of ownership, such as with NFTs).
- Familiarizing yourself with vim is great and one of the best timesaving skills I decided to pick up randomly. You can install vim plugins for most IDEs
- Pick a small feature that you are curious how it works, and focus entirely on how it was implemented. The simpler the better really. Use git history to see the commit that the feature was introduced, and look how that engineer implemented it. It's quite easier for me to learn how something works by just focusing on seeing the Pull Request for the implementation. Just focus on looking how various things were implemented, and you'll (hopefully) see a pattern in code practices & design patterns.
- If you have questions, you should feel free to ask other engineers that work on the project. I was in a pretty senior position at my last job and we had quite a large codebase, and I personally never minded helping out junior and new engineers ever when they were coming up to speed on a new codebase. I always took the viewpoint that it's always in my best interests to help out the newer team members get up to speed quicker and have a better understanding of the product so they are able to effectively contribute. Hopefully engineers on the project you are working on think similarly.
- Absolutely learn how to perform proper debugging if you are not familiar already. Learn how to hook the browser to your IDE, how to troubleshoot things on the backend if you get to the point where you're doing fullstack work. Effective debugging is an incredibly important skill to pick up.
- Learn how to use IDE / other editor tooling such as jump to definition, refactor, inspect, find all occurrences. If this is a react project learn how to use browser extensions like devtools to help with debugging and understanding document structure.
vi-style editing is fast only if one can touch-type. If not, it is not faster. Its plus is the consistency of keybindings across platforms, but even then on international keyboard layouts it is not ideal (or just bad) and requires a lot of customization which may be highly non-trivial in vim modes for various IDEs.
So if one already uses vim, then sure vim-mode in IDE is nice to have, but if not, I suggest not to bother.
Not gonna lie, it really blew my mind when I was onboarding junior engineers that not every engineer knows how to touch-type. Frankly, I had never even heard of the terminology "touch-type" until that moment, and basically thought that if you can't do this (in most cases) you never learned to type. Not trying to be rude in any way, any idea how common this is? Maybe more common internationally than in the US?
I worked at a startup that was acquired by a larger corporation. This echoes my experience as well, everything became so clogged up with processes, documentation, responsibilities so distributed that there were times it became unclear who was responsible for what. I had a bunch of arguments with other departments and upper management over processes that were directly impacting my team of engineers, but eventually just caved in. Meeting glut, passing of responsibilities, nobody stepping up to get stuff done, and a bunch of other things that made me unhappy. They at least treated me well enough all things considered and I had multiple promotions, but eventually I got so burnt out I just left.
I don't think it's necessarily like this at all large companies. I had worked at a much, much, much larger company before and never had to deal with anything like that. It really comes down to the company that acquires the smaller one.
I mean look at Blizzard, who inevitably just became Activision despite years of claiming they would not. The process / culture of the company that acquires the smaller one almost inevitably wins out.
You have to realize that the company you worked for no longer exists. It was acquired and is something else entirely. If you're unhappy, I would suggest to consider looking around for different opportunities.