Pages:
Author

Topic: Scaling Bitcoin. Is consensus achievable? (Read 4041 times)

hero member
Activity: 572
Merit: 506
November 30, 2016, 01:53:19 AM
#93
hense they both sign to both commit to the same terms. so that that if one of them goes offline they know the other has signed their part on the side they kept...
This is your failure. I repeat it again and and again.
Let's see how it happens step by step.
1) Alice creates a tx, let's call it txa, which spends 2 of 2 output o1, she signs it.
2) She sends this tx to Bob
3) Bob signs it.
Now Bob has txa with both signatures. He can broadcast it, but Alice can't.
When I say that Alice doesn't have it, I mean that Alice doesn't have it with both singnatures.

hense they both sign to both commit to the same terms. so that that if one of them goes offline they know the other has signed their part on the side they kept...
Both latest commitment transactions distribute funds similar way. If Alice broadcasts her version, Bob immediately gets his share, Alice gets her share too, but after a significant timeout.
If Bob broadcasts his version, Alice immediately gets her share, but Bob needs to wait to get his share.
Terms don't change across these 2 transactions, it's just additional term: party which initiates emergency channel closing needs to wait to get it's share. Having 2 txes instead of 1 allows to introduce this (and one another) additional term.

so i combined A(X) lets call her alice xavier..
So, I guess B(X) is a typo. However, I suggest calling the parties either Alice, Bob, or A, B, or X, Y. A(X) looks like a function or operator.

when its first broadcast its treated as relevant. so a future spender (once maturity expires) would care about this:
Out script1: if relevant(1abcdefghij123456789 A(X) val: 9btc); if irrelevant(1klmnopqrs987654321 B(Y) val: 10btc)
Out script2: if relevant(1klmnopqrs987654321 B(Y) val: 1btc); if irrelevant(1abcdefghij123456789 A(X) val: 0btc)
it ignores the irrelevant part meaning A(X) alice Xavier gets 9btc.  B(y)bob yonker would get 1btc.

however if B(Y) Bob yonker invoked a CSV revoke
when its first broadcast its treated as relevant. but revoke is invoked and so a future spender would care about this:
Out script1: if relevant(1abcdefghij123456789 A(X) val: 9btc); if irrelevant(1klmnopqrs987654321 B(Y) val: 10btc)
Out script2: if relevant(1klmnopqrs987654321 B(Y) val: 1btc); if irrelevant(1abcdefghij123456789 A(X) val: 0btc)
it ignores the relevant part meaning B(y)bob yonker would get 10btc. A(X) alice Xavier gets 0btc.
This tx doesn't even closely resemble a commitment tx from design being discussed, so it's irrelevant.


OR EVEN BETTER
stay uptodate and then know the latest concepts and know what the main guys are trying to build. rather than the flawed out of date stuff
OK. Let's look at the picture from this perspective, if you insist. You mentioned that core devs overselling LN, claiming that channels need to be very rarely closed. You disagree with this claim. Now you are presented with design which has this property. Still you claim it's outdated, still you claim that some 'main' guys are trying to build something inferior. Who are those 'main' guys?
however if you read the stuff core and LN devs are saying. they are overselling LN as a system where channels never need to close.
legendary
Activity: 4424
Merit: 4794
November 29, 2016, 07:32:22 PM
#92
1. do you agree that LN uses multisig. where 2 parties co-sign agreed tx data. if yes read on, if not, research and come back later.
hint 2: both signing = both seeing a copy to be able to sign
Somewhy you fail to understand, that both parties sign the same commitment transactions before they can be broadcast.

i understand it.. i was the one telling YOU that
here is me telling you its one TX they both sign and you arguing the opposite

they both hold the same relevant tx at the same time.
No, they hold different txes, which however distribute funds in similar ways.

Both parties have seen both commitment transactions. But each party has only one of two commitment transactions with both signatures.

you do know that multisigs needs 2 signatures.
you do know that to agree to what you call a "commitment" both parties need to see and agree to it.

Y can't broadcast that transaction because he doesn't have it. He instead has another transaction corresponding to the same state,

funny that in lastest post your arguing with yourself

