Avatar
Ronin
8aef75ca27af00a6f70c14865ae52860ccdc368f46499c7cf6b2352b09a709f5
Bitcoiner. Web developer.

I don't think privacy on the base layer akin to monero or others was ever a goal or even if it's desirable, on other layers yes and it should be possible, bitcoin might face worse problems like tx and utxo ownership scaling.

Rebroadcast works in most cases, but in an extreme scenario where someone is blocked in all relays except his own, you have to fetch the notes directly from that relay.

Tech Lead dude is right, tech is dead at least for many devs in the traditional stuff, there is nothing else to do and AI will do almost everything, at the same time the current system is collapsing, we can just stop and just go on to the life boat that is Bitcoin and wait and see.

He never said Strike is permissionless or without trust, Bitcoin already solves that and there are dozens of LN and BTC wallets. Strike is a company that uses Bitcoin to solve many problems and it helps bitcoin adoption. Many ppl around me didn't accept bitcoin and now with Strike they accept and even hold bc it's easy to receive and sell for fiat whenever they want, so they feel that safety. It's a good first step for many normies and even business owners.

Replying to Avatar Super Testnet

I continue to work on my hedgehog protocol and I've figured out how to add some cool features to it. I wrote a "bridge server" which helps "translate" hedgehog payments into lightning payments, and it works right now, which means a hedgehog wallet can pay regular lightning invoices. I also added support for something I call "unilateral channels."

What that means is, someone can be fully offline, not even talking to you, not even aware of you, and if you have their pubkey you can send them $100 in bitcoin (for example) in such a way that they "receive" it in a new hedgehog channel. You just use their pubkey to create a multisig and fund it with the $100, then send them a string of text containing signatures for the "force closure" transactions that they need in case they have to unilaterally exit from the multisig. Then, whenever they next get online, they can paste that string into their wallet and instantly start using the money in their (already confirmed!) new hedgehog channel to make hedgehog payments and lightning payments.

You you could also use the unilateral channel feature to "make up" a bunch of keypairs, get some business cards, print out channel opening/closing information on the business cards (using the pubkeys from each of the keypairs you made up to create the multisigs), fund the multisigs yourself, and then "gift" them to people by just handing them the business card. Each recipient gets a new, prefunded hedgehog wallet with full support for sending and receiving lightning payments, with two simple steps: (1) visit a webpage (or download an app) that runs hedgehog wallet software and (2) scan the qr code to import the channel data.

All of these features have some interesting side effects. For example, since you can receive money into a new hedgehog channel without being online, you can keep your private keys fully offline in an airgapped hardware wallet, and whenever you want to send money over hedgehog or lightning, you can just prepare the transaction in your software wallet, encode it as a series of several psbts, pass those to your hardware wallet for signing, and let your software wallet send the newly signed transactions to the bridge server.

