Bitcoin Forum
November 13, 2024, 07:44:32 AM *
News: Check out the artwork 1Dq created to commemorate this forum's 15th anniversary
 
   Home   Help Search Login Register More  
Poll
Question: Do we need smart contract based exchange?  (Voting closed: October 09, 2012, 01:12:34 PM)
Yes. - 41 (73.2%)
No. - 2 (3.6%)
I don't know. - 13 (23.2%)
Total Voters: 55

Pages: [1] 2 »  All
  Print  
Author Topic: We need smart contract based exchange  (Read 2833 times)
szuetam (OP)
Sr. Member
****
Offline Offline

Activity: 377
Merit: 253



View Profile
September 25, 2012, 01:12:34 PM
 #1

We need smart contract based exchange instead GLBSE, with only a web interface, or multiple web and soft exchanges to operate on it.

Do you agree?
This is why the samrt contracts wear created to eliminate additional risk of exchange holders cheating etc.
justusranvier
Legendary
*
Offline Offline

Activity: 1400
Merit: 1013



View Profile
September 25, 2012, 01:16:42 PM
 #2

The future of Bitcoin is new types of businesses that have never exited before, not replicas of existing models.

Otherwise, what's the point of all these exotic transaction types?
szuetam (OP)
Sr. Member
****
Offline Offline

Activity: 377
Merit: 253



View Profile
September 25, 2012, 01:22:18 PM
 #3

It's just to start the discussion.
At first I thought it wont work because because of no profits for developers, but..

Mechanism is there, there is just need to create web interface, so it would be for only way people will do it because its to complicated to do it without human friendly interface.
So I, or anyone who dare can make website which will let easy make trade with smart contracts making it bitcoin safe (transactions) and website could add to each contract an trade fee included to contract, then you could avoid fee by typing your contract manually which would be hard.
And with minimal fee you would be as GLBSE but, resistant to creators and makers, operators mistakes.

Wow, how brilliant I am. It is so obvious tech to write (code)
Who is with me (want to join and write it, and start it?)
I'm HPC admin and beginning software designer but I'm familiar with python nginx etc. Is there any programers who want to start with me.
Bitcoin Oz
Hero Member
*****
Offline Offline

Activity: 686
Merit: 500


Wat


View Profile WWW
September 25, 2012, 01:24:36 PM
 #4

It's just to start the discussion.
At first I thought it wont work because because of no profits for developers, but..

Mechanism is there, there is just need to create web interface, so it would be for only way people will do it because its to complicated to do it without human friendly interface.
So I, or anyone who dare can make website which will let easy make trade with smart contracts making it bitcoin safe (transactions) and website could add to each contract an trade fee included to contract, then you could avoid fee by typing your contract manually which would be hard.
And with minimal fee you would be as GLBSE but, resistant to creators and makers, operators mistakes.

Wow, how brilliant I am. It is so obvious tech to write (code)
Who is with me (want to join and write it, and start it?)
I'm HPC admin and beginning software designer but I'm familiar with python nginx etc. Is there any programers who want to start with me.

Its not as easy as it first appears or someone would have done it by now. But good luck  Smiley


szuetam (OP)
Sr. Member
****
Offline Offline

Activity: 377
Merit: 253



View Profile
September 25, 2012, 01:24:53 PM
 #5

The future of Bitcoin is new types of businesses that have never exited before, not replicas of existing models.

Otherwise, what's the point of all these exotic transaction types?

It would be completely new, it's not an classic exchange, its just an interface to create it without centralisation.
Decentralization steps is future of bitcoin.
szuetam (OP)
Sr. Member
****
Offline Offline

Activity: 377
Merit: 253



View Profile
September 25, 2012, 01:28:15 PM
 #6

It's just to start the discussion.
At first I thought it wont work because because of no profits for developers, but..

