3337 stories
·
86 followers

On the Dangers of Cryptocurrencies and the Uselessness of Blockchain

6 Comments and 9 Shares

Earlier this month, I and others wrote a letter to Congress, basically saying that cryptocurrencies are an complete and total disaster, and urging them to regulate the space. Nothing in that letter is out of the ordinary, and is in line with what I wrote about blockchain in 2019. In response, Matthew Green has written—not really a rebuttal—but a “a general response to some of the more common spurious objections…people make to public blockchain systems.” In it, he makes several broad points:

  1. Yes, current proof-of-work blockchains like bitcoin are terrible for the environment. But there are other modes like proof-of-stake that are not.
  2. Yes, a blockchain is an immutable ledger making it impossible to undo specific transactions. But that doesn’t mean there can’t be some governance system on top of the blockchain that enables reversals.
  3. Yes, bitcoin doesn’t scale and the fees are too high. But that’s nothing inherent in blockchain technology—that’s just a bunch of bad design choices bitcoin made.
  4. Blockchain systems can have a little or a lot of privacy, depending on how they are designed and implemented.

There’s nothing on that list that I disagree with. (We can argue about whether proof-of-stake is actually an improvement. I am skeptical of systems that enshrine a “they who have the gold make the rules” system of governance. And to the extent any of those scaling solutions work, they undo the decentralization blockchain claims to have.) But I also think that these defenses largely miss the point. To me, the problem isn’t that blockchain systems can be made slightly less awful than they are today. The problem is that they don’t do anything their proponents claim they do. In some very important ways, they’re not secure. They doesn’t replace trust with code; in fact, in many ways they are far less trustworthy than non-blockchain systems. They’re not decentralized, and their inevitable centralization is harmful because it’s largely emergent and ill-defined. They still have trusted intermediaries, often with more power and less oversight than non-blockchain systems. They still require governance. They still require regulation. (These things are what I wrote about here.) The problem with blockchain is that it’s not an improvement to any system—and often makes things worse.

In our letter, we write: “By its very design, blockchain technology is poorly suited for just about every purpose currently touted as a present or potential source of public benefit. From its inception, this technology has been a solution in search of a problem and has now latched onto concepts such as financial inclusion and data transparency to justify its existence, despite far better solutions to these issues already in use. Despite more than thirteen years of development, it has severe limitations and design flaws that preclude almost all applications that deal with public customer data and regulated financial transactions and are not an improvement on existing non-blockchain solutions.”

Green responds: “‘Public blockchain’ technology enables many stupid things: today’s cryptocurrency schemes can be venal, corrupt, overpromised. But the core technology is absolutely not useless. In fact, I think there are some pretty exciting things happening in the field, even if most of them are further away from reality than their boosters would admit.” I have yet to see one. More specifically, I can’t find a blockchain application whose value has anything to do with the blockchain part, that wouldn’t be made safer, more secure, more reliable, and just plain better by removing the blockchain part. I postulate that no one has ever said “Here is a problem that I have. Oh look, blockchain is a good solution.” In every case, the order has been: “I have a blockchain. Oh look, there is a problem I can apply it to.” And in no cases does it actually help.

Someone, please show me an application where blockchain is essential. That is, a problem that could not have been solved without blockchain that can now be solved with it. (And “ransomware couldn’t exist because criminals are blocked from using the conventional financial networks, and cash payments aren’t feasible” does not count.)

For example, Green complains that “credit card merchant fees are similar, or have actually risen in the United States since the 1990s.” This is true, but has little to do with technological inefficiencies or existing trust relationships in the industry. It’s because pretty much everyone who can and is paying attention gets 1% back on their purchases: in cash, frequent flier miles, or other affinity points. Green is right about how unfair this is. It’s a regressive subsidy, “since these fees are baked into the cost of most retail goods and thus fall heavily on the working poor (who pay them even if they use cash).” But that has nothing to do with the lack of blockchain, and solving it isn’t helped by adding a blockchain. It’s a regulatory problem; with a few exceptions, credit card companies have successfully pressured merchants into charging the same prices, whether someone pays in cash or with a credit card. Peer-to-peer payment systems like PayPal, Venmo, MPesa, and AliPay all get around those high transaction fees, and none of them use blockchain.

