Bitcoin Forum
April 14, 2021, 02:33:13 PM *
News: Latest Bitcoin Core release: 0.21.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Contract Providing a Deposit Problem?  (Read 127 times)
Staizita
Newbie
*
Offline Offline

Activity: 13
Merit: 4


View Profile
April 19, 2019, 12:12:16 PM
Merited by d5000 (1), ETFbitcoin (1)
 #1

According to the example of the Providing a deposit in the bitcoin wiki, https://en.bitcoin.it/wiki/Contract#Example_1:_Providing_a_deposit

I found that even if the user is malicious, the malicious user can't be punished (no loss of money).

Code:
Obviously, if the user turns out to be abusive (i.e., a spammer), the website will not allow an early close of the contract.

Are there contract methods that can punish the malicious user?
1618410793
Hero Member
*
Offline Offline

Posts: 1618410793

View Profile Personal Message (Offline)

Ignore
1618410793
Reply with quote  #2

1618410793
Report to moderator
1618410793
Hero Member
*
Offline Offline

Posts: 1618410793

View Profile Personal Message (Offline)

Ignore
1618410793
Reply with quote  #2

1618410793
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1618410793
Hero Member
*
Offline Offline

Posts: 1618410793

View Profile Personal Message (Offline)

Ignore
1618410793
Reply with quote  #2

1618410793
Report to moderator
ETFbitcoin
Legendary
*
Offline Offline

Activity: 1834
Merit: 2732


NotYourKeys.org - Not Your Keys, Not Your Bitcoin


View Profile
April 19, 2019, 05:04:41 PM
Merited by d5000 (1)
 #2

It's impossible on permission-less/decentralized system such as Bitcoin unless the malicious act happens on Bitcoin network and can be verified by Bitcoin full-node client.

For example, on LN if a dishonest-party attempt to broadcast older transaction commitment, another party can activate/broadcast "punishment" transaction which takes all dishonest-party coins.

d5000
Legendary
*
Offline Offline

Activity: 2786
Merit: 2249


Decentralization Maximalist


View Profile
April 19, 2019, 05:42:07 PM
Merited by ETFbitcoin (1)
 #3

ETFBitcoin is right, a total "loss" (as punishment) for the abuser is only possible if the abuse can be verified by the Bitcoin client.

The only way I see is to set nLockTime so late in the future that de facto it will become a loss (e.g. several years) and the "normal" way would be to close the contract earlier.

You could slightly improve (but not completely solve) the incentive problem: Imagine an agreement between user and service owner where you initially agree to a very high nLocktime value, but with every week or so you use the service without abusing it, the service owner signs a transaction with a nLocktime value that expires earlier. However, this depends on the good-will of the service owner.

Making the abuse "verifiable" like in LN, however, in most cases is not practical. Imagine an e-mail service that is set up in a way that a public message, verifiable by every Bitcoin client, is broadcasted with every e-mail the user sends (you could even set up that in a way that the user must sign this message with every mail he sends, so the service owner couldn't cheat). If the user exceeds a certain "quota" he then could lose his Bitcoins. But in this particular case the service owner could simply configure his service in a way that prohibits exceeding the mail quota. It's hard to imagine a case where preventing "overuse" with a simple configuration is not possible.

(This anti-spam solution I posted last year is very similar to the example in the Wiki, with the difference that no multisig is required.)

Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!