You could also *receive* money over lightning into a separate hot wallet, and regularly withdraw it to a cold hedgehog wallet by using your hardware wallet to individually sign the various transactions that are involved in receiving lightning payments and revoking old state (but this requires implementing support for receiving lightning payments on hedgehog, which I haven't done yet -- see below).

I am currently working on a feature that I call "virtual channels" which allow you to make a unilateral channel without going on chain. This lets you cheaply give people hedgehog channels that "fully" work, with the tradeoff that you (the sender) have a copy of this virtual channel's private keys, so you have custody of the recipient's funds. But the channel works just like a regular hedgehog channel, with the same interface, its own balance, full support for sending and receiving hedgehog payments, and sending lightning payments. So it's sort of like you're hosting an lnbits wallet for someone, only with hedgehog's ability to effectively emulate asynchronous payments. Which means you don't need a server to host this software, a regular phone or even a web browser should work fine, because you don't need to be online all the time, only the bridge server does.

Once virtual channels are ready I want to add support for "receiving" lightning payments into a hedgehog channel. I wrote up a specification for it here (https://github.com/supertestnet/hedgehog-advanced) but I haven't implemented it yet. Once that is done I think hedgehog will be ready to implement in a "real" wallet. It will have so many cool features:

- keep your keys airgapped and still (a) send hedgehog payments (b) receive hedgehog payments (c) send lightning payments (d) regularly withdraw lightning payments from a "hot" wallet into .your airgapped hedgehog wallet without needing to do any base layer transactions

- if exchanges like kraken or swan add support for hedgehog, any user who has monthly or weekly autobuy enabled could receive these regular purchases of bitcoin directly into a hedgehog wallet -- hot or cold -- and be able to spend the money on lightning or hedgehog as soon as it confirms, without needing to come online til they want to actually spend the money

- if you are sending someone money and your recipient is *on*line, you can use a hedgehog wallet as a regular lightning wallet

- if your recipient is *not* online, you can pay them by making a unilateral channel for them on the base layer, and to do that you just need to be willing to pay a base layer tx fee and know one of their pubkeys (technically that part is optional, as you can just make up a keypair for them -- though I personally wouldn't trust a keypair that some rando made up for me and I would sweep all funds from such a channel whenever I next got online)

- if your recipient is not online and you don't want to incur a base layer fee, you can make a "virtual" (i.e. custodial) unilateral channel for them and deposit whatever amount you want to pay them into that. You can then send them its details and go offline, and they can sweep it whenever they next get online, without any further help from you (i.e. you don't need to be online when they sweep the funds! They just need the bridge server to be online)

- this emulates asynchronous lightning payments pretty effectively, without the need for the sender to run a server or rely on a third party custodian. But there is a "first party" custodian -- the sender retains custody of the funds in a virtual channel until the recipient sweeps them. And there is a third party bridge server, who can censor payments, though if that happens, the sender can just retry with a different bridge server and stop using the old one

- it also emulates "pull" payments, which are useful for subscriptions. If you want to subscribe to twelve months of bitflix, you can send bitflix twelve virtual channels where each one has a timelock on the virtual channel opening transaction. This effectively means that the first virtual channel cannot be used til 1 month goes by, the second one cannot be used til 2 months go by, etc. As each timelock expires once per month, a single virtual channel becomes usable each month. This allows bitflix to sweep funds from one channel per month, thus "pulling" pre-authorized funds from your wallet according to a predetermined schedule

- if you ever want to cancel such a subscription, just make a new transaction with the bridge server overwriting all the remaining virtual channels you gave to bitflix. The bridge server will then stop treating the virtual channels as valid, because they can no longer redeem the money in them even if it comes to their side of the virtual channel, so bitflix can't use them anymore either, and thus your subscription is effectively canceled

- all of this can work just fine today without waiting for bitcoin *or* lightning to upgrade -- which I think is just amazing!

Didn't understand any of it. But I want it.

Replying to Avatar Derek Ross

Wow. They doxxed nostr:npub180cvv07tjdrrgpa0j7j7tmnyl2yr6yr7l8j4s3evf6u64th6gkwsyjh6w6. Hey Business Insider and Katherine Long. You can go fuck yourself.

We are all fiatjaf.

Replying to Avatar HoloKat

I’ve tried all sorts of productivity tricks over the years. Some worked to some extent (like waking up early for example), but majority didn’t. 

One “trick” that I found to work almost every time when applicable is to “just do it”. 

I know it sounds stupid simple, but surprisingly a lot of people put off “just do it” and make up all sorts of weird procedures, steps to get things done. And that’s not to say that those things don’t work, but I found this other thing to work better, faster. 

What do I mean by “just do it?” Instead of making to-do lists, or using timers to tackle hard projects, reverse the process and just go for the biggest, meanest, most intimidating part of the project. Throw away to-do lists and timers and just jump right into the toughest parts with brute force, determination, and if helps, lots of caffeine and high energy music. This is what has worked for me. I think the biggest key to all of this is to not think about any of it. Not a single thought, no plans, just jump into it RIGHT NOW and tackle everything you need to do to get it done in no particular order.

Instead of aiming for months, aim for hours. I know… sounds crazy but that’s what I found to give me the biggest productivity boosts. Use existing solutions if applicable to speed up the process. Don’t build it all from scratch (though sometimes this is necessary). Use stuff that saves you time, processes that are scalable. I don’t know what that looks like development-wise, but I can name all the power features for designing stuff.

It’s not always applicable because there are days when you don’t have big chunks of things to work on and to-do lists are on the agenda. That’s totally fine, knock out the to-do’s one by one.

Curious if anyone else takes this approach?

I try to do that, and yes it's probably the best trick for productivity, sometimes i overthink things in my mind before starting or I get stuck thinking about the best approach to a problem while coding, and sometimes the best it's just do one approach that works, if you don't like it later then just change it, just move forward and keep moving.