I have cryptonote newbie questions:
A) How do you generate the payment ID? I am trying to automate point to point anon payment and it seems I need a payment ID to be generated by the receiver. Also, I am assuming that this payment ID is sensitive, eg. dont want to be broadcasting this for all to see as that could allow others to trace the payment. However, maybe cryptonote works such that it is OK to have the payment ID public? The answer to this determines my approach for auto anon payments
B) fake_outs_count 0 seems to offer no anonimity, but if I set it to a high value and there are no other addresses avaiable, then it seems the tx never goes out? So, if everybody is waiting for big fake_outs_count at first, it deadlocks. I just want to make sure I understand this. Are all addresses seen on the blockchain part of the fake_outs_count pool or is there some other factor that is needed for them to be used?
C) is the dust_policy something that can be changed per transaction, or is it hardcoded? I tried to set DEFAULT_FEE to 0 and DEFAULT_DUST_THRESHOLD to 1, but it still charges 1.0 for txfee and any fractional amount also gone. Not even sure where it goes to... My idea is to make a totally frictionless anon tx possible, so I want to have no txfee and no dusting, but not sure how to achieve this as dust_policy seems to override my settings.
James
1. Payment ID is generated by payments receiver and included into transaction as a prove that sender is really created this transaction. This is not the best solution, as i know this was made as workaround. I have ideas how to go without payment_id but sender need to communicate with receiver directly.
2. I don't know what you mean here, cryptonote blockchain don't have user addresses in it. fake_outs_counter select amounts to be mixedin into ringsignature (output keys is used for this).
3. Fee can't be 0(network rule). Also, pools will not gonna mine transactions with low fee, and according to last commits will not even relay it. DEFAULT_DUST_THRESHOLD also can't be changed since it used in blockreward formula. Don't know how you gonna avoid "dusting"... i've removed dust from block reward, but dust will appear from exchanges or bbrdice, or any other payment services.
1. My concern is that in order for Alice to Pay Bob using payment ID, if that ID (random or not) is public information and the ID ends up in the blockchain, couldnt an attacker start creating a correlation predictor based on payments to the public ID? Also it is possible to send payments without any payment ID at least it worked in my tests.
2. Sorry, I am still learning cryptonote so I just assumed the dest address is there, I guess it is the payment ID address that is there and unless that was communicated privately, info is leaked
3. After fiddling with things all weekend (half a dozen places that assumed non-zero fees!), I did manage to get it working. My use case wont have any mining, just very low difficulty (big sleep in miner loop) so that we get blocks every minute.
After problems in every step of the process I finally got it to accept a no-fee tx and then finally release it tx from the mempool and once that worked, all seemed pretty happy. I've already premined 99.2% and when I get to 99.999% the block reward will be small enough to discourage any cheating. The purpose of pNXT is to map 1:1 to NXT so that people can send NXT from its web GUI and have it use boolberry cryptonote pNXT for the transfer.
James
P.S. Good point about 32 bit mode, it seems we need to use a memory mapped blockchain file for it to have a chance.
P.P.S. zerofees should encourage a lot of tx, which provides best privacy, at least from a practical point. I guess I need to think about regular purges. With pNXT it is a matter of forcing everyone to redeem it and reset the blockchain, but that does sound rather messy...