This is my basic argument: blockchain does nothing to solve any existing problem with financial (or other) systems. Those problems are inherently economic and political, and have nothing to do with technology. And, more importantly, technology can’t solve economic and political problems. Which is good, because adding blockchain causes a whole slew of new problems and makes all of these systems much, much worse.

Green writes: “I have no problem with the idea of legislators (intelligently) passing laws to regulate cryptocurrency. Indeed, given the level of insanity and the number of outright scams that are happening in this area, it’s pretty obvious that our current regulatory framework is not up to the task.” But when you remove the insanity and the scams, what’s left?

EDITED TO ADD: Nicholas Weaver is also adamant about this. David Rosenthal is good, too.

Read the whole story
acdha
2 days ago
reply
Green's “rebuttal” was disappointingly weak — to be honest, I read it expecting the end to be that he'd picked up some lucrative consulting work from a cryptocurrency company.
Washington, DC
sirshannon
11 hours ago
reply
popular
1 day ago
reply
Share this story
Delete
5 public comments
bronzehedwick
1 day ago
reply
Crypto is one of the rare cases where if we burn it to the ground it will help our species survive.
Jersey City, NJ
pdp68
1 day ago
reply
"This is my basic argument: blockchain does nothing to solve any existing problem with financial (or other) systems. Those problems are inherently economic and political, and have nothing to do with technology. And, more importantly, technology can’t solve economic and political problems. Which is good, because adding blockchain causes a whole slew of new problems and makes all of these systems much, much worse."
Belgium
chrismo
1 day ago
reply
#tech
ReadLots
2 days ago
reply
If we can just move all of the fraud into the blockchain, maybe then it can have purpose - keeping the scammers busy in crypto and leaving us outside of it alone.
GaryBIshop
2 days ago
reply
Well said!

pic.twitter.com/rpIUT29Pko

1 Comment and 2 Shares
Read the whole story
sirshannon
1 day ago
reply
Stage west.
Share this story
Delete

Apple's Feedback Mechanism is Broken

1 Comment and 2 Shares

In November, I purchased a brand-new MacBook Pro, complete with Apple’s fancy new M1 Max processor. This is, without reservation, the best computer I’ve ever owned. It is faster than my beloved iMac Pro, but considerably more portable.

At the time, I was working on what would eventually become MaskerAid. Very quickly upon getting to work on my new computer, I realized that things weren’t working properly on this new machine. After some research, it appeared that some aspects of the Vision Framework were not available on Apple Silicon based Macs.

Apple’s mechanism for providing them feedback is the aptly-named Feedback Assistant (née Radar). It is a full-blown app on macOS/iOS/iPadOS. In fact, if you happen to be on an Apple device, try this link. Radar was a black hole, where issues went to die get marked as duplicates. Feedback Assistant, despite trying to pull the “Xfinity trick”, seems to be the same as it ever was.

Regardless, I filed a Radar Feedback — Apple people, if you happen to read this, it’s FB9738098. When I filed it, back in 3 November 2021, I even included a super-simple sample project to demonstrate the issue.


Apple’s feedback system is fundamentally broken — at least, for everyone who does not work at Apple.

In the roughly 225 days since I filed that feedback, I received precisely zero… well… feedback. Apple is a big company, and surely gets an unimaginable amount of feedback filed every single day. However, I have zero indication that a human has looked at my bug. To me, it went into the black hole, never to return again.

Thankfully, by virtue of my day job, I’ve had the occasion to make the acquaintance of quite a few Apple engineers. I reached out to someone who, let’s just say, should have insight into how to fix my problem. They were very helpful, and very apologetic, but their response was, in my words, “tough shit”.

Sigh.


Fast forward to early this month, and it’s WWDC. One of the best not-so-secret secrets about WWDC is that the labs are where it’s at. You can, from the comfort of your own home, spend ~30 minutes with an Apple engineer that is likely to be intimately familiar with the APIs you’re working with. So, I signed up for a lab to beg for someone to fix my bug.

I didn’t expect much to come of this lab, and I started by telling the engineer I spoke with that I expected it to take just a couple minutes. As I told them, I was just there to beg for them to fix my bug.

The engineer’s response?

“Well, I do think this is only going to be a couple minutes, but it’s better than you think: I have an easy workaround for you!”

🎉


In short, when you make a request of the Vision Framework on an Apple Silicon Mac, it fails every time.

