rook

joined 2 years ago
[–] rook@awful.systems 5 points 1 month ago* (last edited 1 month ago) (2 children)

It’s not really a meaningful question whether the sum Alice received was the fraction of a “coin” I received from you

Ish. If you received a million CSAM’n’heroin bucks, and you give 10 bucks to Alice, there’s a transaction history that now links Alice’s wallet to CSAM’n’heroin which can indeed be a problem for Alice, because cautious exchanges might now freeze her assets until she can offer some proof that she’s not doing anything bad.

There’s a bitcoin wallet attack that uses this trick that was mentioned recently, maybe here, maybe on web3igjg. You can argue the bitcoins aren’t the same, but in practise no-one cares.


eta: this is apparently called a “dust attack” and I first heard about it here: https://awful.systems/post/3463061

Merely interacting with a sanctioned wallet is enough to get or treated with suspicion, let alone receiving funds. Pecunia certainly olets these days.

[–] rook@awful.systems 7 points 5 months ago

I thought the era of scaling was over. We’re in the era of ??? now. Presumably profit comes later.

[–] rook@awful.systems 11 points 5 months ago (2 children)

no Gen 1 crypto

Just one more gen, bro. I swear it will fulfil all the promises this time.

[–] rook@awful.systems 11 points 7 months ago (3 children)

I am horrified and somewhat embarrassed that I understood what all that stuff was.

[–] rook@awful.systems 1 points 8 months ago

So I realise that this is very euro-centric and the majority of people on earth don’t get this sort of convenience, but… fast and easy interbank transfers and contactless debit and credit card payments just do all the stuff that most people want out of electronic cash, and transaction logs are a small price to pay for a substantial reduction in risk.

[–] rook@awful.systems 1 points 9 months ago (2 children)

The problem isn’t just the nature of blockchains, the problem is the uses to which such systems will be put. The explosion in ransomware fuelled by bitcoin et al isn’t something that can be replicated with physical cash at the same scale, for example (consider why you want electronic cash in the first place). Similarly, the need to “be your own bank” will always expose you to a greater risk of fraud and theft and loss, because being a bank is harder than people seem to think.

The technology involved is (almost) irrelevant.

[–] rook@awful.systems 0 points 9 months ago* (last edited 9 months ago) (4 children)

Happily there are plenty of good examples of how such a system would work in practise… Web3 is Going Just Great, Attack of the 50 Foot Blockchain or Amy Castor perhaps.

[–] rook@awful.systems 7 points 1 year ago (1 children)

I spend an inordinate amount of time at my C# day job adding documentation comments about exclusive access and lifetimes and ownership… things which are clearly important but which dotnet provides little or no useful support for, even though it has a perfectly good garbage collector. The dotnet devs were well aware that garbage collection has its limits, especially when interacting with resources managed outside of the runtime, and so they added language features like IDisposable and finalisers and GCHandle and SafeHandle and so on to fix some of the things GC won’t be doing for you.

I’d happily use a garbage collected language with borrow checking.

[–] rook@awful.systems 1 points 2 years ago* (last edited 2 years ago) (1 children)

If you don’t have a perf requirement like “all these things need to be in contiguous memory” then you probably don’t need a generational index anyway… it is effectively a weak reference, after all. ECS stores are optimised for repeatedly iterating over all the things, and games might have complex notions of “reachability”, but most things aren’t like that. There does seem to be a lot of “I don’t like using Rc RefCell” in object arena design that isn’t always justifiable, though nested generics don’t make for the most readable code in the world.

[–] rook@awful.systems 4 points 2 years ago (3 children)

You can always use something like generational indices. They pop up a lot in ECS systems. A suitable container with an opaque index type prevents creation of invalid references, lets you check reference validity at runtime, and generational indices prevent reuse. The compiler can’t help with lifetime tracking, but that’s a problem with any shared reference type pointing to a resource with a lifetime that can only be known at runtime, eg. Arc.