Mechanism is there, there is just need to create web interface, so it would be for only way people will do it because its to complicated to do it without human friendly interface.
So I, or anyone who dare can make website which will let easy make trade with smart contracts making it bitcoin safe (transactions) and website could add to each contract an trade fee included to contract, then you could avoid fee by typing your contract manually which would be hard.
And with minimal fee you would be as GLBSE but, resistant to creators and makers, operators mistakes.

Wow, how brilliant I am. It is so obvious tech to write (code)
Who is with me (want to join and write it, and start it?)
I'm HPC admin and beginning software designer but I'm familiar with python nginx etc. Is there any programers who want to start with me.

Its not as easy as it first appears or someone would have done it by now. But good luck  Smiley



Yes, I know that, but it is possible, and lucrative.

I just earn less than **BTC (after a second I decided not to disclosure that) a month at my current job, and that idea looks like worth considering changing it.
kjj
Legendary
*
Offline Offline

Activity: 1302
Merit: 1026



View Profile
September 25, 2012, 01:55:01 PM
 #7

From a PM I sent a month ago...

(I thought about sending something like this last night, but right now I don't remember if I did or not.  Insomnia for the win!  Sorry if this is a duplicate, been up late a couple of nights in a row thinking on this.)

So, I happened to be working on setting up litecoin mining on my rigs and registering for MPEX at the same time, and it gave me an idea.  Mind if I bounce it off you before I inflict it on the world?

Basically, for all of MPEX's fancy cryptography, I'm still not buying shares, I'm buying entries in a ledger.  This seems wrong, the world deserves better.

I'm thinking of an altchain for recording securities (stocks and bonds).  For now, I'm thinking it should be called securitycoin, or S-coin, or STC.

Say we add a payload field to the TxOut structure.  (It'll likely be a blob of DER)

If you want to create a new stock, you encode a bunch of information (the name of the issue, the number of shares, some other stuff and a hash of the prospectus) and call it the issue.  Then you hash the issue along with a secret and call that a registration.  Then you create a payload including the registration and burn a few S-coins in fees to embed it in the chain.  Then, when you feel it is deep enough, you redeem the transaction with the registration to create a new transaction with the issue as a payload (also the secret, to prove that it was you.  This is anti-front running stuff).

Now you can redeem the issue with a send to a bunch of brokers.  The brokers can redeem those as usual, and send the shares to clients.  Clients can redeem their transactions and send them to other people, if they so desire.  *

Once the issue is done, every share has a provable owner, and the owner owns the shares, not the issuer, not the broker, and not some exchange.  Even better, if we use regular bitcoin addresses on this network, the issuer can query the chain and get a list of addresses and holdings to send dividends to (on the bitcoin chain).

The system could even handle splits, merges and votes.  The only trick there is to encode the payload in a way that the network can validate the payload cheaply.  For example, in addition to enforcing coin_out < coin_in, it also needs to verify that shares_out = shares_in (paying network fees with shares seems silly, but replace the = with < and it can happen).

Since this system isn't for buying packs of gum at the store, we could slow the network down, maybe to 1 block per hour, to keep the size small.  And we could keep the value of the coins high-ish, giving an incentive for people to merge-mine it, by charging high fees for things like registrations, issues and vote requests, and small fees (or none) for sends and votes.

* I don't think it is possible to take the brokers out of the system.  I don't see any obvious way to make a pair of transactions on different chains that redeem each other.  If there is such a thing, you and your broker could create such a contract and make the trade atomic.  Until then, one of you needs to trust the other.  Then again, if we are using the same keys in both places, maybe multi-sig can do it, don't know.  At worst, it is no worse than any other bitcoin/world interaction, and you still get the benefits of recording stock ownership in the chain.

Also, see this thread and search for pybond.

When I got to thinking about Open Transactions the other night, I was thinking it might be possible to do everything in a distributed provable exchange using that system.  Talking to Fellow Traveller about it is on my todo list.

17Np17BSrpnHCZ2pgtiMNnhjnsWJ2TMqq8
I routinely ignore posters with paid advertising in their sigs.  You should too.
markm
Legendary
*
Offline Offline

Activity: 3010
Merit: 1121



View Profile WWW
September 25, 2012, 03:10:26 PM
 #8

Open Transactions has smart contracts, but web browsers do not natively handle their users' private keys or certificates, they only seem to care about identifying the website, not proving to the website that the user is who the user claims to be.

This is why a bounty is being offered for making an Open Transactions client "that grandma can use".

Right now the only GUI client is the "test client" which was originally developed as reference code showing how each function can be done. It needs a lot of polishing up to make it something that "grandma can use".

If you want to make a web interface, you will need to create a way for the user's browser to do all the decrypting of messages from the server and encrypting of messages to the server, or you will have to just be another "mybitcoin" by having everyone just trust you with their private keys, making you, not them, the owner of their accounts.

If you use Windows, try out the new Windows build of the GUI. Supposedly it "just works" now:

https://bitcointalk.org/index.php?topic=53329.msg1216747#msg1216747

Browsers are ridiculously over-featured for this kind of thing. But nonetheless the plan is to make the user's main Open Transactions install be a system service or system tray icon type of thing that is always running then have plugins for browsers, skype, IM clients etc etc etc none of which need the guts of OT in them as they will all call that resident daemon to do the hard parts.

Try out that Windows GUI, see how it all works, then think about how you could get people using web browsers to interface to it via a website. I figured most likely anyone who "needs" a website method for it would be better served by a real live broker they can videochat with via skype who will insulate them from the nitty gritty of it all - a "full service" broker.

-MarkM-

Browser-launched Crossfire client now online (select CrossCiv server for Galactic  Milieu)
Free website hosting with PHP, MySQL etc: http://hosting.knotwork.com/
markm
Legendary
*
Offline Offline

Activity: 3010
Merit: 1121



View Profile WWW
September 25, 2012, 03:54:53 PM
 #9

I do wonder exactly what smart contracts you are thinking of specifically.

Once you have Open Transactions working at your end maybe you can look through the sample smart-contracts and be more explicit as to the exact contract it is that you are looking for?

-MarkM-

Browser-launched Crossfire client now online (select CrossCiv server for Galactic  Milieu)
Free website hosting with PHP, MySQL etc: http://hosting.knotwork.com/
Rassah
Legendary
*
Offline Offline

Activity: 1680
Merit: 1035



View Profile WWW
September 25, 2012, 04:40:46 PM
 #10

If you are suggesting replacing GLBSE, technically we don't need anything decentralized. The company issuing the stock can be in charge of selling and managing it, too.

My idea was to create open source software that runs on the company's server, and sells/tracks shares there. Since we can sign messages using out BTC addresses, the whole implementation can be very easy:

Shares listed on the site, using trading software.
You purchase shares using a Bitcoin address. That address is now registered by the software as the owner of those shares.
Dividends get automatically paid out to that address.
Selling the shares back to the company involves selecting the option, and sending a confirmation signed by the BTC address, which upon confirmation receives the money.
Selling/transferring the shares to someone else involves setting up a transfer and signing a confirmation using the BTC address, at which point the new address is registered as the owner.

No need for centralized exchanges, or even tracking names and registrations. Just a private, company-owned ledger that keeps track of which shares belong to which addresses.
markm
Legendary
*
Offline Offline

Activity: 3010
Merit: 1121



View Profile WWW
September 25, 2012, 04:46:17 PM
 #11

That is a form of decentralisation; each asset is handled by its issuer, who you already have to trust anyway.

To do it as a web thing though you still need some kind of browser plugin that will talk to your bitcoin daemon to sign messages and to validate messages it receives from the server.

If you look at the tabs in the Open Transactions GUI, you will see that it has a tab for bitcoin, in which it does talk to your bitcoind daemon.

If people really insist on using bitcoin address signing instead of their 'nym maybe that functionality can be added into Open Transactions too.

-MarkM-

Browser-launched Crossfire client now online (select CrossCiv server for Galactic  Milieu)
Free website hosting with PHP, MySQL etc: http://hosting.knotwork.com/
jgarzik
Legendary
*
Offline Offline

Activity: 1596
Merit: 1100


View Profile
September 25, 2012, 05:17:26 PM
 #12


A major component of this is distributed bonds.

One implementation, pybond, should have basic distributed bonds working within a week or two.

With distributed bonds, you don't have to worry about your exchange going under, and taking all the bonds with you.

Anyone with software that reads the distributed bond format may set up an exchange.


Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own.
Visit bloq.com / metronome.io
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
Rassah
Legendary
*
Offline Offline

Activity: 1680
Merit: 1035



View Profile WWW
September 25, 2012, 05:39:29 PM
 #13

That is a form of decentralisation; each asset is handled by its issuer, who you already have to trust anyway.

To do it as a web thing though you still need some kind of browser plugin that will talk to your bitcoin daemon to sign messages and to validate messages it receives from the server.

If you look at the tabs in the Open Transactions GUI, you will see that it has a tab for bitcoin, in which it does talk to your bitcoind daemon.

If people really insist on using bitcoin address signing instead of their 'nym maybe that functionality can be added into Open Transactions too.

-MarkM-


Not sure why you would need a browser plugin. The software can just give you a message to sign as plain text, then once you use your own Bitcoin client to sign it, can verify it using it's own signature verification service (own Bitcoin, or third party)
markm
Legendary
*
Offline Offline

Activity: 3010
Merit: 1121



View Profile WWW
September 25, 2012, 05:53:03 PM
 #14

Not sure why you would need a browser plugin. The software can just give you a message to sign as plain text, then once you use your own Bitcoin client to sign it, can verify it using it's own signature verification service (own Bitcoin, or third party)

Ah, maybe you are a MPEx user?

Apparently "normal" people don't find that "useable", or even, maybe, understandable...

-MarkM-

Browser-launched Crossfire client now online (select CrossCiv server for Galactic  Milieu)
Free website hosting with PHP, MySQL etc: http://hosting.knotwork.com/
Rassah
Legendary
*
Offline Offline

Activity: 1680
Merit: 1035



View Profile WWW
September 25, 2012, 05:59:39 PM
 #15

Not sure why you would need a browser plugin. The software can just give you a message to sign as plain text, then once you use your own Bitcoin client to sign it, can verify it using it's own signature verification service (own Bitcoin, or third party)

Ah, maybe you are a MPEx user?

Apparently "normal" people don't find that "useable", or even, maybe, understandable...

-MarkM-


Nope. Don't like MPEX at all. I think being able to sign text using Bitcoin clients is very easy, and will likely become as simple and prominent as signing checks is now. But that is assuming the "normal" people you are referring to are Bitcoin users.
markm
Legendary
*
Offline Offline

Activity: 3010
Merit: 1121



View Profile WWW
September 25, 2012, 06:08:23 PM
 #16

Seems unlikely. MPEx has you sign with PGP or GPG instead of bitcoin but that is just as "inconvenient", requiring doing a copy and paste then the signing then copy and paste the result. Copy nad paste is way too complicated for "normal" folk apparently.

You need the signing app to pop up automatically like your email client does for mailto: URLs, and automatically submit the result back into the form or something like that and still people aren't going to like it, thus the browser plugin. Then they'll complain they don't want to install the plugin.

-MarkM-

Browser-launched Crossfire client now online (select CrossCiv server for Galactic  Milieu)
Free website hosting with PHP, MySQL etc: http://hosting.knotwork.com/
Rassah
Legendary
*
Offline Offline

Activity: 1680
Merit: 1035



View Profile WWW
September 25, 2012, 06:27:41 PM
 #17

Seems unlikely. MPEx has you sign with PGP or GPG instead of bitcoin but that is just as "inconvenient", requiring doing a copy and paste then the signing then copy and paste the result. Copy nad paste is way too complicated for "normal" folk apparently.

You need the signing app to pop up automatically like your email client does for mailto: URLs, and automatically submit the result back into the form or something like that and still people aren't going to like it, thus the browser plugin. Then they'll complain they don't want to install the plugin.

The reason I'm not a fan of PGP is because you need to install separate software, create separate keys, upload them to key servers, and keep backups of your keys. These are all things you already have to do with Bitcoin, anyway (or your BTC wallet service does for you). Blockchain.info and the Satoshi clients provide very simple signing already as part of your wallet. It's not as prominent, but I am hoping that will change, with big SIGN and VERIFY buttons clearly visible. At that point, since you'll be buying and selling shares from your wallet, anyway, which already includes copy/pasting long address strings, copy/pasting signature strings will not be too big of a step from it. If people can learn how to copy/paste email addresses, and now how to copy/paste BTC addresses, I expect they can learn to copy/pasting a text string and click a SIGN button.
Worst case, Bitcoin gets popular enough that btcsign: becomes as popular as mailto:, and clicking on it launches your default Bitcoin wallet, with a verification string ready to be copy/pasted into a field in the browser.
The other major benefit of BTC signing over PGP is that you can't pay, or receive payments from, PGP keys. Thus you need a system that stores a whole set of account related info, like payment address, PGP keys, and likely user names and passwords. With this setup, all that is needed is your BTC address.

P. S. It was thanks to MPEX that I started thinking about this setup, and am hoping someone can code something like this. With this available, there won't be any need for MPEX.
jgarzik
Legendary
*
Offline Offline

Activity: 1596
Merit: 1100


View Profile
September 25, 2012, 06:36:00 PM
 #18

The reason I'm not a fan of PGP is because you need to install separate software, create separate keys, upload them to key servers, and keep backups of your keys. These are all things you already have to do with Bitcoin, anyway (or your BTC wallet service does for you). Blockchain.info and the Satoshi clients provide very simple signing already as part of your wallet. It's not as prominent, but I am hoping that will change, with big SIGN and VERIFY buttons clearly visible.

Yes, this sign-message capability is available via the GUI interface or RPC API.

ECDSA signatures and keys also tend to be smaller than PGP-used forms.  That was one reason why Satoshi chose ECDSA.

And, double plug, distributed bonds and smart property use bitcoin signatures already.


Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own.
Visit bloq.com / metronome.io
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
markm
Legendary
*
Offline Offline

Activity: 3010
Merit: 1121



View Profile WWW
September 25, 2012, 06:37:33 PM
Last edit: October 07, 2012, 07:56:47 AM by markm
 #19

Sounds resonable. Maybe the bitcoin client should also include encrypt/decrypt then otherwise everyone along the route you send your messages can see what you are up to, except I guess maybe in the special case of using an https connection though actually I hear that is itself pretty much a built in man in the middle in the person of the certificate issuer plus maybe also people can fake the certificates too.

-MarkM-

Browser-launched Crossfire client now online (select CrossCiv server for Galactic  Milieu)
Free website hosting with PHP, MySQL etc: http://hosting.knotwork.com/
kjj
Legendary
*
Offline Offline

Activity: 1302
Merit: 1026



View Profile
September 25, 2012, 07:01:34 PM
 #20

Seems unlikely. MPEx has you sign with PGP or GPG instead of bitcoin but that is just as "inconvenient", requiring doing a copy and paste then the signing then copy and paste the result. Copy nad paste is way too complicated for "normal" folk apparently.

You need the signing app to pop up automatically like your email client does for mailto: URLs, and automatically submit the result back into the form or something like that and still people aren't going to like it, thus the browser plugin. Then they'll complain they don't want to install the plugin.

MPEX uses signatures and encryption, not just signatures.  And encryption provides half of the authentication, and all of the privacy in the PGP/GPG model.  Bitcoin keys can't be used for encryption, only signing.  If you've created a key recently (last 5 years? 10?) you may have noticed that the default is to create two sets of keys, one for encryption, and one for signing.


17Np17BSrpnHCZ2pgtiMNnhjnsWJ2TMqq8
I routinely ignore posters with paid advertising in their sigs.  You should too.
Pages: [1] 2 »  All
  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!