Sample code
/// Asynchronously detects the faces within an image.
/// - Parameter image: Image to detect faces within
/// - Returns: Array of rects that contains faces.
///
/// - Note: The rects that are returned are percentages
///         relative to the source image. For example:
///         `(0.6651394367218018,`
///          `0.527057409286499,`
///          `0.0977390706539154,`
///          `0.1303187608718872)`
static func detectFaces(in image: UIImage) async throws -> [CGRect] {
    typealias RectanglesContinuation = CheckedContinuation<[CGRect], Error>
    
    return try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in
        guard let cgImage = image.cgImage else {
            print("WARNING: Couldn't get CGImage")
            continuation.resume(throwing: FaceDetectionErrors.couldNotGetCgImageError)
            return
        }
                    
        var retVal: [CGRect] = []
        let request = VNDetectFaceRectanglesRequest { request, error in
            if let error = error {
                print("WARNING: Got an error: \(error)")
//                    continuation.resume(throwing: error)
                return
            }
            
            if let results = request.results as? [VNFaceObservation] {
                retVal.append(contentsOf: results.map(\.boundingBox))
            } else {
                print("WARNING: Results unavailable.")
            }
            
            continuation.resume(returning: retVal)
        }
        
        let handler = VNImageRequestHandler(cgImage: cgImage,
                                            orientation: CGImagePropertyOrientation(image.imageOrientation),
                                            options: [:])
        

        do {
            try handler.perform([request])
        } catch {
            print("ERROR: Request failed: \(error)")
            continuation.resume(throwing: error)
        }
    }
}

The error you receive is as follows:

Request failed: Error Domain=com.apple.vis Code=9 "Could not create inference context" UserInfo={NSLocalizedDescription=Could not create inference context}

Back in my lab, I asked the engineer what they were talking about. As it turns out, I simply needed to add one line, against my instance of VNDetectFaceRectanglesRequest:

request.usesCPUOnly = true

That’s it.

Apparently it will force the Vision Framework to use the CPU and not GPU for its computations. Pretty crummy for a real device, but no problem when you’re just trying things in the Simulator.

Having my problem worked around, in the span of five minutes, with a single-line code change is both delightful and incredibly frustrating.


I got to thinking about this lab again this morning, and I’m pretty upset by it. Ultimately, I got what I wanted, but why couldn’t I have had that OVER TWO HUNDRED DAYS AGO‽ It’s infuriating.

Furthermore, as a parting shot, the engineer asked me if I ever bothered trying to talk to someone by using one of my Tech Support Incidents. The engineer meant it in good faith — they were trying to say that I didn’t have to wait from November → June to get an answer. But in a way, I almost find this more frustrating still.

Why is this the accepted way to get the attention of an engineer? For something as simple as a one-line code change, why are my only two options:

  • Wait for June and hope I get an audience with the right engineer at a lab
  • Use one of my two Technical Support Incidents and hope it’s fruitful… and that I don’t need that one for something else later in the year

Were my problem put on the desk of the right engineer, who was incentivized to provide useful and actionable feedback, it could have been worked around in just a few minutes. I just needed a reply to my feedback with the one-liner.

Unfortunately, Feedback Assistant and Radar are tools for Apple, and they serve Apple’s needs and only Apple’s. They are a complete waste of time for outside developers. I maintain that they are a black hole into which I pour time, effort, sample code, and [often useless] sysdiagnoses. I get nothing in return.

Apple swears up and down that Feedbacks are useful. I’ve been told many times, by many teams, that they also use Feedbacks as a de facto voting mechanism to try to get a pulse on what external developers want. I’ll leave it as an exercise for the reader to think about how utterly broken that is.

Instead, let me make it clear what developers want:

Let’s start there, if you please.

Read the whole story
sirshannon
5 days ago
reply
ACAB includes anyone that says "file a radar."
sarcozona
5 days ago
reply
Epiphyte City
Share this story
Delete

A Personal History of Music, Day 16: “Tear In Your Hand,” by Tori Amos

1 Share
John Scalzi

There are any number of reasons why “Tear In Your Hand” has remained in my mix of Highly Significant Songs, but possibly the most important reason is that it’s rooted into a very specific place and time for me: Fresno, California in the early 90s. This is where I had gotten my first job out of college, as a film critic for the Fresno Bee newspaper. At the time I was listening to quite a lot of music, but almost all of it was from bands or musicians I was already listening to before I had come to this new town. Tori Amos’ album was, at least as far as I can remember, the first new music from a new artist that I really connected with —

