Bitcoin Forum
March 24, 2023, 07:07:35 PM *
News: Latest Bitcoin Core release: 24.0.1 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: [1] 2 3 4 5 6 7 8 9 10 »
1  Economy / Service Discussion / Re: Escrow and how to trust them on: September 24, 2019, 07:25:48 AM
As for the reason why: my best guess would be it has something to do with the technical experience of the average user. An escrow agent has a lot of responsibility and has to deal with inexperienced users asking "newbie" questions all the time.

I can see this being an issue if the users had to construct the multisig address themselves. Why don't people use Bitrated though? Do people not trust that it's constructing the 2 of 3 correctly? Or is it still too complicated? Or do people just trust the arbitrators on bitcointalk so much that they don't see the value in having even more security?

So however it works for escrow, a guy, a company, you still got to trust them based on the community feedback for them.

Sure, if you use localbitcoins then you have to use them as the arbitrator. But let's say you use something like Bitrated -- then you can choose anyone as the arbitrator, so you can just use the same people who already get used as arbitrators on bitcointalk. It just makes it impossible for them to steal the money without the cooperation of the seller too.

I guess it just blows my mind that after all this time we still aren't seeing people use what I think is one of the coolest features of Bitcoin (2 of 3 multisig) when it looks to me like people should have a clear incentive to use it.
2  Economy / Service Discussion / Re: Escrow and how to trust them on: September 24, 2019, 04:27:11 AM
I've been reading some of these escrow threads and I'm confused about something:

Is it really true that the most popular kind of escrow on Bitcointalk involves the buyer just sending the funds to a normal Bitcoin address owned by the escrow agent, and not sending it to a 2-of-3 multisig address? When I see arbitrators offering their services it seems like they're expecting to have full control of the funds. Or am I misunderstanding?

If I'm right that people here usually just trust the escrow agent with the funds, why do they choose to do that when they could instead of 2 of 3 multisig? Is multisig just too much trouble?

3  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][CLAM] CLAMs, Proof-Of-Chain, Proof-Of-Working-Stake, a.k.a. "Clamcoin" on: March 21, 2018, 04:41:24 AM

I've been trying to sync CLAMclient for over a week, and the syncing is so slow that my client is actually getting further behind as time passes. I'm wondering if I can do anything to speed it up.

I've already downloaded the bootstrap data from dooglas, then started syncing from nodes. My client shows that it is 3 weeks behind. Two days ago my client was at block 1914550. Now it's at 1915947. That's only 1397 blocks in two days, which is slightly less than one block per minute. So at this rate I'll never catch up.

Is there anything I can do to make the sync faster? (I'm using Linux, running clam-qt 1.4.17).

 

4  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][SEM] Semux - Official Thread on: February 25, 2018, 09:52:47 AM
I submitted my signatures yesterday, but I don't see them on this list. Do they only update it rarely?

Wondering if I should be worried I did something wrong, since the deadline is tomorrow.

How silly you are. The submission has already stopped at the first day of this week. You also knew the deadline. Only airdrop for BTC holder still available for new registration on today. Good luck.

Sorry, by "signatures" I meant I submitted the signed messages for the BTC airdrop. As in, I signed my Semux address using the Bitcoin address that had funds, to quality for the BTC airdrop. Yet I still don't see that it went through on the list of all BTC airdrop addresses. Is this normal?
5  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][SEM] Semux - Official Thread on: February 25, 2018, 03:12:22 AM

I submitted my signatures yesterday, but I don't see them on this list. Do they only update it rarely?

Wondering if I should be worried I did something wrong, since the deadline is tomorrow.
6  Bitcoin / Development & Technical Discussion / Re: Technically feasible to play chess using Bitcoin? on: September 17, 2016, 07:13:44 PM

It seems like people in this thread are still focusing too much on tangential chess use cases, and not on the problem I described.

The problem is: how do you use the Bitcoin blockchain to enforce the rules of chess, such that you could bet on a game with your opponent without having to trust them? And, if this is not possible, is there a general solution that will be available in the future?




7  Bitcoin / Development & Technical Discussion / Re: Technically feasible to play chess using Bitcoin? on: September 16, 2016, 02:27:52 AM
To clarify, I am interested in techniques that are general enough to support many other use cases without having to do a fork to support each one.

8  Bitcoin / Development & Technical Discussion / Re: Technically feasible to play chess using Bitcoin? on: September 15, 2016, 11:16:18 PM
So it would not be "human vs. human" but more like "correspondence game with unlimited computing resources and unlimited consultation".

Yes, that's fine for my purposes. As I told the other person above, this is a learning exercise to explore what Bitcoin is capable of.

