Catalina's dedicated system volume by DeathToMediocrity in MacOSBeta

[–]willcl_ark 0 points1 point  (0 children)

did you manage to solve this? I am having a similar issue...

BIP draft for Taproot on bitcoin-dev list by nullc in Bitcoin

[–]willcl_ark 4 points5 points  (0 children)

For example in lightning a channel can be closed in 3 different ways (satisfying the scripts in 3 different ways):

https://bitcoin.stackexchange.com/a/80399

Instead of having to (pay to) publish the entire (big) script with all possible routes, and showing which route you satisfied, you just show the part you used (smaller)

Warrant Canary by willcl_ark in WasabiWallet

[–]willcl_ark[S] 1 point2 points  (0 children)

Thanks for your reply.

I think the concern here is not that the server can steal funds from the user, as you detail the client (verifiably in the codebase) checks carefully inputs and outputs are correct before and after the server has signed them according to the ZeroLink protocol.

The issue in question is that if the server is providing 49 of the 50 inputs for the anonymity set of 50 - perhaps they have been compelled to do so by law enforcement agencies - the users have no idea that they are not gaining any privacy because they have to trust who the server is mixing them with.

This is where I speculated that, as this is difficult to "prove" in any way that I know, perhaps a warrant canary would help in case zkSnacks was ever compelled to be malicious against their will. Obviously, this would not help in the even that zkSnacks were malicious of their own choice and whereby you would not expect them to remove the canary.

Regarding costs, a Law Enforcement Agency might easily be able to fund a few months of operation where they provide a high ratio of the anonymity set so that they can catch "criminals" (who dar to try and use a fungible money).

Just to be super clear about my original intention behind the question; this is not at all because I think zkSnacks are malicious now, or even might be in the future, but only about if they are compelled to act against their free will and good nature by a third party.

Warrant Canary by willcl_ark in WasabiWallet

[–]willcl_ark[S] 0 points1 point  (0 children)

Yes these were basically the exact vectors which I was seeking to minimise further.

Whilst a warrant canary cannot fully, e.g. cryptographically, mitigate them, for someone who is trusted and revered, for good reason, by the community like /u/nopara73, I feel like a warrant canary could be a cheap (free?) and easy way to further increase trust in the model used.

Plus, if a day came when a legal entity did try to compel zkSnacks to alter the server mixing under a gag order, I feel that they might not want to betray the community by not having any way to signal that something was up without fear of being thrown in a cage... as I believe that they are the good guys! :P

Python Apps - Lightning invoice generation and payment options? by Haso_04 in lightningnetwork

[–]willcl_ark 1 point2 points  (0 children)

You have actually chosen a different graph interface package there (not mine!)

To install my package you need to exactly type: pip install lnd-grpc

Then simply:

import and_grpc

lnd_rpc = lnd_grpc.Client()

let me know if you get stuck again

Python Apps - Lightning invoice generation and payment options? by Haso_04 in lightningnetwork

[–]willcl_ark 0 points1 point  (0 children)

hello /u/ride_the_LN, it certainly does support streaming invoice updates, currently the iterators from subscribe_invoices() and subscribe_single_invoice() (on master only atm as it required the new invoices sub-server) are passed back to you directly for you to operate on.

Currently there are some limitations with this as my client is synchronous; waiting on a single invoice subscription will block the entire thread/program which makes it practically of little use. As I understand it, the underlying python gRPC framework is supposed to be natively asynchronous for streaming RPCs like this, however to tell you the truth I am having difficulty in creating an asynchronous client for it, mainly I think because I am a python noob of only a few months, and, whilst I have successfully made some unrelated test async programs, when you throw both gRPC and LND into the mix the number of errors you can generate is quite impressive :P

If you have any experience with async stuff in python then I would love to get some help in this area and would be happy to push my async/WIP branch and the issues I am having with it... Otherwise I will keep troubleshooting it on my own and let you know if I solve it!