— well, okay, I just checked and “Smells Like Teen Spirit” came out literally the week I started my job with the Fresno Bee. But! “Smells Like Teen Spirit,” is not a song I associate with Fresno, and Nirvana is definitely not a band I associate with my time in that place. I don’t know, maybe it’s because (to play off the title of Amos’ album) “Smells Like Teen Spirit” is a large earthquake, literally the sound of popular rock music being wrenched into another shape entirely. I didn’t feel ownership of that song or that band; who could?

“Tear In Your Hand” and Little Earthquakes, on the other hand: Here was music that was speaking to me at that time in my life, and in that place, where I did not yet have a solid context and was looking for things to help set me there. Here’s Tori Amos bleeding onto her piano with intimate and occasionally terrifying songs, the prettiness of the compositions distracting you from the words until they were well and truly sunk into your brain. It’s inaccurate to say Little Earthquakes was not a popular or influential album; it’s the work that established Amos as a force in pop music, and was a touchstone for all manner of artists who admired and followed her. It may be more accurate to say Little Earthquakes was a slow burn of an album; not everyone found it, but those who found it, cherished it.

I certainly did. It went into heavy rotation on my CD player and “Tear In Your Hand” in particular got a workout; when Amos sang “There are pieces of me you’ve never seen,” that was a sentiment I wholly understood, and the drama of the song in general fit my mood at the time. I put it on repeat enough at the time that whenever I listen to it (or any other song from the album) now, I get a jolt of “You’re 22, you’re in a new place, this is your first job, whoa.” It only lasts a second, but it’s still a bit of a rush. As it turns out I (mostly) liked where and who I was in 1992, so it’s a pleasant remembrance.

I have other Tori Amos music for other times and places too, but none quite as strong a sense memory as “Tear.” Which is fine. One can have only so many madeleines, if you know what I mean.

As an aside, the first time I listened to “Tear In Your Hand,” I had a nice little moment of recognition when she sang “If you need me, me and Neil will be hanging out with the dream king.” This line was referring to Neil Gaiman and his comic book series The Sandman, which at the time was beloved of goths and comics nerds but otherwise had not broken into the mainstream of culture. Amos making a reference to it endeared her to me; it meant we were in the same kinda-secret club. Then she sang, “Neil said hi, by the way,” and I was all, like, whoa, she actually knows the guy, and my estimation of her went up a couple of levels, because how cool was that, she hangs out with Neil Gaiman.

As it turns out, when she wrote that line, she didn’t know him, she just admired his work. My understanding is he heard the song, reached out to Amos, and then they did hang out, and became friends. In fact, to commemorate the 30th anniversary of Little Earthquakes, there’s going to be a graphic novel in which various writers create stories about the songs on the album — and appropriately enough, Neil’s doing a story about “Tear In Your Hand.”

I’m kinda seriously geeked out that. I’ll have to tell Neil the next time I chat with him. Neil says hi, by the way.

— JS

Read the whole story
sirshannon
8 days ago
reply
Share this story
Delete

pic.twitter.com/Ga6CG2HFpf

1 Comment and 2 Shares
Read the whole story
sirshannon
13 days ago
reply
Sounds about right.
sfrazer
13 days ago
Is the PragerU social media person a mole?
Share this story
Delete

What “freedom” means to Republicans

2 Comments and 3 Shares

This is pretty accurate:

Short version of Twitter thread (how sad is that?):

To an American right winger, freedom means the freedom to do what you want and the freedom to tell other people what they have to do. Both freedoms are crucial, and are not seen as being in any kind of tension, for the reasons explained in the thread.

It’s basically an ideologized version of oppositional defiant disorder. Or, you know, fascism.

Read the whole story
sirshannon
14 days ago
reply
TL;DR

"Conservatism consists of exactly one proposition, to wit: There must be in- groups whom the law protects but does not bind, alongside out-groups whom the law binds but does not protect." Frank Wilhoit
sarcozona
17 days ago
reply
Epiphyte City
Share this story
Delete
1 public comment
rocketo
18 days ago
reply
fully understand this, not sure how to change it
seattle, wa
Next Page of Stories