Is that a trick question? If you know the computation program and the input state then just rerun that computation as many times as you want until the you are convinced. Do you have some strange definition of "trustlessness" in your mind? Something like "left hand doesn't trust right hand?"

The point of using Bitcoin is that we want its blockchain to know the program and the inputs and verify the output, then release funds depending on the output. It isn't enough that both you and I can run the program off the blockchain, because one of us could lie and say "hey when I run this program it says I won, so give me the money." Trustless here means you don't have to trust your partner to be honest and pay you if he loses. The blockchain resolves any dispute about who the winner is, and causes funds to be paid to them.
9  Bitcoin / Development & Technical Discussion / Re: Technically feasible to play chess using Bitcoin? on: September 15, 2016, 10:26:43 PM
Or you could go to lichess.org and host a game there, and do send me the link when you set it up, I kick ass at it

The purpose of this question is not to play chess, it's to explore the power of smart contracts using Bitcoin. The idea is that if any technique that allows us to play chess using Bitcoin should be powerful enough to allow lots of other interesting uses.

Competitive chess playing is very resource intensive:

The smart contract would not be generating moves. Just officiating a human vs. human match. I have in mind something like in the article I linked to. Checking whether a move is valid is far easier than generating good moves.

You would have to come up with a different chess game scoring system that doesn't take account of time.

Timing moves is tricky, however it may be possible to play long games where the time per move is measured in blocks. If the time is long enough (for instance, 100 blocks per move), the variance of block creation may not be an issue. However since the goal is not to post every move on the chain (as mentioned in the original post, this is super inefficient), there may be some way to play with faster time controls with all verification done off-chain or over a Lightning channel.


Also, chess has no hidden state, so what would be benefit of using the zero-knowlegde system in the game?

I mention zero knowledge proofs because those are solutions that Greg mentioned already exist (ZKCP) or are eventually coming (SNARKS). You're right that it seems like zero knowledge shouldn't be needed for this. If anyone knows how to trustlessly verify an arbitrary computation without it, I'm interested to know how.

10  Bitcoin / Development & Technical Discussion / Technically feasible to play chess using Bitcoin? on: September 15, 2016, 06:37:10 AM
Someone recently posted an article about playing chess on an altcoin blockchain. It was interesting and got me thinking whether there's some way to do this with Bitcoin, and if not, if there was some plausible addition to Bitcoin that would allow it.

The TL;DR of the article is that putting every move on-chain is super expensive and not advisable with any blockchain. So a "challenge/response" system is developed where game-related transactions only hit the blockchain if there is a dispute. This seems like the right architecture for Bitcoin too. Ideally the whole game could be played over Lightning channels so even the result of the game didn't have to hit the blockchain.

However with the setup in the linked article, the blockchain still needs to be able to evaluate the following question: "is move M a valid move from board state S?" In other words the blockchain needs some way to represent the rules of chess.

It seems hard to write a Bitcoin script that takes a board state and a move and verifies whether the move is legal. Seems like there are too many possibilities, even with MAST. I was thinking maybe after you move you could also create a MAST script which accepts any valid continuation from your opponent. However without some smart contract that knows the rules of chess, you could just claim the moves you don't want your opponent to make aren't available to him.  

Greg Maxwell has a post talking about how various problems like this could be solved in Bitcoin.

The most heavy duty solution is SNARKS. They'll let you use an arbitrary program to verify a computation. So you wouldn't have to be restricted to Bitcoin Script. However that seems pretty far away.

The other option seems to be zero knowledge contingent payments (which Greg talks about here). It is claimed that you can run arbitrary programs which never hit the blockchain. It seems from Greg's description like the only downside is that the contract won't be private. This is fine in the chess case though. If contract privacy is the only difference in power between ZKCPs and SNARKS, then ZKCPs are a lot more powerful than I realized.

So, my question: is it actually possible today to use ZKCPs to play chess for bitcoins, trustlessly, using the Bitcoin blockchain in such a way that only one transaction hits the chain when the game ends?

If this is not possible, what is keeping it from being feasible?

Are there other approaches that I missed?
11  Bitcoin / Development & Technical Discussion / Re: Turing completeness and state for smart contract on: August 20, 2016, 08:26:59 AM
<some stuff>

That makes more sense. Thanks for clarifying.
12  Bitcoin / Development & Technical Discussion / Re: Turing completeness and state for smart contract on: August 19, 2016, 09:05:37 AM
but I'm not seeing why exactly this means they shouldn't be written in a declarative language

How about now?

Though your example is making a distinction without a difference, something like that could easily be converted to something more Bitcoin script like... but the real differences I'm highlighting are things like avoiding mutable state,

