Sadly, Bitcoin gives cryptographic money tricksters an intriguing open door as it’s borderless computerized cash. A particular advantage of lisp-like approaches is that they treat code and data exactly the same — so if we’re trying to leave the option open for a transaction to supply some unexpected code on the witness stack, then lisp handles that really naturally: you were going to include data on the stack anyway, and code and data are the same, so you don’t have to do anything special at all. To level-up from that, instead of putting byte strings on a stack, you could have some other data structure than a stack — eg one that allows nesting. For example, rather than the streaming-sha256 approach in Elements, where you could write: “a” SHA256INITIALIZE “b” SHA256UPDATE “c” SHA256UPDATE “d” SHA256FINALIZE to get the sha256 of “abcd” without having to CAT them first (important if they’d potentially overflow the 520B stack item limit), in chia lisp you write: (sha256 “a” “b” “c” “d”) which still has the benefit of streaming the inputs into the function, but only adds a single opcode, doesn’t involve representing the internal sha256 midstate on the stack, and generally seems easier to understand, 바이낸스 추천코드; mouse click the next site, at least to me.
So the idea still has merit for LN, as a replacement for 2-fo-3 escrows. I don’t think they’ve solved the broader problem, and thus I think it still makes more sense to stick with bitcoin’s current model here. The other is to use the “softfork” opcode — chia defines it as: (softfork cost code) though I think it would probably be better if it were (softfork cost version code) where the idea is that “code” will use the “x” opcode if there’s a problem, and anyone supporting the “version” softfork can verify that there aren’t any problems at a cost of “cost”. However, whether you do or don’t support that softfork, as far as the rest of the script is concerned, the expression will either fail entirely or evaluate as zero; so anyone who doesn’t support the softfork can just replace it with zero and continue on, treating it as if it had costed “cost” units. 100kB of serialized clvm code from a random block gzips to 60kB; optimising the serialization for small lists, and perhaps also for small literal numbers might be a feasible improvement; though it’s not clear to me how frequently serialization size would be the limiting factor for cost versus execution time or memory usage.
These are almost identical in use to those with Bitcoin’s current ECDSA algorithm, although signatures are serialized to use about eight fewer bytes and can be efficiently verified in batches. One of the things people sometimes claim about bitcoin as an asset, is that it’s got both the advantage of having been first to market, but also that if some altcoin comes along with great new ideas, then those ideas can just be incorporated into bitcoin too, so bitcoin can preserve it’s lead even from innovators. And as if things weren’t bad enough. If you are offering liquidity as a service this is bad. In the case where a user does not pay the fee, the company can take this as a signal that they are no longer interested in the service. The idea was to implement a monthly service fee that requires the user to pay a fixed amount if the channel isn’t being used.
Rusty Russell has opened a PR to the BOLT repository and started a mailing list thread for feedback on a proposal to modify the construction and signing of some of the LN transactions in order to allow both BIP125 Replace-by-Fee (RBF) fee bumping and Child-Pays-For-Parent (CPFP) fee bumping. The last two are extensions that are more food for thought than a real proposal. Once NFTs become more widely available, they may become a more frequent way to acquire and sell one-of-a-kind assets. Both those essentially give you a lisp-like language — lisp is obviously all about lists, and a binary tree is just made of things or pairs of things, and pairs of things are just another way of saying “car” and “cdr”. Of course, “defun” and “if” aren’t listed as opcodes above; instead you have a compiler that gives you nice macros like defun and translates them into correct uses of the “a” opcode, etc. As I understand it, those sort of macros and translations are pretty well understood across lisp-like languages, and, of course, they’re already implemented for chia lisp. FOLD and in exactly the same context, I was wondering what the simplest possible language that had some sort of map construction was — I mean simplest in a “practical engineering” sense; I think Simplicity already has the Euclidean/Peano “least axioms” sense covered.