You're right! Even I tried to post it. This is what I observed:
1. After posting, I'm redirect to https://news.ycombinator.com/newest where the link works
2. I click to open the discussion, now on this page link no longer works
3. Going back to /newest, the link no longer works!
I agree with the thesis, but not the specific conclusion.
> Blockchain tech could unleash collaborations of several million members working on one project in real time, or orgs that are far more leaderless than today.
How? Projects like the Linux Kernel already have thousands of contributors. It's not clear what putting their work in a distributed ledger would do to encourage more users.
Twitter has millions of people generating content for it. Could a magic blockchain give people micro-cents every time their post was upvoted? Maybe. But that doesn't require a blockchain.
Could a global art project distribute funds via a smart contract? I guess. But with millions of users, people will gravitate towards leaders. Even if it's just following the way an paid-for "influencer" votes.
I too think that most of the tech problems inherent in DLT / smart contracts can be solved. But it isn't immediately clear what use they will be.
Agreed. I think most people, even technologists, missed the problems that drove blockchain's design. Namely, the desire to decentralize administration of the ledger (socially as well as technically) and dealing with untrusted actors attempting to modify the blockchain.
If you authenticate all users and retain central administration, then blockchain's constraints simply don't apply.
I think Blockchain removes the cost of user authentication (you are your address) which is non-negligible. Everybody has an identity that only they can use.
On top of this, smart contracts take the code that would usually run these centrally administrated APIs and makes it public. I think this is the more powerful idea.
It's not just a decentralized ledger anymore, but a decentralized and public execution environment. And it's not crazy to believe that we've barely scratched the surface of what this type of execution environment can enable in user/provider interactions and user/user interactions.
Maybe I misspoke, the identity is as secure as a password in a password keeper or authentication key.
I think it's analogous to a decentralized SSO (e.g. Google login, Apple ID login, etc.) that can be used as a source of identity without the service provider/smart contract writer needing to implement it themselves.
With Ethereum-style blockchains, this auth is built into the programming language itself. The msg.sender field is guaranteed to be consistent with the actual sender of a transaction. If it isn't, the computation that is ran will not be published to the blockchain.
This sort of auth infrastructure is not trivial to implement and you get it for free by deploying your service on blockchain. In addition, you get persistent storage for free. On top of that, smart contracts have common published interfaces. My IERC721 implementation will respond to the same calls as your IERC721 implementation. Standardized APIs is not really a thing on the normal Internet, but it's commonplace in web3.
EDIT: by "for free" I mean in terms of implementation and infrastructure work. The gas fees definitely are not free.
> the identity is as secure as a password in a password keeper or authentication key
So, not very secure. Passwords aren't very secure on its own and practically always supplemented by human support systems and alternative factors of authentication. In really critical systems like government, these supplements extend all the way to a physical meeting with a bureaucrat. What's my recourse if I lose my blockchain secret?
All of that is the main cost of a serious user authentication system. Who cares if the msg.sender field is guaranteed to be consistent with the sender of a transaction if no one knows who the sender actually is.
> All of that is the main cost of a serious user authentication system.
So much this. If you don't care about credential theft or recovery, authentication is a straightforward problem. With a blockchain what changes is that you just can't care about this problem, and when it happens, your user is f*cked.
> I think Blockchain removes the cost of user authentication (you are your address) which is non-negligible. Everybody has an identity that only they can use.
Like a login/password… With a specific difference, that if you lose your private key or if it's stolen, you're doomed and you cannot recover. The user authentication story is actually the weakest point of blockchains/cryptocurrencies, and that's exactly why 99% of their user actually uses a third-party wallet.
Also, smart contract sound like some magic sauce, but in fact aren't anything magical, they are short programs that can be executed on public data in the ledger, that's it. And the execution environment isn't distributed either (at least in the meaning of distributed computing, every node have to process the entire contract).
> smart contract sound like some magic sauce, but in fact aren't anything magical, they are short programs that can be executed on public data in the ledger, that's it.
The only ways they can modify this ledger is publically and immutably defined at the creation of the smart contract. Sure they're not magic, but at any given time, you can query events published by that contract and query that contract's state. That's at least different than the traditional internet.
It may feel like I'm moving the goal posts but I'm just trying to highlight the differences between the stuff that happens on the traditional internet vs web3.
I'm not trying to say smart contract are useless, just that they are only useful in the context of the ledger they are built-on. I was specifically responding to this sentence:
> It's not just a decentralized ledger anymore, but a decentralized and public execution environment.
“decentralized and public execution environment” really sounds like you could execute arbitrary programs in a distributed fashion (which would be really cool), which is absolutely not what smart contracts are.
It’s a defense against authoritarianism, concentrations of power, and abuse of that power. Blockchains are early implementations of distributed authority.
And yet nearly all of them gravitate to "big" exchanges. And most normal people want the security of knowing that a fraudulent transaction can be reversed.
Any technology or way of thinking is part of a series of overlapping S-curves in time (https://pratt.duke.edu/sites/pratt.duke.edu/files/Layered%20...), during which the majority switch from one dominant regime to another; some technologies are on their ascent, some ways of thinking are near their peak and will soon decline.
If you can see through the hype, blockchains distributed across jurisdictions and organizations really do solve real problems for real people. Denying that is only putting blinders on. Maybe you don’t have those problems yet, maybe normal people don’t have those problems yet. That’s great, but it’s a snapshot in time; it doesn’t say anything about the dynamics of the systems involved, or what people will want in the future, or how and why that might change.
This is especially important to keep in mind when reading the prognostications of a futurist like Kevin Kelly.
Since the protocols are public info, you can build off of them. It's why there is so much progress in all this space because the contracts are open, you can clone them, build new ones that make use of them etc.
Try doing that in a non crypto world. You are at the mercy of what Facebook, Instagram or whatever other company decides to open up to let you build off of.
It's a push for a more open internet, imo. Where data can flow fluidly where the users want it. Contracts are build out in the open, with the incentives pushed away from the application layer (less FBs) to the protocol layer (more stripes?). Applications can build off of the protocols but they make use of open data and open protocols that other applications can easily make use of as well. Making it easier to come in and compete with the FBs of the world.
But, and please forgive me if I am wrong, there are dozens of different protocols. So I either have to pick the "right" one - and hope it never becomes obsolete - or use several.
Sure, Facebook might deprecate an API. But that doesn't stop me from being able to do generic HTTP requests for JSON documents.
And, while I love decentralisation, it appears that the majority of people gravitate to big providers. Because they provide better services or a bigger audience or demonstrate more trust.
And I'm still not sure what I'd use a smart contract for. Programmers don't seem any more competent than lawyers when it comes to writing bug-free documents.
You appear to be jumping to conclusions before understanding the technology and ecosystem. I understand that emotions get charged around money and power, but if you’re honestly interested in the answers to your questions, it might help the learning process to take a step back and learn about the parts from a position of detached curiosity before passing judgement.
Do you think it is an incorrect analysis in this case?
I’d love to have a discussion about the topics raised, but it’s no fun to have a discussion with someone who is repeatedly critical and a little fired up before even understanding the fundamentals. Skeptical is fine, but the specific criticisms raised don’t even make sense in the way that I understand the space.
I don’t know anything about the other person’s emotions. I know that you are reading emotion into their comments.
It’s my observation that people make comments that ‘don’t make sense in the way that I understand the space’ very frequently, and while it’s certainly an indication that we don’t understand each other, and may be an indication that someone is mistaken, it is not obviously indicative of emotion, and in any case the presence of emotion isn’t obviously indicative of incorrectness or irrationality.
Regardless of the correctness of your diagnosis (which you now will never be certain of) the move is a conversational gambit that isn’t likely to lead to anything constructive.
A lot of conversations these days seem to be two sides in their camps yelling over the walls. I think both camps are coming from reasonable positions, and it’s important to me to try and find middle ground when I can.
Sometimes I can’t find a way to nudge a particular conversation toward constructiveness, but I can raise a way in which we all might be able to have more constructive conversations in the future.
A small drop of antidote against the psychological warfare going on. I’m still learning, but it feels right.
Accusing people of being emotional seems more like doubling down on psychological warfare than an antidote.
Once you have declared someone’s position invalid because of their emotional state rather than their logic, that person can no longer trust you to take anything they say seriously.
In effect, you are declaring yourself to be an untrustworthy interlocutor.
I recognize that you may have the goal of increasing constructive conversations, but it’s not clear how this technique is going to serve that goal, game theory or not.
allow me to jump on the bandwagon and agree with you. what is the specific problem the blockchain solves better than other tech? (other than you used to be able to use it to get funds out of china and some people made a lot of USDs during various speculative bubbles, myself included)
ethereum smart contracts are "neat" but szabo, miller, et al. have been working on them for decades and bjg business hasn't jumped on them yet.
maybe we'll come up with a use... i've heard mumblings about agtech decentralized something or other.
kk touched on the idea here of tech monoculture and it's risks. what happens if stuff we trust breaks and we don't have a backup plan. maybe people are waiting for someone else to assume the risk and verify smart contracts work?
If everyone with an internet-connected computer has permission-less access to the same payment rails, then an entreprenurial person can do business with anyone, anywhere, anytime. That feels like science fiction to me. I hear people getting obsessed with decentralization, but a strong leader with financial access to billions of people could absolutely crush.
> Is there a "Class 3" coming along?
Quite possibly. There is a class of problems to deal with when technology has outlived its usefulness and must be gotten rid of. Coal power arguably has Class 3 problems now.
There are also Class 0 problems, like fusion, where just getting things off the ground is difficult.
"[Dis-]Graceful termination" and "Theory-to-practice" are good names for those problems.
They supply useful context and are not ambiguous.
Class 1: medical devices, explosives, renewable energy credits, depreciable property, lasers, streetcars, UK national insurance, railroads, electronics, felonies...
If you're going to coin a term, make it a good one.
> The two hardest problems are naming, cache invalidation, and off-by-one errors.
> In this case, there's a naming problem. "Class 1" and "Class 2" don't give any semantic content.
To me, the names suggested a connection or analogy to Type 1 and Type 2 errors, also known as False Positives and False Negatives. I was wrong, as it turns out, but the opaqueness of the labels, while annoying and unnecessary, isn't unprecedented.
The trick for technologists is to make their technology ubiquitous before anyone sees the consequences. It's done over and over again and it is hard to see a way out that does not stifle innovation.
It's been such a struggle to get anywhere near to making it do something useful.
But what if, one day, it actually works?
What could happen if we all had access to enormous amounts of very cheap energy? Have we thought even a little bit about all the bad things that might happen as a result?
It won't be cheap, for the exact same reason nuclear energy isn't cheap.
Once upon a time, people thought nuclear fission energy would bring "power too cheap to meter". They did not realize all the associated costs.
If fusion ever comes, it will be expensive, even more than fission is now. It can still happen, if big gov and big corp put their money into it, but it's kind of unlikely. Solar plus fission is the more conservative (less risky) way to go.
We'd have "power too cheap to meter" from fission if it wasn't sabotaged by politicians, fossil fuel lobbies, and an ignorant, easily frightened public.
No, we wouldn't. Fission has massive public subsidies, and the industry is still crying for more before they will even build more capacity. I mean, sure, if the public subsidy was high enough there'd be no consumer cost, but that's not what “too cheap to meter” is supposed to refer to.
I've read on here that a lot of extra cost comes from politics, like unreasonably redundant safety tolerances. There's also a lack of political will to reuse spent fuel.
That may be partly true. But we simply never managed to build enough of them fast enough to know if economy of scale could be reached. I think even if so, cost of building the structures and maintaining them won't be negligible and will have to be payed for (we need many smart and skilled people to build and operate them and we need to pay those people).
Perfectly working technology can make society more like a soulless machine, less like a healthy living organism. It trivializes and fixates execution of important processes which should rather have the possibility to be evolved.
For example, we can make an algorithm that ranks (and decides fate of) webpages or pandemic data, or applicants for special training programs, or for higher learning - all this via ranking members via some utility function.
Take the last example of applicants. We can make that tech perfect with respect to the given utility function (IQ, expected profit from individual's life's work). But putting that perfect math decision process into universal practice, we will cause various unknown unhealthy biases to maintain or develop themselves and prevent the outsiders not captured by the utility function from getting a chance. See the movie G.A.T.T.A.C.A. for compelling depiction of society like that.
One way to prevent this dystopic stagnation via perfection is to apply the "perfect technology" less strictly and allow for some randomization. Put some humanity into practice.
We can make a technology perfect for some purpose, but we can't seem to agree on the purposes. So maybe don't put perfect technology everywhere.
"Wanna perfect technology? Be careful what you wish for".
Tech in it's infancy vs extremely poor/cheap implementations?
Maybe I'm just being picky about the examples but I'm convinced there is a class in the middle where an implementation of a product has been refined by company a) and company b) can't get past class 1 problems but ships due to other reasons.
I'd give examples as, early stabs at a smartphone before iOS or Android, or laptops that try to imitate a macbook with inferior divers and hardware components.
65 comments
[ 3.3 ms ] story [ 137 ms ] threadThis is the correct one https://kk.org/thetechnium/class-1-class-2-problems/
But every time I try to post it, it changes automatically to kk.org once posted.
1. After posting, I'm redirect to https://news.ycombinator.com/newest where the link works 2. I click to open the discussion, now on this page link no longer works 3. Going back to /newest, the link no longer works!
https://html.spec.whatwg.org/multipage/semantics.html#the-li...
Doesn't really help too much with which one is the url to use but the link rel one is more righteous.
> Blockchain tech could unleash collaborations of several million members working on one project in real time, or orgs that are far more leaderless than today.
How? Projects like the Linux Kernel already have thousands of contributors. It's not clear what putting their work in a distributed ledger would do to encourage more users.
Twitter has millions of people generating content for it. Could a magic blockchain give people micro-cents every time their post was upvoted? Maybe. But that doesn't require a blockchain.
Could a global art project distribute funds via a smart contract? I guess. But with millions of users, people will gravitate towards leaders. Even if it's just following the way an paid-for "influencer" votes.
I too think that most of the tech problems inherent in DLT / smart contracts can be solved. But it isn't immediately clear what use they will be.
It's not even funny anymore.
If you authenticate all users and retain central administration, then blockchain's constraints simply don't apply.
On top of this, smart contracts take the code that would usually run these centrally administrated APIs and makes it public. I think this is the more powerful idea.
It's not just a decentralized ledger anymore, but a decentralized and public execution environment. And it's not crazy to believe that we've barely scratched the surface of what this type of execution environment can enable in user/provider interactions and user/user interactions.
If my spouse borrows my authentication device (with or without my permission) - then that ID is being used by multiple people.
I think it's analogous to a decentralized SSO (e.g. Google login, Apple ID login, etc.) that can be used as a source of identity without the service provider/smart contract writer needing to implement it themselves.
With Ethereum-style blockchains, this auth is built into the programming language itself. The msg.sender field is guaranteed to be consistent with the actual sender of a transaction. If it isn't, the computation that is ran will not be published to the blockchain.
This sort of auth infrastructure is not trivial to implement and you get it for free by deploying your service on blockchain. In addition, you get persistent storage for free. On top of that, smart contracts have common published interfaces. My IERC721 implementation will respond to the same calls as your IERC721 implementation. Standardized APIs is not really a thing on the normal Internet, but it's commonplace in web3.
EDIT: by "for free" I mean in terms of implementation and infrastructure work. The gas fees definitely are not free.
So, not very secure. Passwords aren't very secure on its own and practically always supplemented by human support systems and alternative factors of authentication. In really critical systems like government, these supplements extend all the way to a physical meeting with a bureaucrat. What's my recourse if I lose my blockchain secret?
All of that is the main cost of a serious user authentication system. Who cares if the msg.sender field is guaranteed to be consistent with the sender of a transaction if no one knows who the sender actually is.
So much this. If you don't care about credential theft or recovery, authentication is a straightforward problem. With a blockchain what changes is that you just can't care about this problem, and when it happens, your user is f*cked.
Like a login/password… With a specific difference, that if you lose your private key or if it's stolen, you're doomed and you cannot recover. The user authentication story is actually the weakest point of blockchains/cryptocurrencies, and that's exactly why 99% of their user actually uses a third-party wallet.
Also, smart contract sound like some magic sauce, but in fact aren't anything magical, they are short programs that can be executed on public data in the ledger, that's it. And the execution environment isn't distributed either (at least in the meaning of distributed computing, every node have to process the entire contract).
The only ways they can modify this ledger is publically and immutably defined at the creation of the smart contract. Sure they're not magic, but at any given time, you can query events published by that contract and query that contract's state. That's at least different than the traditional internet.
It may feel like I'm moving the goal posts but I'm just trying to highlight the differences between the stuff that happens on the traditional internet vs web3.
> It's not just a decentralized ledger anymore, but a decentralized and public execution environment.
“decentralized and public execution environment” really sounds like you could execute arbitrary programs in a distributed fashion (which would be really cool), which is absolutely not what smart contracts are.
If you can see through the hype, blockchains distributed across jurisdictions and organizations really do solve real problems for real people. Denying that is only putting blinders on. Maybe you don’t have those problems yet, maybe normal people don’t have those problems yet. That’s great, but it’s a snapshot in time; it doesn’t say anything about the dynamics of the systems involved, or what people will want in the future, or how and why that might change.
This is especially important to keep in mind when reading the prognostications of a futurist like Kevin Kelly.
Yes, everything you said is possible. But it requires each company to build an open api and make things interoperable.
Crypto pushes things to the protocol layer https://www.usv.com/writing/2016/08/fat-protocols/ which leads to things being interoperable. For example, https://www.blockchaingamer.biz/news/1869/the-dragon-fightin....
Since the protocols are public info, you can build off of them. It's why there is so much progress in all this space because the contracts are open, you can clone them, build new ones that make use of them etc.
Try doing that in a non crypto world. You are at the mercy of what Facebook, Instagram or whatever other company decides to open up to let you build off of.
It's a push for a more open internet, imo. Where data can flow fluidly where the users want it. Contracts are build out in the open, with the incentives pushed away from the application layer (less FBs) to the protocol layer (more stripes?). Applications can build off of the protocols but they make use of open data and open protocols that other applications can easily make use of as well. Making it easier to come in and compete with the FBs of the world.
Sure, Facebook might deprecate an API. But that doesn't stop me from being able to do generic HTTP requests for JSON documents.
And, while I love decentralisation, it appears that the majority of people gravitate to big providers. Because they provide better services or a bigger audience or demonstrate more trust.
And I'm still not sure what I'd use a smart contract for. Programmers don't seem any more competent than lawyers when it comes to writing bug-free documents.
I’d love to have a discussion about the topics raised, but it’s no fun to have a discussion with someone who is repeatedly critical and a little fired up before even understanding the fundamentals. Skeptical is fine, but the specific criticisms raised don’t even make sense in the way that I understand the space.
It’s my observation that people make comments that ‘don’t make sense in the way that I understand the space’ very frequently, and while it’s certainly an indication that we don’t understand each other, and may be an indication that someone is mistaken, it is not obviously indicative of emotion, and in any case the presence of emotion isn’t obviously indicative of incorrectness or irrationality.
Regardless of the correctness of your diagnosis (which you now will never be certain of) the move is a conversational gambit that isn’t likely to lead to anything constructive.
What are you referring to as the long-term play? What’s the goal?
Sometimes I can’t find a way to nudge a particular conversation toward constructiveness, but I can raise a way in which we all might be able to have more constructive conversations in the future.
A small drop of antidote against the psychological warfare going on. I’m still learning, but it feels right.
Once you have declared someone’s position invalid because of their emotional state rather than their logic, that person can no longer trust you to take anything they say seriously.
In effect, you are declaring yourself to be an untrustworthy interlocutor.
I recognize that you may have the goal of increasing constructive conversations, but it’s not clear how this technique is going to serve that goal, game theory or not.
ethereum smart contracts are "neat" but szabo, miller, et al. have been working on them for decades and bjg business hasn't jumped on them yet.
maybe we'll come up with a use... i've heard mumblings about agtech decentralized something or other.
kk touched on the idea here of tech monoculture and it's risks. what happens if stuff we trust breaks and we don't have a backup plan. maybe people are waiting for someone else to assume the risk and verify smart contracts work?
In this case, there's a naming problem. "Class 1" and "Class 2" don't give any semantic content. Is there a "Class 3" coming along?
Let me suggest "Inadequacy Problems" and "Ubiquity Problems" as alternatives.
There are also Class 0 problems, like fusion, where just getting things off the ground is difficult.
They supply useful context and are not ambiguous.
Class 1: medical devices, explosives, renewable energy credits, depreciable property, lasers, streetcars, UK national insurance, railroads, electronics, felonies...
If you're going to coin a term, make it a good one.
Aside: the joke I've heard was always naming, resource management, and off-by-one errors.
Resource management would include cache invalidation, malloc/free, open()/close(), accept()/close(), dup()/close(), garbage collection, etc. etc.
https://skeptics.stackexchange.com/questions/19836/has-phil-...
So I guess from this perspective, there's really only one hard problem in computer science: resource management and off-by-one errors.
> In this case, there's a naming problem. "Class 1" and "Class 2" don't give any semantic content.
To me, the names suggested a connection or analogy to Type 1 and Type 2 errors, also known as False Positives and False Negatives. I was wrong, as it turns out, but the opaqueness of the labels, while annoying and unnecessary, isn't unprecedented.
The trick for technologists is to make their technology ubiquitous before anyone sees the consequences. It's done over and over again and it is hard to see a way out that does not stifle innovation.
it's easy to find this content with a few exploratory clicks, but seems weird it would do that since other commenters obviously saw the content.
anyway, if you have a problem finding the link, i typed this in and got there directly.
https://kk.org/thetechnium/class-1-class-2-problems/
ymmv
It's been such a struggle to get anywhere near to making it do something useful.
But what if, one day, it actually works?
What could happen if we all had access to enormous amounts of very cheap energy? Have we thought even a little bit about all the bad things that might happen as a result?
Once upon a time, people thought nuclear fission energy would bring "power too cheap to meter". They did not realize all the associated costs.
If fusion ever comes, it will be expensive, even more than fission is now. It can still happen, if big gov and big corp put their money into it, but it's kind of unlikely. Solar plus fission is the more conservative (less risky) way to go.
Websearch Yucca Valley; do you want your aquifer to be downstream of that?
For example, we can make an algorithm that ranks (and decides fate of) webpages or pandemic data, or applicants for special training programs, or for higher learning - all this via ranking members via some utility function.
Take the last example of applicants. We can make that tech perfect with respect to the given utility function (IQ, expected profit from individual's life's work). But putting that perfect math decision process into universal practice, we will cause various unknown unhealthy biases to maintain or develop themselves and prevent the outsiders not captured by the utility function from getting a chance. See the movie G.A.T.T.A.C.A. for compelling depiction of society like that.
One way to prevent this dystopic stagnation via perfection is to apply the "perfect technology" less strictly and allow for some randomization. Put some humanity into practice.
We can make a technology perfect for some purpose, but we can't seem to agree on the purposes. So maybe don't put perfect technology everywhere.
"Wanna perfect technology? Be careful what you wish for".
- Printing press -> Uppity peasants
- Electric light -> Sleep problems
- Air conditioning -> Weight gain
Maybe I'm just being picky about the examples but I'm convinced there is a class in the middle where an implementation of a product has been refined by company a) and company b) can't get past class 1 problems but ships due to other reasons.
I'd give examples as, early stabs at a smartphone before iOS or Android, or laptops that try to imitate a macbook with inferior divers and hardware components.