Just seeing your comment now. Yes, the DAO stuff is evidence against having such an expressive scripting language. However I see the mutable state vs script-like language are fairly orthogonal. Assuming that Bitcoin's more constrained system of state is better, what I wonder is whether a more declarative way to write Bitcoin-script-equivalent stuff would still be preferable. As mentioned above, I think the declarative style puts less mental load on developers and is more 'natural'.

The gist of an earlier comment of yours seemed to be: "writing smart contracts is inherently hard and unnatural, so it's fine if the scripting language is hard to understand." I just don't see how one aspect of writing contracts being hard (getting the logic right) implies that it would be better for other aspects to be harder than they need to be.

If a declarative version of Bitcoin script made mistakes less likely, what is the downside? Are you worried about newbs who just learned a bit of javascript thinking they can write secure smart contracts just because Bitcoin script v2 might look a bit more like javascript? So the fact that current script looks intimidating is actually good? If so would it have been even better if Satoshi made all op codes of the form OP_XYZ where X, Y, and Z were digits? And maybe disallowed spaces when not including them would still be unambiguous? That would certainly reinforce in people's mind that writing Bitcoin script is tricky.
13  Bitcoin / Development & Technical Discussion / Re: Turing completeness and state for smart contract on: April 29, 2016, 07:27:27 AM
The kinds of data the software works with is different. The resource costs are radically different. The execution environment is necessarily very different-- how often do you write ordinary programs whos execution gets rolled back in a reorg or could "run out of gas"? The implications of failure are typical fairly different. The interactions with privacy are very different than ordinary software development.

Yes, smart contracts are different from normal software in many ways, but I'm not seeing why exactly this means they shouldn't be written in a declarative language. My premise is that a language like Script just adds to the developer's mental load without any corresponding benefit over a declarative language (which I am assuming are easier for the human mind to understand).

Note that I'm not suggesting Ethereum's language is better. This is just about declarative vs. <whatever Script's style is called>. I'm wondering whether it is possible to create a language that has equal power to Script, which just happens to be declarative. So for instance it would obviously not have loops, no gotos. Maybe just if statements / if/else, support for variables, the existing opcodes converted to declarative functions, and a cap on the # of instructions.

So for instance a P2PKH 'script' might look like:

Code:
function( pubKeyHash, sig, pubKey){
    h = OP_HASH160(pubKey)
    if ( pubKeyHash != h ) return false
    return OP_CHECKSIG( sig, pubkey)
}

Are there reasons why if Satoshi had done this instead of Script it would have been bad?
14  Bitcoin / Development & Technical Discussion / Re: Turing completeness and state for smart contract on: April 24, 2016, 04:59:46 AM
There is one area where I think Ethereum might have a smart contract advantage, that I haven't seen Bitcoiners discuss. It looks to me like writing Ethereum contracts is more 'natural' to developers than writing complex script constructions using Bitcoin. I haven't written scripts in either, but as a dev this is the sense I get by looking at their scripts. Is this a legit problem? If so, have the Bitcoin devs thought much about how to make Bitcoin script construction more accessible for normal devs (maybe either via dev tools, or by some simplified declarative language that compiles into Script)?
15  Bitcoin / Development & Technical Discussion / Re: Turing completeness and state for smart contract on: April 23, 2016, 07:18:37 AM
I thought Greg's description above was really good and was curious how Vitalik would reply so I posted it over in the Ethereum subreddit. For anyone else interested, he gave a detailed response at https://www.reddit.com/r/ethereum/comments/4g1bh6/greg_maxwells_critique_of_ethereum_blockchains/d2e24sy

16  Bitcoin / Bitcoin Discussion / Re: Is it good or bad that Core development is virtually controlled by one company? on: February 04, 2016, 08:33:01 AM
And some decades from now when your grandkids ask where were you when they took the shining hope of decentralized money away

IMO, no matter what happens to Bitcoin, if some people end up wanting decentralized money in the future they will have it. The technology can't be un-invented. If the 'main fork' of BItcoin eventually becomes highly centralized, some decentralized fork will spring up as long as there are cypherpunks who value it. Or some new cryptocurrency will be fill the 'hardcore decentralization' niche.
17  Economy / Service Announcements / Re: [ANN] Joinmarket - Coinjoin that people will actually use on: August 23, 2015, 07:23:59 PM
I made this commit https://github.com/chris-belcher/joinmarket/commit/be8b63fa332d18a4ba71d68e3894d29d4c9db7c8
It displays the coinjoin fee as a percentage and prints out a huge warning banner if its above 2%