Another hint: commitment transaction that Alice holds was created and signed by Bob. Now Alice holds this transaction, she sees it, she can sign it. Same with Bob's transaction. It was created by Alice. But Alice can't herself broadcast transaction which she created, because this transaction lacks Bob's signature. It's how multisignature works. You need both signatures for a transaction to be valid.[/b] Please bother to carefully read either the articles or my narration (or both). May be I'm bad at explaining, because English isn't my native language?

another failure on your part. unless its signed by both sides its not committed.
it needs to be seen by both sides to be signed by both sides to be fully commited. otherwise the state wont update.
no one in LN will update the state unless its fully committed. you cannot broadcast a tx without both signatures so you wont accept anything thats only one sided.

hense they both sign to both commit to the same terms. so that that if one of them goes offline they know the other has signed their part on the side they kept...

like any contract.
imagine a bank loan agreement if a bank signed a loan and passed it to you... you kept it but didnt sign the copy you kept
imagine a bank loan agreement if you signed a loan and passed it to the bank... they kept it but didnt sign the copy they kept

this leaves things open to abuse.
hense why both need to see BOTH signatures


About your scenario. I'm not sure I fully understand it, what do you mean by B(X) for instance? What do you mean by "maturity 1000 blocks"? It's not tx which matures in 1000 blocks, it's one of it's outputs that does so (in fact not even so, it's one of ways the output can be spent which matures in 1000 blocks).

firstly
THE scenario was me writing it in YOUR concept to show wher YOUR concept fails.

secondly
A(X)is using YOUR identifiers because you first started with X and Y.. then changed to A and B.. so i combined A(X) lets call her alice xavier.. and then a separate person B(Y) lets call him Bob Yonker.

thirdly
right at the bottom i said "the output spendable to him instantly before maturity expires"
im not sure where you got tx from.

summary:
they are just 2 entities. but i tried to use your identifiers.. but YOU kept switching between  X Y then later A B ..
aswell as your flip flops between dual signed single tx and duel signs separate tx..

JUST PICK ONE CONCEPT THAT MAKES SENSE TO YOU AND STICK TO IT.
OR EVEN BETTER
stay uptodate and then know the latest concepts and know what the main guys are trying to build. rather than the flawed out of date stuff



By "out scripts" you mean scripts of 2 outputs which commitment transactions create, Out script1 is for output1, Out script2 is for output2, right?
Then how it's possible
Out script2: if relevant(1klmnopqrs987654321 B(Y) val: 1btc); if irrelevant(1abcdefghij123456789 A(X) val: 10btc)
that the same output may result in significantly different amount of BTC spent, depending on a condition?
Not to mention, that commitment transactions in simple bidirectional channels create only 1 conditional output.

you can have a condition attached to any and all outputs
when its first broadcast its treated as relevant. so a future spender (once maturity expires) would care about this:
Out script1: if relevant(1abcdefghij123456789 A(X) val: 9btc); if irrelevant(1klmnopqrs987654321 B(Y) val: 10btc)
Out script2: if relevant(1klmnopqrs987654321 B(Y) val: 1btc); if irrelevant(1abcdefghij123456789 A(X) val: 0btc)
it ignores the irrelevant part meaning A(X) alice Xavier gets 9btc.  B(y)bob yonker would get 1btc.

however if B(Y) Bob yonker invoked a CSV revoke
when its first broadcast its treated as relevant. but revoke is invoked and so a future spender would care about this:
Out script1: if relevant(1abcdefghij123456789 A(X) val: 9btc); if irrelevant(1klmnopqrs987654321 B(Y) val: 10btc)
Out script2: if relevant(1klmnopqrs987654321 B(Y) val: 1btc); if irrelevant(1abcdefghij123456789 A(X) val: 0btc)
it ignores the relevant part meaning B(y)bob yonker would get 10btc. A(X) alice Xavier gets 0btc.
legendary
Activity: 1596
Merit: 1026
November 29, 2016, 06:07:45 PM
#91
We will never achieve full consensus.

'Consensus' turned out to be the death of Bitcoin.
hero member
Activity: 572
Merit: 506
November 28, 2016, 04:38:40 AM
#90
Let me explain that multisignature stuff yet another way.

Both parties have seen both commitment transactions. But each party has only one of two commitment transactions with both signatures. So each party can drop on the chain only one of two txses. Alice can drop tx which Bob created. Bob can drop tx which Alice created. Since these txses spend the same anchoring output, only one of them can be confirmed.
hero member
Activity: 572
Merit: 506
November 28, 2016, 02:24:15 AM
#89
1. do you agree that LN uses multisig. where 2 parties co-sign agreed tx data. if yes read on, if not, research and come back later.
hint 2: both signing = both seeing a copy to be able to sign
Somewhy you fail to understand, that both parties sign the same commitment transactions before they can be broadcast. I've put that in bold, repeated several times, doesn't help.
Another hint: commitment transaction that Alice holds was created and signed by Bob. Now Alice holds this transaction, she sees it, she can sign it. Same with Bob's transaction. It was created by Alice. But Alice can't herself broadcast transaction which she created, because this transaction lacks Bob's signature. It's how multisignature works. You need both signatures for a transaction to be valid. Please bother to carefully read either the articles or my narration (or both). May be I'm bad at explaining, because English isn't my native language?

About your scenario. I'm not sure I fully understand it, what do you mean by B(X) for instance? What do you mean by "maturity 1000 blocks"? It's not tx which matures in 1000 blocks, it's one of it's outputs that does so (in fact not even so, it's one of ways the output can be spent which matures in 1000 blocks).

By "out scripts" you mean scripts of 2 outputs which commitment transactions create, Out script1 is for output1, Out script2 is for output2, right?
Then how it's possible
Out script2: if relevant(1klmnopqrs987654321 B(Y) val: 1btc); if irrelevant(1abcdefghij123456789 A(X) val: 0btc)
that the same output may result in significantly different amount of BTC spent, depending on a condition?
Not to mention, that commitment transactions in simple bidirectional channels create only 1 conditional output.
legendary
Activity: 1092
Merit: 1000
November 27, 2016, 09:36:33 PM
#88
This is an interesting site to keep an eye on segwit integration.
Props out to BitcoinNewsMagazine for posting it.

https://coin.dance/blocks#blocksminedbyclient
Shows the support for each client.
Classic Support (1.7%)    Unlimited Support (8.9%)    8MB Support (10.8%)    SegWit Support (25%)


 Cool

FYI: Update
Classic Support (1.5%)    Unlimited Support (8.6%)    8MB Support (10.4%)    SegWit Support (22.2%)
legendary
Activity: 1092
Merit: 1000
November 27, 2016, 07:49:51 PM
#87
Everyone here understands how to send Coins on BTC.

LN , if implemeted is going to confuse the daylights out of the majority of people.
And alot of people will get their money stolen because they don't understand it.

If you read the following or the whole whitepaper, it states that
a BLOCKSIZE increase will be a Necessity Anyway.
 Tongue

So they could have just increased the blocksize (to fix the transaction issue) and saved everyone from this convoluted system called LN.
LN does 3 things:
1  adds banking into BTC economics
2. attempts to win back the micro-payment industry, which the current BTC transaction fees are too high to be used in.
3. takes control of BTC away from the miners and gives it to LN Nodes

Reference: https://lightning.network/lightning-network-paper.pdf

Quote
9    Risks
The primary risks relate to timelock expiration.  Additionally, for core nodes
and possibly some merchants to be able to route funds, the keys must be
held online for lower latency.  However, end-users and nodes are able to keep
their private keys  rewalled o  in cold storage.
9.1    Improper Timelocks
Participants must choose timelocks with suffcient amounts of time.
If insuffcient time is given, it is possible that timelocked transactions believed to
be invalid will become valid, enabling coin theft by the counterparty.
There is a trade-off  between longer timelocks and the time-value of money.
When writing wallet and Lightning Network application software, it is necessary
to ensure that suffcient time is given and users are able to have their trans-actions
enter into the blockchain when interacting with non-cooperative or malicious channel counterparties.

9.2    Forced Expiration Spam
Forced expiration of many transactions may be the greatest systemic risk when using the Lightning Network.  
If a malicious participant creates many channels and forces them all to expire at once, these may overwhelm block data capacity,
forcing expiration and broadcast to the blockchain.  The re-sult  would  be  mass  spam  on  the  bitcoin  network.  
The  spam  may  delay transactions to the point where other locktimed transactions become valid.

This may be mitigated by permitting one transaction replacement on
all  pending  transactions.   Anti-spam  can  be  used  by  permitting  only  one
transaction replacement of a higher sequence number by the inverse of an
even or odd number.  For example, if an odd sequence number was broad-
cast, permit a replacement to a higher even number only once.  Transactions
would use the sequence number in an orderly way to replace other trans-
actions.   This  mitigates  the  risk  assuming  honest  miners.
This attack  is extremely  high  risk,  as  incorrect  broadcast  of  Commitment  Transactions entail a full penalty of all funds in the channel.
Additionally,
one may attempt to steal HTLC transactions by forcing a timeout transaction to go through when it should not.
This can be easily mitigated by having each transfer inside the channel be lower than the total
transaction fees used.  Since transactions are extremely cheap and do not
hit the blockchain with cooperative channel counterparties, large transfers
of value can be split into many small transfers.  This attempt can only work
if  the  blocks  are  completely  full  for  a  long  time.   While  it  is  possible  to
mitigate it using a longer HTLC timeout duration, variable block sizes may
become common, which may need mitigations.
If this type of transaction becomes the dominant form of transactions which are included on the blockchain,
it may become necessary to increase the  block  size  and  run  a  variable  blocksize  structure  and  timestop   ags as described in the section below.

This can create suffcient penalties and
disincentives  to  be  highly  unpro table  and  unsuccessful  for  attackers,  as
attackers lose all their funds from broadcasting the wrong transaction,  to
the point where it will never occur.

9.4    Data Loss
When one party loses data, it is possible for the counterparty to steal funds.
This can be mitigated by having a third party data storage service where
encrypted data gets sent to this third party service which the party cannot
decrypt.   Additionally,  one  should  choose  channel  counterparties  who  are
responsible  and  willing  to  provide  the  current  state,  with  some  periodic
tests of honesty.
9.5    Forgetting to Broadcast the Transaction in Time
If one does not broadcast a transaction at the correct time, the counterparty may steal funds.
This can be mitigated by having a designated third party
to send funds.  An output fee can be added to create an incentive for this
third party to watch the network.  Further,  this can also be mitigated by
implementing OP CHECKSEQUENCEVERIFY

10    Block Size Increases and Consensus
If we presume that a decentralized payment network exists and one user will
make  3  blockchain  transactions  per  year  on  average,  Bitcoin  will  be  able
to  support  over  35  million  users  with  1MB  blocks  in  ideal  circumstances

(assuming 2000 transactions/MB, or 500 bytes/Tx).

This is quite limited, and an increase of the block size may be necessary to support everyone in the world using Bitcoin.
A simple increase of the block size would be a hard fork,  meaning  all  nodes  will  need  to  update  their  wallets  if  they  wish  to
participate in the network with the larger blocks.


While it may appear as though this system will mitigate the block size increases in the short term,
if it achieves global scale, it will necessitate a block size increase in the long term.


 Cool

FYI: LN means Snidely Whiplash Wins.  Tongue
legendary
Activity: 4424
Merit: 4794
November 27, 2016, 07:06:46 PM
#86
a system where the other person can trick the system and chargeback in that week........ = same as visa - worse than wire transfer
Show, how the system can be tricked.

your scenario using outdated concept already has.. but ill explain in easy steps based on your outdated scenario
you can read previous pages.. but here step by step.

1. do you agree that LN uses multisig. where 2 parties co-sign agreed tx data. if yes read on, if not, research and come back later
Quote
step 1: two people communicate together and agree to open a multisig to start a channel.

step 2: they both independently fund the multisig with their amounts. ONCHAIN.

step 3: they agree to the terms of who owes what. initially agreeing to whatever they deposit they get back.
hint 1: the funds cannot be spent in a multisig without both signatures
TXID:AB3
In:3abcdeklmn987654321 val:5btc (originally A(X) deposit)
In:3abcdeklmn987654321 val:5btc (originally B(Y) deposit)
Out script1: if relevant(1abcdefghij123456789 A(X) val: 5btc); if irrelevant(1klmnopqrs987654321 B(Y) val: 5btc)
Out script2: if relevant(1klmnopqrs987654321 B(Y) val: 5btc); if irrelevant(1abcdefghij123456789 A(X) val: 5btc)

maturity 1000 blocks

step 4: and both sign the same tx data.
hint 1: the funds cannot be spent in a multisig without both signatures
TXID:AB3
In:3abcdeklmn987654321 val:5btc (originally A(X) deposit)
In:3abcdeklmn987654321 val:5btc (originally B(Y) deposit)
Out script1: if relevant(1abcdefghij123456789 A(X) val: 5btc); if irrelevant(1klmnopqrs987654321 B(Y) val: 5btc)
Out script2: if relevant(1klmnopqrs987654321 B(Y) val: 5btc); if irrelevant(1abcdefghij123456789 A(X) val: 5btc)
Signature (A(X) signed inputs and output to agree)
Signature (B(Y) signed inputs and output to agree)
maturity 1000 blocks

step 5: B(Y) decides to give A(X) say 4BTC, they agree and they BOTH SIGN
hint 1: the funds cannot be spent in a multisig without both signatures
hint 2: both signing = both seeing a copy to be able to sign
hint 2: they both agree there should be a harsh penalty rather then getting what they deposited back
hint 2: in your scenario they now decide to not having matching data. but both sign each others tweaked tx data

A(X) creates and signs this. making A(X) lose out if not moral
TXID:A5
In:3abcdeklmn987654321 val:5btc (originally A(X) deposit)
In:3abcdeklmn987654321 val:5btc (originally B(Y) deposit)
Out script1: if relevant(1abcdefghij123456789 A(X) val: 9btc); if irrelevant(1klmnopqrs987654321 B(Y) val: 10btc)
Out script2: if relevant(1klmnopqrs987654321 B(Y) val: 1btc); if irrelevant(1abcdefghij123456789 A(X) val: 0btc)
Signature (A(X) signed inputs and output to agree)
maturity 1000 blocks

B(Y) creates and signs this. making B(Y) lose out if not moral
TXID:B5
In:3abcdeklmn987654321 val:5btc (originally A(X) deposit)
In:3abcdeklmn987654321 val:5btc (originally B(Y) deposit)
Out script1: if relevant(1abcdefghij123456789 A(X) val: 9btc); if irrelevant(1klmnopqrs987654321 B(Y) val: 0btc)
Out script2: if relevant(1klmnopqrs987654321 B(Y) val: 1btc); if irrelevant(1abcdefghij123456789 A(X) val: 10btc)
Signature (B(Y) signed inputs and output to agree)
maturity 1000 blocks

step 6: they both hand eachother a copy and sign their counterparts version
hint 1: the funds cannot be spent in a multisig without both signatures
hint 2: both signing = both seeing a copy to be able to sign
hint 3: doing this invalidates previous TX (step 4)

A(X) created, now B(Y) signs, B(X) KEEPS aswell as the other one below
TXID:A6
In:3abcdeklmn987654321 val:5btc (originally A(X) deposit)
In:3abcdeklmn987654321 val:5btc (originally B(Y) deposit)
Out script1: if relevant(1abcdefghij123456789 A(X) val: 9btc); if irrelevant(1klmnopqrs987654321 B(Y) val: 10btc)
Out script2: if relevant(1klmnopqrs987654321 B(Y) val: 1btc); if irrelevant(1abcdefghij123456789 A(X) val: 0btc)
Signature (A(X) signed inputs and output to agree)
Signature (B(Y) signed inputs and output to agree)
maturity 1000 blocks


B(Y) created, now A(X) signs
TXID:B6
In:3abcdeklmn987654321 val:5btc (originally A(X) deposit)
In:3abcdeklmn987654321 val:5btc (originally B(Y) deposit)
Out script1: if relevant(1abcdefghij123456789 A(X) val: 9btc); if irrelevant(1klmnopqrs987654321 B(Y) val: 0btc)
Out script2: if relevant(1klmnopqrs987654321 B(Y) val: 1btc); if irrelevant(1abcdefghij123456789 A(X) val: 10btc)
Signature (A(X) signed inputs and output to agree)
Signature (B(Y) signed inputs and output to agree)
maturity 1000 blocks

step 7: many many many trades like steps 5,6 happen where values change hands.. making previous txs irrelevant
hint 1: the funds cannot be spent in a multisig without both signatures
hint 2: both signing = both seeing a copy to be able to sign
hint 3: doing this invalidates previous TX
lets say they are at TXID:A200   TXID:B200 making A4-199  and B4-199irrelevant

step 8: B(Y) kept A6 (step 6), initially you think thats crazy right. but B(Y) broadcasts it

step 9: B(Y) lets it get confirmed

step 10: B(Y) uses the revoke code on the A6 Out script1 to then make the output spendable to him instantly before maturity expires
hero member
Activity: 572
Merit: 506
November 27, 2016, 05:55:30 PM
#85
a system where the other person can trick the system and chargeback in that week........ = same as visa - worse than wire transfer
Show, how the system can be tricked.
a system where funds are locked for a week after settling. where they cant be spent....... = worse then merchants/customers get from accepting visa/paypal
Finally a reasonable argument, thanks. It however will rarely happen. There is a way to gracefully close the channel.
Quote
Closing the channel.
Both parties know, that they can’t cheat each other. So when they decide to close the channel, one of them (let it be Alice) creates a transaction that spends o1 according to the latest state of the channel, signs it, and sends to Bob. He checks that funds are split fairly, signs it and broadcasts it. This transaction is the second and the last to hit the chain, for the whole lifetime of the channel.
Only in the case of uncooperative counterparty, one of the parties will need to wait to regain control of his/her share of channel funds.
legendary
Activity: 4424
Merit: 4794
November 27, 2016, 05:42:59 PM
#84
you literally talk about a chargeback method where bob can get funds destined for alice, then suddenly say its impossible
That's not chargebacks, but punishment for theft attempt. One party takes all funds from the channel only if another party tries to use an outdated state to steal funds.

and why do you think banks do charge backs.
seriously.

think about it.. your topic is about scaling. where you are thinking that LN is the solution. will the whole community use LN and not care about onchain?

no

a system where funds are locked for a week after settling. where they cant be spent....... = worse then merchants/customers get from accepting visa/paypal
a system where the other person can trick the system and chargeback in that week........ = same as visa - worse than wire transfer
a system that

at the moment some of those issues that you are trying to disguise are being weeded out and thrown out. hense your out of date.
however there are still some issues even with the latest concept.

i think you should let go of the tight grip you have on last May. go read the mailing list, go check out IRC. if you prefer google. use the search tools and set it to only 1 month ago.
get yourself upto date..

oh and yea. the article writer.. is not a coder, his speciality is politcs and history.
it may help you to actually create a multisig and actually see the things you can do with a multisig. play around. go to a testnet and do some stuff. learn more about it.

for instance the many other penalties LN dev's are dreaming up on one banker funded team.. vs the other concepts that are just doing ethical and dual signed mutually assured version of LN. where CODE ensures no risk no loss.

you can usually spot the banker paid devs who thing economic penalties are the answer. and holding funds ransom for days is the answer

move passed the May2016 article, it will help you

have a nice day
legendary
Activity: 1358
Merit: 1014
November 27, 2016, 05:22:48 PM
#83
We will never achieve full consensus. We had a lot of discussion back in the internet days regarding how to scale the protocol and there was never a full consensus, but a majority went the TCP + layers route. Similarly, a majority will go with Core + layers route.
hero member
Activity: 572
Merit: 506
November 27, 2016, 05:17:44 PM
#82
you literally talk about a chargeback method where bob can get funds destined for alice, then suddenly say its impossible
That's not chargebacks, but punishment for theft attempt. One party takes all funds from the channel only if another party tries to use an outdated state to steal funds.
legendary
Activity: 4424
Merit: 4794
November 27, 2016, 05:11:05 PM
#81
Another output is also recorded on the chain, there no way to spend it except 2 ways defined by it's script.

and by going by your scenario. during that week it can be "charged back" to bob (Y) going by your scenario
no "charge backs" are possible

you literally talk about a chargeback method where bob can get funds destined for alice, then suddenly say its impossible

but im loving how your changing the theory..
im guessing you need to update yourself

anyway. you can continue theorising with old concepts. while i continue looking into the latest stuff that has overcome some of the issues your OLD concept had.

goodluck though
have a nice day
hero member
Activity: 572
Merit: 506
November 27, 2016, 05:03:57 PM
#80
learn multisig.
Read what is written in bold. Btw, you should be thankful that someone patiently explains this complex design to you. I had no such help.

I'm however grateful to Aaron van Wirdum for those great articles.
legendary
Activity: 4424
Merit: 4794
November 27, 2016, 04:55:49 PM
#79
lol

your article is out dated. its actually time stamped may 2016.

also even if you believe its current try reading it fully.. learn multisig.
Quote
Building Block #3: Multisig

have a nice day
hero member
Activity: 572
Merit: 506
November 27, 2016, 04:41:35 PM
#78
however if they keep a channel open that surpasses the locktime(onchain) set up when opening the channel EG
No locktime is set onchain at the opening of the channel. o1 is just a plain 2 of 2 output without locktime or anything.

they both hold the same relevant tx at the same time.
No, they hold different txes, which however distribute funds in similar ways.
Let current channel state be: 9 BTC belong to Bob, 1 BTC to Alice.

Tx which Alice holds is created and  signed by Bob. It immediately pays 9 BTC to Bob, and creates a fancy 1 BTC output, which Alice can spend after 1000 blocks are mined on top of the block containing this output, or it can be spent immediately by Bob if he knows Alice's secret corresponding to current step.

Tx which Bob holds is created and signed by Alice. It immediately pays 1 BTC to Alice, and creates a fancy 9 BTC output, which Bob can spend after 1000 blocks are mined on top of the block containing this output, or it can be spent immediately by Alice if she knows Bob's secret corresponding to current step.

If Alice disappears, Bob publishes his tx. Alice gets her share immediately, Bob needs to wait 1000 blocks for that. If Bob disappears, Alice publishes her tx, Bob receives his 9 BTC immediately, Alice needs to wait 1000 blocks to be able to spend her share.

a tx wont get into a block without both signatures.
so both need to sign the same copy
Alice can sign her tx at any time and publish it, because it's already signed by Bob. Bob can sign his tx at any time and publish it, because it's already signed by Alice.

having a week CSV delay(1000 block) that can be interrupted by another person broadcasting a more relevant tx..
At this stage o1 - anchoring output is already spent, this is already onchain, there's no way to spend it another way. One of resulting outputs can only be spent by say Alice. Another output is also recorded on the chain, there no way to spend it except 2 ways defined by it's script.

and by going by your scenario. during that week it can be "charged back" to bob (Y) going by your scenario
no "charge backs" are possible

May be it's your design which is outdated. With this design, channels can indeed be kept open for arbitrarily long periods of time. There is essentially no limit on amount of back and forth transactions, unless they completely exhaust share of one of the parties. There is no risk of funds theft because of collusion of one of the parties with a miner.
legendary
Activity: 4424
Merit: 4794
November 27, 2016, 02:59:57 PM
#77
Here is a Point for those that can think.

If segwit does actually manage to get activated.

And people use LN for the majority of their transactions, and stay off the Blockchain.

Do you think the mining pools have already figured out less transactions on the blockchain means less fees for them to collect.
Especially when they need to survive off of transaction fees only and no more BTC are created. Less than 5 Million BTC left to mine.
LN will take money out of the BTC miners pocket.  Wink

 Cool

core devs dont care about bitcoin. they want everyone offchain so they can throw the onchain tx sky high to make people hate bitcoins blockchain.
then push people over to hyperledger..

core devs spend most of their time working on the hyperledger.. by core devs i mean the PAID devs.. not the 90 unpaid interns that just spellcheck the code.
pieter wuille - paid by blockstream - team leader segwit - also programs bankers hyperledger
Rusty Russel - paid by blockstream - team leader LN - also programs bankers hyperledger
matt corralo - paid by blockstream - main committer - also programs bankers hyperledger
greg maxwell- paid by blockstream - main committer - also programs bankers hyperledger

i could name more
legendary
Activity: 4424
Merit: 4794
November 27, 2016, 02:58:28 PM
#76
You can read this series of articles. I learned this design from there.

I made bold part of the quote which is closely related to your concerns.

i see your failure.
1. outdated. may 2016
2. belief that alice and bob have separate(slightly differing) copies (um thats the opposite of the bidirectional buzzword)

in simple terms
its one transaction data they BOTH agree on and both treat as most relevant and both keep
EG (ignore the addresses they are random letters and numbers obviously)

Txid
In:3abcdeklmn987654321 val:5btc (originally A(X) deposit)
In:3abcdeklmn987654321 val:5btc (originally B(Y) deposit)
Out: 1abcdefghij123456789 val: 9btc (goes to A(X))
Out: 1klmnopqrs987654321 val: 1btc (goes to B)
Signature (A(X) signed inputs and output to agree)
Signature (B(Y) signed inputs and output to agree)
lock: now+9d23h58m

where they simply change the out values to who deserves what and then sign together to enforce it.
a tx wont get into a block without both signatures.
so both need to sign the same copy

thats the whole point of multisig. (buzzword bidirectional)

obviously with the out which goes to A can be a script that can halt A from being able to spend it straight after its confirmed
obviously with the out which goes to B can be a script that can halt B from being able to spend it straight after its confirmed

but its one transaction not 2 transactions.
its not about A holds one tx in their favour
its not about B holds one tx in their favour

they both hold the same relevant tx at the same time.

however if they keep a channel open that surpasses the locktime(onchain) set up when opening the channel EG
20 blocks after.. the malicious user can look at their LN history and grab a tx from the say 1-19 relevance ago. and that too would also now be relevant because they went passed the deadline.
which is the case not just for recent concepts but the outdated concept you dragged up from may2016

in your concept. there is a 1000CSV block delay even after its in the blockchain (much like blockreward coinbase tx has 100 block delay)
however the failure of that is simple.
your article says it
Quote
CSV, instead, uses relative time. Once a CVS-output is recorded on the blockchain, it takes a specific amount of blocks from that point on before the bitcoins can be spent again.

having a week CSV delay(1000 block) that can be interrupted by another person broadcasting a more relevant tx.. fails
because the LN outputs are already on the blockchain when alice (x in your other scenario) closed the channel.

also another fail is because although on the blockchain. it cant be spent untill it matures in a week. thus like banks... its not "available balance" which then is worse than Visa because visa settles in 2 days.

and by going by your scenario. during that week it can be "charged back" to bob (Y) going by your scenario

see the social issues with that.. funds not being spendable for days..and chargebacks possible!!

thats why other concepts are doing the opposite. having relevance time locks within LN to close a channel sooner and getting it broadcast sooner and simply opening a new channel if the 2 parties want to continue transacting


legendary
Activity: 1092
Merit: 1000
November 27, 2016, 02:52:23 PM
#75
Here is a Point for those that can think.

If segwit does actually manage to get activated.

And people use LN for the majority of their transactions, and stay off the Blockchain.

Do you think the mining pools have already figured out less transactions on the blockchain means less fees for them to collect.
Especially when they need to survive off of transaction fees only and no more BTC are created. Less than 5 Million BTC left to mine.
LN will take money out of the BTC miners pocket.  Wink

 Cool

legendary
Activity: 1092
Merit: 1000
November 27, 2016, 02:13:32 PM
#74
if they hold their 8% for 1 year from the segwit install date, Segwit Fails
Nope. They would get outhashed.

Rules say 95 % required for segwith soft fork, unless the others can hold 95% for 2 Weeks , it will fail.

A True Hard Fork only requires 70% , because you want enough hash to make sure the 30% can not 51% attack your new chain.  Wink
False. Requires 95% for any reasonable design.

Ok, you're just being stupid now.
Reason they went with a pussy ass soft fork is they know the Chinese mining pools would block it now.
They are hoping enough public pressure comes that forces the Chinese mining pools to succumb to their will over the course of a year.
Again the Betting Pools are open.



You Nervous Nancies do realized that some ALTs hard fork 2 or 3 times a year with Zero Problems.
Comparing technical aspects of different crypto is not trolling , it is called Analyzing.
Nobody in their right mind gives a damn about some shitcoins hard forking 100 times a year.

Nobody gives a Damn , that BTC devs are too incompetent to pull off 1 Hard fork in a year.
You should just ask your self why all of the Alt devs you insult are more competent than your BTC devs.
But I can see Thinking is not something you are good at.
 
 Tongue

I run a Blockchain snapshot Service, Multiple Coins Communities Trust Me , can you say the same?
That service is as useful as your trolling attempts.

People smarter than you appreciate it.

If your BTC Devs had the Courage to Hard Fork SegWit, then it would have already been implemented or had already failed.
Hard forks are inherently dangerous in a widely deployed infrastructure (which no shitcoin, e.g. ZEIT, is).

And there you go being a DumbAss,
ZEIT has had no hard forks in more than a year.
ZEIT has been Fully Operational, for going on 3 years. (No DownTime Junior)
ZEIT has 20X the Transaction Capacity of your BitCrap coin and requires no ASICS, so it is fair to all.

Eth hard forks every month,  maybe BTC devs should ask them for help.   Cheesy


 Cool

Pages:
Jump to: