I have over 35 years experience; but even if I only had a few months experience, you don't need to read the code on the LN, you only need read the proof above, and then realize that all the big centralized crypto exchanges are being locked down and tracked where you now have to get a proctology exam to exchange their fiat currency for crypto , and then also realize that the push for segwit is run by the most nefarious psychopathic group on the planet, that have the most to lose, and in fact it is very likely they may actually run the governments. They will try and get the masses on to the LN, because that isn't Bitcoin. Once you are making purchases in the LN, they will keep you off the Bitcoin blockchain, you will not have more addresses on Bitcoin like Satoshi recommended because it is $20 every time you move Bitcoin between those addresses, so NO ONE is going to want to do that EVER. If anything people will do a one time buy, and pay the $20 or $40 because probably 2 transfers, at their exchange that tracked their buy and then stay on the LN from there, with everything being tracked from that point.... address resuse will be the norm because of the high fees. You can't just move coins from one of your wallet addresses to another without paying the fees, and the fees are only going to go up.
Some other little known facts about Segwit, are that it is really a hard fork. Segwit nodes do not connect to non-segwit nodes, instead of connecting to the first available nodes they will go through all the nodes tens of times, and if no segwit nodes are available, it will finally relunctantly connect to only one non-segwit node, to make the user experience extremely slow. If you check out line 1829 in pink on this link you can see the current code that does that. The green code that replaces it (which is not actually implemented in v0.15.1 yet) will actually not connect to non-segwit nodes at all, except to ask them for segwit node addresses, but won't download any data from non-segwit nodes: https://github.com/bitcoin/bitcoin/commit/44407100ff9b478d6131a1c38ee993b50b1830df (here one of the REQUIRED_SERVICES is WITNESS which is segwit, and non-segwit nodes don't have this; on line 1831 you can see how after 40 retries, it will finally give up and then fake it that one non-segwit node will have WITNESS, nRequiredServices = REQUIRED_SERVICES;
)
Segwit also punishes non-segwit node transaction bytes by multiplying their "weight" by 4 times. And the final nail in the coffin is that Segwit transactions are invisible to non-segwit nodes; it really is an entirely different coin on the same block chain; non-segwit nodes view a segwit transaction as having 0 inputs, so it just ignores them completely because they are not valid according to non-segwit nodes. So the more segwit transactions that take place, the more "segwit" coins are created on the same Bitcoin core block chain; Segwit nodes can see both types of transactions but non-segwit nodes can only see non-segwit transactions. All of this is to hijack Bitcoin and make it unusable as currency, uneasy to use... WHY? Because the powers that be, don't want you using it!
And the Segwit block sizes have been increased to 4MB, so to claim that they didn't want to increase the block size is another lie, the Segwit block being 4MB max; it is actually still a 1MB block with a 3MB extension block, that only segwit nodes can utilize and see.
Right now, I think that only 11% of Bitcoin core nodes have actually implemented Segwit nodes, hence the reason most blocks are still a max of 1MB in size; this keeps the blocks full and the fees to the point where it isn't usable as currency anymore. $5 or $6 is low ball, the fee is now around $20 average. This is $20 to send from an exchange to your address, then if you need to send it somewhere else, another $20. Sure you can send less of a fee, but that means it may never go through, and with over 150,0000 backlogged transactions, if you want it to go through quickly, forget about it.
But to answer your question "could you point out the lines that request KYC?" First off Know Your Customer should just be KYS, know your slave, because it isn't to track "criminal" activity. A criminal is someone who uses force to steal value or to control someone. People trading with each other in any currency are not doing this... the criminals are the ones demanding a percentage of each trade, the criminals are the government gangs. They didn't implement KYS to help anyone, they did it so they can continue to rob everyone blind. And no, there is nothing in the code that tracks bitcoin addresses for the masters, there is no need, as the coins have addresses, they just need to know who owns them. The FBI has actually hired BitFury to help track down people trying to trade freely "97 sources were used including Twitter, etc" https://www.trustnodes.com/2018/01/09/bitfury-de-anonymises-millions-bitcoin-transactions-addresses
Looking as line 1831, what variables does the Witness var encapsulate? From what I understand of SegWit, that is the segregation of certain header info into a separate database off chain.
The witness data is still kept in the blocks right on the chain, only like I explained it is kept in an extended part of the transaction that non-segwit can't see because the number of transaction inputs is zero according to non-segwit nodes. If you look at the current segwit protocol, you can see they added a "flag" field to the transaction. It says "If present, always 0001, and indicates the presence of witness data". To non-segwit nodes this byte is the tx_in count var_int... when it sees the first byte 00, it thinks there are no transaction inputs and rejects the transaction. What blows my mind is the complete lack of response from Ivan on these issues that I have presented.. the silence is deafening! Unless you are Ivan using a different account?
I'm not Ivan. I started studying this field only last spring and am almost retirement age. For the past 22-23 years I was writing astrology software using my background in astronomy. I first learned to program in Basic in 1977 in high school around the 10th grade but didn't start writing until I was in my mid-late 30's. I first got into bitcoin about 1 year ago and then started following Andreas Antonopoulos.
I was not formally trained as a programmer in college like many people.
You do need to look at the code because it will tell you how KYC info is being passed. LN is online now and transaction fees are now almost zero, not the $20 that you suggest.
The exchanges are of course centralized but you don't have to use exchanges at all. You can just use a hardware wallet and accept payment for services. You can also run your own lightning node now and be one of the pioneers in decentralized trading. Coinbase and others like it have always been banks and Andreas Antonopoulos explains you should steer clear of holding coins on an exchange.
If you have your own hardware wallet, you've become your own bank.
Do you need Bitcoin to get on the LN? When you transfer Bitcoin to your address, how much does it cost? $20. Yes, once on the LN you can trade without fees, but ultimately for anyone to cash out they have to go back to Bitcoin, and get zapped with another $20 charge as a fee to send to your address, as sending just means putting your transaction in the blockchain, and that is not free.
You must be using an exchange or non segwit address. This is what I'm seeing with my hardware wallet using various confirmation speed settings...
I'm seeing fees between $3.84 and $0.12 depending upon how fast I want confirmation. BTW, it's exchanges like Coinbase that wanted SegWit2X which failed. They were accused of spamming the network with transactions to keep tx fees high.
It's Sunday afternoon so maybe the fees are lower than midweek...
The other question I have is how does SegWit help authority track transactions?
By keeping blocks small, making transactions cost more, making people do less transactions on the actual blockchain; the less transactions that occur on the blockchain, the less difficult it is to keep track of who is doing the transaction... sheer quantity goes down. If you only have one receiving Bitcoin address, and you get that at Coinbase, that address is tracked. Anything you do on the LN from that point on can also be tracked, as LN keeps track of your original payment address.
You don't have to use centralized exchanges though. Coinbase and many other exchanges violate the decentralization principles of Satoshi Nakamoto.
If all transactions go through 1 address on a LN node, then how do you differentiate identities using the same address? If the address that it eventually ends up on is on another hardware wallet, how are they passing along KYC info? I just don't see that anywhere in the code.
LN says that nodes can only see jumps from the previous node to the next node and don't know if it is the origin or destination unless they send or open and realize they are the recipient.
Lastly, as an engineer, there still is the legitimate problem of block size increases introducing latency. How can this be solved without centralizing mining?
That's cute how people call themselves an "engineer" or a "doctor" or a "programmer". It really doesn't mean anything, just ask the question... would the question be any different if you were a plumber?
As I posted above, Peter Rizon and Andrew Stone of Bitcoin Unlimited completed 1GB scaling block tests back in November. This could be one short term solution, and it doesn't result in centralized mining, that is a myth:
I would hope that your explanation would be in layman's terms if I was a plumber. It's just my way of saying "go ahead and be technical".
How much compression can you get on a 1 GB block? Then compress, send and decompress on the other nodes would take some time. The question is how much time? In the time that one miner has solved the nonce and the block propagates, that miner has a head start. If that head start time is only a few seconds of a 10 minutes block session, then that's relatively low latency and mining centralization shouldn't happen, but if it takes up a significant percentage of that 10 minute session, centralization occurs.
At this point 1 GB blocks locks me out of maintaining my own full node unless compression is significant.
However, 1 GB blocks (as Andreas has talked about) would allow about 5 tx's a month per person assuming about 3 billion people on the planet are using bitcoin. Maybe streaming money is not something that Bitcoin Cash people are interested in, but to do streaming money, you're looking at petabyte blocks. Maybe that can be solved later down the road.