Greetings, I hope there is a Linden reading it... At least forwarding it to whoever it concerns may be a quite useful.
Be it Landbots doing a swipe and switch scam, be it prize payouts failing, be it a purchase not going through, all of it reduces to a certain class of problem.
The problem is that transactions are not secured in any manner. Be it item transfer, be it money or land transfer, there are too many thing that can go wrong and there is no fallback.
1) Money transfers:
I refuse to believe that there is no means to check wether any payout with llGiveMoney() can be confirmed script-wise. Sure, if the command is executed the actual transfer runs in a separate thread it cannot give a return value denoting the transaction state. But what about using the dataserver() functionality for it to get the transaction result?
On the same base, if a script can fetch data about the first login date of the avatar AND the billing information (wether it's present or used or not) - which is even more removed than the actual L$ balance - isn't it possible to query the data server about the actual L$ balance of a given avatar? (For security and privacy reasons one may limit that to the actual owner of the object running said script)
2) Item transfers:
Vendors usually try to hand out a given item using llGiveInventory() once the money is received. But since it involves a communication between the sim and the asset server cluster it's prone to failure since said service has become unreliable - you know it all, failed teleports, search and profiles not showing, that sort of thing.
Thing is, it may be possible that item transfers are just like money transfers running asynchronously. But isn't it possible in that case to have a callback done once the transfer is finished - and maybe better if it's timed out just to note down the customer for a refund (since money transfers would fail in that case as well)
3) Land sales/purchase:
As I've seen in another thread it seems to be possible that even if someone has a land buy window open the actual seller - or even someone else, after purchasing and reselling - may change the terms of the purchase, in the actual case the price.
Here's a possible solution:
When setting up or changing a land sale the parcel gets marked with a 'cookie' - an MD5 hash, for example which is retrieved by the client of the prospective buyer and send back if the actual sale should take place. If the cookie sent to the sim and the parcel cookie don't match (anymore) someone must have changed the terms of the sale, be it either the original buyer or a 'bot doing a man-in-the-middle attack.
These are serious issues, issues which cause much grief throughout SL's populace since it now concerns REAL money people spent and lost over it. Even if LL states L$ is not to be seen as actual currency, residents at least begin to see it differently, so taking steps that money (or values) don't get lost are definitely steps to be taken to counter the growing disappointment people feel.
In my view these issues are MUCH more important than voice or sculpted prims. I hope they would move up on the priority list on the coming update(s).