Congratulations to the cryptographers and engineers at Mina for shipping this. We are getting palpably close to efficiently provable general computation. (For others interested in the evolution, see TinyRAM and the various zkEVM efforts especially zkSync2. This is a fascinating development in CS with wide implications.)
(Note that of the 1m initial tokens, slightly over half is "backers", "core contributors", and the two foundations. Since Mina is proof-of-stake, all ongoing issurance goes to existing tokenholders, so we can expect that Mina will always be over 50% insider owned unless they sell.)
> all ongoing issurance goes to existing tokenholders
David Rosenthal also raised this issue in his recent blog entry [1]:
"It isn't just that the Gini coefficients of cryptocurrencies are extremely high[4], but that Proof-of-Stake makes this a self-reinforcing problem. Because the rewards for mining new blocks, and the fees for including transactions in blocks, flow to the HODL-ers in proportion to their HODL-ings, whatever Gini coefficient the systems starts out with will always increase. Proof-of-Stake isn't effective at decentralization."
> Because the rewards for mining new blocks, and the fees for including transactions in blocks, [...] whatever Gini coefficient the systems starts out with will always increase
That doesn't follow at all. If everyone staked their coins and nobody ever bought or sold, the distribution would remain constant over time. In reality, coins do trade, and this causes diffusion. Coin ownership can decentralize over time.
In practice, proof-of-stake is better for distributing ownership than proof-of-work, because the block rewards (new issuance) go to a wider set of participants. Staking can be done by anyone, while mining profitably requires a specialized operation with large upfront capital costs.
--
Finally, be wary of anyone quoting Gini coefficients for blockchains. Gini only makes sense if calculated per person. If you calculate Gini from on-chain address balances, you get numbers that are wildly off. See https://vitalik.ca/general/2021/07/29/gini.html
I haven't read the blog entry, but the logic here doesn't make sense to me. If everyone gets a 5% return on their stake, the gini coefficient doesn't change at all. Probably small holders never stak and so never get any return, but these people were never going to run nodes anyway so I don't know if it matters.
Furthermore, let's say it costs $1000 to set up a PoW mining rig, compared to $1000 to buying a stake big enough to let you validate. I'm not sure it makes such a big difference in either case.
I've interviewed a lot of software engineer candidates. It's always surprising how often people with impressive resumes, including computer science degrees from good-to-great universities, can't code at all.
I'm not talking about trick "do you remember A* search" questions. I'm talking about the ability to write a basic program and to reason about what it will do.
I've seen this across the gamut, from new grads to staff engineers.
Part of this is selection bias: those folks probably apply to many companies before they slip through somewhere, so they're overrepresented as interviewees.
My sense is that it's becoming more common. Undergrad CS has ever more people who are in it for reasons unrelated to enjoyment or curiosity.
L2 is, in my view, some of the most interesting research happening in computer science right now. The article above is not a great explanation--in particular, L2s are not off-chain as the article presents. The point of L2 is that it on-chain, inheriting the security and censorship resistance guarantees of L1.
To simplify: L2 is about creating a fast, high throughput state machine whose state transitions are verifiable on a blockchain. Blockchains, in turn, are about creating a uncensorable state machine that reaches global consensus.
So L1 achieves security, and L2 adds speed.
So why not just make L1 fast to begin with?
The strong guarantees of L1 rely on a lot of validators (on the order of ~10k+, worldwide, often on home internet connections) verifying each state transition. This puts a fairly low practical ceiling on how fast L1 can go.
L2 uses centralized sequencers to run transactions much faster, but uses a mechanism that runs on L1 to ensure the sequencer can't cheat.
The main mechanisms are 1. optimistic rollups and 2. ZK rollups. The latter, in particular, are fascinating. If you care about distributed systems even a little bit, it pays to suppress your skepticism and learn about how they work.
agree, ZKProofs are really interesting and i'm sure they will come to be used across lots of areas of the web and not just blockchain, though their use and development is most active in the blockchain space for how useful they are for privacy+scalability.
Proving knowledge without revealing information allows us to prove computations (validating them is a lot quicker than repeating the computation) and "use things" without sacrificing privacy.
You can combine the two and have private transactions which are then rolled up in a computation, and then post the proof of the computation to mainnet. You get both cheap and private transactions and infra on top of the base chain.
But this goes beyond blockchain: we can hand code to other people to run and then have proof they haven't altered what we agreed upon running, so we can trust the results of someone else running something. That is useful in all sorts of research for replicability in science/engineering.
> i'm sure they will come to be used across lots of areas of the web and not just blockchain
Totally agree with this. After working closely with zk I noticed that it boosts your thinking about decentralized protocols in the same way as knowing about signatures or hashes.
Right now infrastructure for doing zk is in “alpha” stage and different proving systems and optimizations are fairly new and not widely used. I believe it will grow bigger It’s very exciting field.
(I worked on zk rollup called zksync but zk rollups are only one of the use cases for zk proofs)
The primary function of finance is to enable economic agents to trade future consumption for present consumption, by means of debt. And debt requires a trusted third-party that has the capacity to re-allocate assets. Otherwise the borrower can simply walk away with the money, and never repay the debt. Now, blockchains, not only lack a trusted third-party that can re-allocate assets, but they are designed with the explicit goal of preventing such re-allocations. Therefore my question is how can this technology be the "future of finance" when it's designed from the ground up to be incompatible with finance?
There is no reason that the third-party cant be a contract with globally accessible permissionless apis, that let you borrow peer2peer or peer2protocol against your assets, and that upon you not repaying your debt liquidates your position (by other people/protocols bidding for the assets that are out of position, usually over-collateralized at 150% min).
Most of defi is structured in this way and it is working fine, it works because it IS being integrated and made compatible with existing finance.
This is "futuristic" because anyone in the world has opportunity to lend/borrow to anyone else in the world, to write code that automates savings accounts by rotating these positions, to write business logic of their startup to borrow money when they need and pay it back when its the best time for them - scaling their finance on demand like spinning up an ec2 instance.
A system where you have more voice and opportunity for your work/savings/co-op/club, compared with whatever the state of banking is in wherever you happen to be born in the world.
Concrete example: I asked my bank to borrow some money and showed them my bitcoin, they predictably said no because their system cant handle it. I wrapped it onto ethereum, deposited it in aave, borrowed usdc, withdrew to my bank account and carried on with my life without needing the banks permissions. The people lending that usdc to aave to lend out to me know it is safe and I cant run off never paying back my debts and interest (otherwise they get my over-collateralized btc).
permissionless global p2p lending and borrowing. it isn't futuristic, it is the present. ill never understand why "hacker"news doesnt find that amazing.
You don't seem to get it. If the borrower has to put up 100% collateral it means that their buying power remains the same. Borrowers borrow money in order to increase their present buying power (at the expense of future buying power). You can't do that with overcollateralised loans, smart contracts, or blockchain technology.
No, you are only describing a part of what borrowing is about. Your use case is valid, but it is just one of many use cases. Consider the following:
I own a a long-term retirement account, but I need to pay an emergency medical bill and don't have cash at hand. Obviously I don't want to liquidate my savings account, but I can put it up as collateral to go to a bank and get a cash loan. If I'm unable to pay the account may be liquidated. That's an overcolleralized loan. It's useful. The same is happening when you put up your house as collateral, or arguably even your reputation.
The blockchain equivalent of this is the same. You put up one asset as collateral e.g. Bitcoin, and you can get another more liquid asset.
Another use case for this is simply market exposure and hedging. You can put up Bitcoin as collateral, still having exposure, and then use the loan to buy another asset to get exposure to, creating a more complex structured exposure. This has nothing to do with blockchain, it's the same in traditional finance.
An overcollateralised loan is equivalent to a swap (a type of derivative). Swaps have their uses, and are used in finance, but they don't provide financing. The point is if blockchain technology can't be used to do financing, and it definitely can't, just don't call it the "future of finance", because it is not. It can't perform the basic function of finance, which is financing.
How is a mortgage not financing, and how is a mortgage not just another over-collateralized loan?
Every loan has some form of collateral. Even credit cards do, it's just less tangible: you are staking your credit score, which they'll start chipping away at as soon as you start defaulting.
A mortgage is indeed a form of financing because the lender does not keep the collateral until the debt is paid off in full. If they did, there would be no financing going on. It would be equivalent to saving for 30 years and then buying the house.
Credit cards are loans based on future income streams (which can be securitised in fact with crypto technology -- think a defi bank automatically getting 20% of your future income until it is repaid)
The problem isn't overcollateralisation itself but the inability to seize the collateral in particular, and assets in general. A mortgage depends crucially on the bank's ability to seize the collateral in the event of default, and the same applies to credit cards. The problem is blockchain assets are unconfiscatable, which means any form of financing involving such assets is unworkable.
No, blockchain assets can be confiscated. Maker, Aave, confiscate and liquidated billions of assets in the past few days.
Smart contracts are Turing complete and you can build anything with it. You can even build an opt-in judiciary system with the power to reverse transactions.
I think you'll be pleasantly surprised if you look at how DeFi actually works.
No, Maker & Aave haven't confiscated anything in the past few days. Either you don't know what 'confiscate' means or you don't know how Maker & Aave, and DeFi lending in general, work.
You could use existing trusted lending Institutions, no? Investors can loan their excess Bitcoin to a lending institution that pools Bitcoin from multiple investors and loans it out to borrowers? In return, the investor receives interest on the loaned amount when it is paid back in full? If the loan isn’t repaid, the courts get involved to seize other physical assets from the borrower (cars, homes, etc.).
In some sense, we would be back to having banks with the exception that the bank now exists solely as an investment vehicle.
I guess I’m struggling to see what barriers prevent crypto currencies from being used in traditional financing?
Nothing prevents crypto-currency denominated loans in traditional finance. That was not the claim. The claim is that financing operations are not possible in so-called "decentralised finance".
Loans are an important concept, that's true. Do blockchains inherently prevent loans? I'm not sure, I think Ethereum smart contracts enable the concept of loans. The 3rd party here is the contract itself, as I understand it.
Blockchain "loans" are fully collateralised and sometimes even require upto 4x the collateral than the loan itself. This is not useful in the vast majority of cases
If I lend you 1 ETH, I have no means to make you pay me back. Smart contracts can't do that either. A smart contract cannot seize 1 ETH from your wallet and send it back to my wallet. Blockchains are designed specifically to prevent that.
That's not true, you can definitely do this with a smart contract blockchain like Ethereum, and there are plenty of loan protocols already that do this in production with $ billions in assets transacted.
No one can steal your ETH from your wallet, but they can liquidate your staked collateral held by the smart contract.
There's no reason why Blockchains can't also incorporate their own trust model to facilitate lending that isn't fully collateralized. There are already projects working towards this. Pseudonymous p2p lending isn't some impossible thing.
The current frothy state of crypto, unsustainable as it may be, is evidence that people are willing to trust crypto projects enough to give them money if there's a chance of getting some amount of more money. Much of this looks like equity financing. Debt financing isn't inherently off limits though it just is harder.
Debt financing is definitely not simply harder but entirely impossible. If you think otherwise, please explain how the borrower can be made to repay the debt with this technology.
Borrowers cannot be "made" to repay debt in traditional finance either. Lenders must make decisions based on some measure of the credit worthiness of potential borrowers. The same mechanisms could be replicated on blockchains. See:
What? Of course borrowers can be made to repay the debt in traditional finance. Get a loan from your bank, and refuse to pay it back. See what happens. If don't understand the basic mechanisms behind a loan agreement, there's no point in continuing this conversation.
> Get a loan from your bank, and refuse to pay it back.
I don't even know where to begin when it comes to examples of just that happening. Defaulting on debt is something that happens with every single form of credit. It's extremely fundamental to the idea of debt.
Nobody says defaults don't happen. Defaults happen all the time. When they happen the creditor will initiate legal action against the borrower. If the borrower continues to refuse to pay or is unable to do so, the court will seize the borrower's assets and will liquidate them in order to pay the debt to the extent possible. This is process is impossible to replicate with a "smart contract" because smart contracts lack the ability to seize assets.
The mechanism for "making" repayment mandatory is the state. Credit worthiness (or any other information) is useless if the debtor cannot be made to repay
Yes, ZK is cool. I expect to hear about it on other chains too. One of the lower visibility projects I follow, Symbol, has a similar concept of subchains and is already working towards applications on them.
Author mentions four increasingly obscure C replacements (first I've heard of Odin) without mentioning that the creators of the original C and Unix went on to make Go.
Go does not have manual memory management. Despite (actually because of) that captures the spirit and design goal of the original C beautifully. It's a minimalist systems programming language.
One of the amazing things about Go is the standard library-- the thing he complains about with C. The Go standard library is incredibly readable. It's night and day from C/C++ where opening glibc/STL etc is assault on the senses.
Too much web3 thinkpiecing (both pro and anti) comes from people who've never looked under the hood. It's refreshing to see someone try actually try crypto as a developer, not just as a user, and go deep enough to figure out how things work in practice.
Moxie's critiques are valid. All of these are well known problems to the researchers at the core of web3 and all are the subject of active R&D.
- Point 1: people fundamentally don't want to run their own servers.
Clearly true. Vitalik gave a vivid example of this in a recent interview on Bankless pod. He visited Argentina, where hyperinflation has forced many people to use crypto or physical USD. He observed people using stablecoins, but not primarily via Eth L1 or any L2. Instead many transacted via Binance. Not BSC--Binance the centralized exchange! Which provides a Paypal-like UX.
Crypto researchers are fully aware. The plan is a couple thousand validators and millions, eventually billions of end users. Of course the end users will not run command-line geth, or run their own server in any capacity.
The plan is for them to use some combination of light clients or trust-minimized hosted services. This requires bringing transaction fees way down, the core goal of L2 rollups + sharing.
Also, today's popular clients are not particularly trust-minimized, which brings us to his second point. Paraphrasing:
- Point 2: current "web3" is really mostly web2. Under the hood, Metamask, OpenSea, etc just use trusted servers.
The fix here is trust-minimized services (= like Infura, but with every response bearing a proof of correctness) or light clients (= very similar, but using full nodes as interchangeable servers).
This exists today as a proof-of-concept. It is about to become feasible in production. The reason current Infura does not provide proofs is because Merkle proofs are 10x+ the size of the data returned for a typical query. Verkle trees fix this.
Zooming out. Here is the Ethereum roadmap for the next two years, summarized:
- The Merge. This removes proof-of-work. The Eth ecosystem will use >99% less energy after this point.
- The Surge. This is about data sharding. Today a transaction might cost ~$50 on a bad day on Eth L1 and ~$0.50 on a Layer 2 rollup like ZKSync. After the Surge, L2 transactions will be nearly free.
- The Verge. This is about Verkle proofs and statelessness. These allow the core user interfaces -- wallets and light clients -- to efficiently follow the blockchain without trusting central intermediaries. They enable efficient proofs of any portion of the chain or its state.
---
I think these are fundamentally powerful primitives, the implications of which we've just barely begun to explore. I actually welcome the next bear market, since it shakes out the grifters. It is day 1.
HN is an exceptionally clean, minimalist website. Instant page loads. No ads, no "accept cookie" banner, no autoplaying media, in fact no media of any kind, no engagement-maximizing algorithm. Quality moderation via dedicated human mods.
Then everyone comes here to talk about their Svelte ESnext 69.0 x serverless kubernetes 3d metaverse animated gif NFT marketplace subscription-based growth hack horror they're about to inflict on the public.
NPS has the advantage of being concrete and simple, producing evenly sampled feedback. This is hard to get any other way.
A proper NPS asks only one question and requires only a single click to answer -- eg "Scale of 1-10 how likely are you to recommend <product> to a friend?" > click [8] > done.
There's a free-text "Tell us more" field that is totally optional.
This means users actually answer it. NPS feedback is the closest I've ever seen to being a clean sample.
By contrast:
- Everyone hates an n-question "would you like to fill out our survey" feedback form. Any data from those is going to be skewed, because only a certain kind of person fills those, and usually only if they're angry enough that they want to vent.
- Feedback from a passive "Submit feedback" button in-app is also skewed. Maybe useful as a bug report mechanism, but it won't tell you what's making your happy users happy.
- Proactively reaching out and talking to/observing users is obviously good, and nothing ever substitutes for that. But you want bulk data, not just anecdotal evidence.
- Most importantly, NPS really shines at telling you what's making your almost-happy users almost-happy. When someone clicks [10] and writes "I love it", that feels great. But when someone clicks [7] and tells you what's annoying them, that's often extremely useful.
- NPS does a great job priming people to give useful feedback. By forcing you to pick a single out-of-10, you just did a quick mental accounting. "9? Nahh, <reason>." Then you click 8 and write the reason.
--
NPS was popularized by that famous HBS study where they found it correlates well with product growth.
I wonder how much of that result is simply because it's one of the least obnoxious ways of sampling user feedback, and therefore produces clean data.
In an almost Goodhart’s Law case, now that I know how NPS is used, I answer these questions differently, being far more prone to use 6, 7, or 8 to express my opinion.
It probably depends on the survey. If I just want to get out the door of the service department at the car dealership I'll probably give a perfect score unless they really screwed something up. I don't want to explain a non-perfect score and probably shouldn't give one so long as the experience was "OK."
On the other hand, like many, I probably tend to follow something like the XKCD star rating levels (https://xkcd.com/1098/) for products. And for employee surveys, I generally answer somewhere in the mildly positive range to most questions.
I'm not sure I've ever answered an NPS survey but, for most companies, I'd probably be somewhere in a similar range, even for companies I'm perfectly fine with most of the time.
The more complex the transactions/products the more reliably you'll have areas of gripe-age. A book or movie is rarely 5 stars for me. A USB cable pretty much works or it doesn't.
And it's not just empty nostalgia. A text interface should be lightning fast. Hit a button, next screen repaint reacts. The ultimate retort to all the 5mb websites full of dropped frames, drop shadows and jank.
Solidity developers are already out here counting every instruction. Maybe what's old is new.
One of the more toxic ideas floating around our culture is this idea of "net worth" as a scoreboard.
This woman is 82 years old and a leader of a nominally left-wing party.
So given the choice between:
1. taking a principled stand against the use of political access for financial gain, and dying in a few years with a NW of $100m
2. defending insider trading, and dying in a few years with a NW for $150m
It's worth asking what cultural programming would make someone even consider #2. It's not the usual reasons people want more money. There is no hedonic utility, no extra financial independence, no added social status that comes with #2.
I have no problem with accumulating wealth as a means to an end. But if you're willing to compromise your legacy to run that score up a little higher, you're an npc & you've lost the plot.
(Disarmament was one of the Russian asks during yesterday's negotiations. It was rejected ofc.)