It might be good to have a second layer of confirmation in this case too, just in case someone accidentally hits 'y' once. Like "The fee is extremely high. Are you sure? (y/n)".
18  Bitcoin / Development & Technical Discussion / Re: Idea to improve Lightning Network (LN) on: July 25, 2015, 07:28:55 PM
It doubles the total opening time, which may or may not be a problem.  But outsourcability is so nice it's probably worth it!

Glad it seems to work.

About the opening time: could you clarify why there's an extra delay?  I'm imagining that Alice would post her anchor tx and Bob would post his payment tx to Alice within seconds of each other. Bob is protected by a timeout, and Alice is protected because her tx is only paying herself at first. They wait until both txs are confirmed, then Bob can reveal his secret. Is this actually slower than your original method?

Let's assume that for some reason Bob wants it to be impossible for his tx to confirm and the anchor tx to be orphaned. I believe this can be solved by making Bob's payment outside of the channel dependent on an output from the anchor tx. The new anchor tx has a 5 BTC input from Alice, but now two outputs: one of value 1 satoshi spendable only by Bob, and another of 5 BTC (minus one satoshi) with spending requirements exactly like before. Bob broadcasts his tx paying Alice 2.5 BTC (if she knows his secret) using this 1 satoshi output as an input. Now Bob doesn't even have to wait for the anchor to be confirmed before revealing his secret, as long as he and Alice have exchanged suitable commitment txs that depend on the anchor's "main" output.


19  Bitcoin / Development & Technical Discussion / Re: Idea to improve Lightning Network (LN) on: July 25, 2015, 04:59:16 AM
aj on the LN IRC channel suggested an improvement to this technique -- a better way for Bob to pay Alice instead of using a one way payment channel:

Quote
rather than opening a whole new channel, why not send a "Bob pays 2.5 BTC to "Alice_Sig + BobSecret | Bob_Sig + TIMEOUT" and ask Alice to setup an on-channel payment to Bob of 2.5 BTC given BobSecret. Bob reveals BobSecret on the channel, Alice uses BobSecret to claim the on-blockchain 2.5BTC, everyone's square.

I also updated the original post to note that this does require BIP 62.
20  Bitcoin / Development & Technical Discussion / Idea to improve Lightning Network on: July 24, 2015, 10:24:23 PM
Recently Rusty figured out how LN could be made to work without malleability fixes (EDIT: except for BIP 62) : http://ozlabs.org/~rusty/ln-deploy-draft-01.pdf. The drawback of his approach is that monitoring the network to make sure the other guy doesn't post a revoked transaction is not outsourcable. You have to be monitoring the network yourself, otherwise the person you trusted to monitor it for you could give information to the other person on the LN channel and let them steal money from you.

My modification is a way to get the benefits of Rusty's modification, without giving up outsourcability.

In short, the reason malleability is a problem for the original LN design is that both people are funding the anchor tx, and one person is posting the anchor tx, and whoever posts it can modify it in such a way that he screws over both people.

A solution is to make the anchor transaction funded by just one person, and posted by that same person. That way, the funding person only screws over themselves if they modify the anchor tx before posting it.

Suppose Alice and Bob want a LN channel. Alice crafts an anchor tx funded by 5 BTC from herself. Its one output requires a signature from both Alice and Bob. (I'm simplifying by leaving out the details of OP_CSV and revoking commitments). Alice also crafts a commitment tx which spend's the anchor's output, sending all 5 BTC to an address Alice controls. Bob signs the commitment tx and send it back to Alice. Now Alice can post the anchor tx, because she knows she can spend it with the commitment tx that Bob just signed. Alice could modify the anchor's hash before posting it, but she would only be screwing over herself. So she posts the same anchor tx that her commitment tx refers to.

Now Alice can pay Bob, but Bob can't pay Alice via the LN channel because Bob has zero balance on the channel. However we can get to a state from here that is as if Alice and Bob had both funded the anchor tx with 2.5 BTC each. Bob just needs to pay Alice 2.5 BTC, and Bob and Alice need to modify the commitment txs and revoke the old ones. How can Bob pay Alice in a trustless way? He can open a simple temporary one-way payment channel to Alice. He transfers minuscule amounts of BTC over a one-way channel, and each time he does, he and Alice sign new commitment txns on the LN channel and revoke their old ones. At any point, Alice can only steal a minuscule amount from Bob (or vice versa -- they can do the transfers in either order, so either person is at risk of losing one cent or whatever the incremental transfer amount is). Once Bob transfers the 2.5 BTC to Alice via the simple one-way channel, Alice can close this channel and each person's "balance" on the LN channel is 2.5 BTC.

Because this avoids the escape transactions described in the paper linked above, either party can now outsource the work of watching the network for cheating attempts.

Will this work?

Pages: [1] 2 3 4 5 6 7 8 9 10 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!