Author

Topic: [ANN][XCP] Counterparty - Pioneering Peer-to-Peer Finance - Official Thread - page 384. (Read 1276826 times)

member
Activity: 111
Merit: 10
Digitizing Valuable Hard Assets with Crypto

I can't argue how you feel about the core devs. However, no one stood up to the technical merits of why 80 bytes was needed. Jeff and Gavin have simply made claims about 40 byte change being good enough and SPAM being a problem. Unfortunately, I did not have the technical breadth to ask how they came to those conclusions, but disengaging in the technical discourse is not letting others understand the potential.

The open letter was a first step to engage, but it's not good enough. We need to say something on the list.

It would be very hard to seriously say there isn't a technical reason for OP_Return to be 80 that they aren't aware of.

Good point. Let me then do what I'm good at: Backroom political dealing with greasy fingers.

I will reach out to Jeff via some of the Bitpay bitcore devs to explore if we can share an introduction to the Counterparty devs to explore the OP_RETURN options. The Bitpay devs are already impressed that Counterparty is using Bitpay's Insight for Counterwallet.
newbie
Activity: 24
Merit: 0
I've added to my proposal a textual visualization on what the hierarchy would look like.

https://bitcointalksearch.org/topic/m.5783153

EDIT:
Some examples to show what I'm talking about.

Code:
Asset Short name    Long name                    
BITT                BITT                        
KEOdAi3q            BITT.spanish.dubloon        
OIu3waqn            BITT.spanish.dubloon#1      
RPGGAME             RPGGAME
LPJhiowG            RPGGAME.ruby.cracked
jrOyehHG            RPGGAME.ruby.perfect
BANK                BANK
OIJFE7ig            BANK.I can type whatever I like


Client visualization
Code:
BITT
 +-spanish
         +-dubloon
         +-dubloon#1
RPGGAME
 +-ruby
      +-cracked
      +-perfect
BANK
 +-I can type whatever I like


I tried an actual example based from this suggestion on the official forum.  

Here's how it could work if we really do have 256^8 = 18446744073709551616 names according to PhantomPhreak.

1. User issues asset CAKE.
   This steps works normally by creating the top level asset CAKE.

2. User issues asset CAKE.CHOCOLATE
   a. Since this is not a top level asset (it has the dot), the client software will hash CAKE.CHOCOLATE and fold it into range using hash256(CAKE.CHOCOLATE) %  18446744073709551616 = 14342628182955096483.  Now it will encode the ASSET_ID of 14342628182955096483 into base26 to get a valid asset name of FUHSJLMRZXYYVR.
  
   b. Client checks that I own CAKE.  If so, it sets the protocol to issue FUHSJLMRZXYYVR setting the long name to CAKE.CHOCOLATE

3. User issues asset CAKE.STRAWBERRY
   a. Again, the client will hash CAKE.STRAWBERRY using hash256('CAKE.STRAWBERRY') %  18446744073709551616 = 12954728149517977030 resulting in this asset name: FFTOTODXVAJETA

   b. Client checks that the user owns CAKE before issuing FFTOTODXVAJETA with the long name of CAKE.STRAWBERRY

4. User issues asset CAKE.DOUBLEFUDGECREAMYVANILLAWITHCHOCOLATECHIP
   a. Client hashes hash256('CAKE.DOUBLEFUDGECREAMYVANILLAWITHCHOCOLATECHIP') %  18446744073709551616 = 14967343411115770189 or GAVXSUXGXBLXSV

   b. Client checks that user owns CAKE.  Unfortunately, a squatter knew that the user would be issuing this delicious cake and squatted the asset name GAVXSUXGXBLXSV. It just means that the CAKE owner has change the long asset name a bit to avoid this collision.  Because the squatter does not own CAKE, the long asset name for GAVXSUXGXBLXSV could not be CAKE.DOUBLEFUDGECREAMYVANILLAWITHCHOCOLATECHIP.

5. When we buy/sell CAKE.CHOCOLATE and CAKE.STRAWBERRY, we will actually be exchanging FUHSJLMRZXYYVR and FFTOTODXVAJETA through the Counterparty protocol.  Our clients/blockscan will show the long asset names.

As far as I can tell, this suggested implementation should work and be compatible with the existing protocol.  
This is actually another great suggestion the more I think about it now.

It reminds me of the 8.3 short/long filename.  It should be okay to allow lowercase characters, numbers, and symbols for the long asset name since it will be hashed and encoded into base 26 anyway.
full member
Activity: 214
Merit: 101

I can't argue how you feel about the core devs. However, no one stood up to the technical merits of why 80 bytes was needed. Jeff and Gavin have simply made claims about 40 byte change being good enough and SPAM being a problem. Unfortunately, I did not have the technical breadth to ask how they came to those conclusions, but disengaging in the technical discourse is not letting others understand the potential.

The open letter was a first step to engage, but it's not good enough. We need to say something on the list.

It would be very hard to seriously say there isn't a technical reason for OP_Return to be 80 that they aren't aware of.
full member
Activity: 238
Merit: 100

I can't argue how you feel about the core devs. However, no one stood up to the technical merits of why 80 bytes was needed. Jeff and Gavin have simply made claims about 40 byte change being good enough and SPAM being a problem. Unfortunately, I did not have the technical breadth to ask how they came to those conclusions, but disengaging in the technical discourse is not letting others understand the potential.

The open letter was a first step to engage, but it's not good enough. We need to say something on the list.

+1
We need to engage them, in a dialog.
member
Activity: 111
Merit: 10
Digitizing Valuable Hard Assets with Crypto
Plea to Core Bitcoin Developers regarding OP_RETURN: https://www.counterparty.co/plea-bitcoin-core-development-team/

This post is great, but this is now how the bitcoin core team works to make a change. Here's my 3 steps for engaging the bitcoin core dev team on the change which may not guarantee anything will happen, but is better than an open letter which they will most likely never read.

Step 1: Counterparty Devs need to get on the bitcoin core dev mailing list and understand the decision making process and how the core devs see OP_RETURN. Hint: They mostly don't like it.

Here's the discussion when they decided to go from 80 bytes to 40.
http://www.mail-archive.com/[email protected]/msg04013.html

and here's Gavin's opinion about 40 bytes
http://www.mail-archive.com/bitcoin-development%40lists.sourceforge.net/msg04018.html

Step 2: The Counterparty Core devs here need to get on that mailing list and share (not argue) their technical points for a 75 byte or 80 byte limit. The biggest concern is SPAM on the blockchain. How does Counterparty prevent SPAM when Mastercoin or others may do so? It may require Counterparty providing some ways to fix OP_RETURN to help address these issues. This is contributing to the bitcoin core. Mastercoin is absent from this list most likely because they have given up on representation so there may be room for new voices.

Step 3: Assume that this change will not happen immediately (if at all), but will need to be pressed weekly. I would recommend also sending a direct note to Jeff Garzik and Gavin explaining why this is important and why it will not lead to abuse.

You can't argue from afar. You must engage and you must acquire the attention of key stakeholders in this discussion. You must join the bitcoindevs mailing list and represent the Counterparty position.

However, none of this is a guarantee that any action will be taken.


We are on that mailing list. The Bitcoin core development team is just a cabal, and they need to see popular demand for features before they support them. Otherwise, they're too inclined to be conservative for the sake of being conservative, e.g. in this case, where there is no actual justification for their decisions. It just makes the situation worse.

I can't argue how you feel about the core devs. However, no one stood up to the technical merits of why 80 bytes was needed. Jeff and Gavin have simply made claims about 40 byte change being good enough and SPAM being a problem. Unfortunately, I did not have the technical breadth to ask how they came to those conclusions, but disengaging in the technical discourse is not letting others understand the potential.

The open letter was a first step to engage, but it's not good enough. We need to say something on the list.
sr. member
Activity: 476
Merit: 300
Counterparty Chief Scientist and Co-Founder
Plea to Core Bitcoin Developers regarding OP_RETURN: https://www.counterparty.co/plea-bitcoin-core-development-team/

This post is great, but this is now how the bitcoin core team works to make a change. Here's my 3 steps for engaging the bitcoin core dev team on the change which may not guarantee anything will happen, but is better than an open letter which they will most likely never read.

Step 1: Counterparty Devs need to get on the bitcoin core dev mailing list and understand the decision making process and how the core devs see OP_RETURN. Hint: They mostly don't like it.

Here's the discussion when they decided to go from 80 bytes to 40.
http://www.mail-archive.com/[email protected]/msg04013.html

and here's Gavin's opinion about 40 bytes
http://www.mail-archive.com/bitcoin-development%40lists.sourceforge.net/msg04018.html

Step 2: The Counterparty Core devs here need to get on that mailing list and share (not argue) their technical points for a 75 byte or 80 byte limit. The biggest concern is SPAM on the blockchain. How does Counterparty prevent SPAM when Mastercoin or others may do so? It may require Counterparty providing some ways to fix OP_RETURN to help address these issues. This is contributing to the bitcoin core. Mastercoin is absent from this list most likely because they have given up on representation so there may be room for new voices.

Step 3: Assume that this change will not happen immediately (if at all), but will need to be pressed weekly. I would recommend also sending a direct note to Jeff Garzik and Gavin explaining why this is important and why it will not lead to abuse.

You can't argue from afar. You must engage and you must acquire the attention of key stakeholders in this discussion. You must join the bitcoindevs mailing list and represent the Counterparty position.

However, none of this is a guarantee that any action will be taken.


We are on that mailing list. The Bitcoin core development team is just a cabal, and they need to see popular demand for features before they support them. Otherwise, they're too inclined to be conservative for the sake of being conservative, e.g. in this case, where there is no actual justification for their decisions. It just makes the situation worse.
member
Activity: 111
Merit: 10
Digitizing Valuable Hard Assets with Crypto
Plea to Core Bitcoin Developers regarding OP_RETURN: https://www.counterparty.co/plea-bitcoin-core-development-team/

This post is great, but this is now how the bitcoin core team works to make a change. Here's my 3 steps for engaging the bitcoin core dev team on the change which may not guarantee anything will happen, but is better than an open letter which they will most likely never read.

Step 1: Counterparty Devs need to get on the bitcoin core dev mailing list and understand the decision making process and how the core devs see OP_RETURN. Hint: They mostly don't like it.

Here's the discussion when they decided to go from 80 bytes to 40.
http://www.mail-archive.com/[email protected]/msg04013.html

and here's Gavin's opinion about 40 bytes
http://www.mail-archive.com/bitcoin-development%40lists.sourceforge.net/msg04018.html

Step 2: The Counterparty Core devs here need to get on that mailing list and share (not argue) their technical points for a 75 byte or 80 byte limit. The biggest concern is SPAM on the blockchain. How does Counterparty prevent SPAM when Mastercoin or others may do so? It may require Counterparty providing some ways to fix OP_RETURN to help address these issues. This is contributing to the bitcoin core. Mastercoin is absent from this list most likely because they have given up on representation so there may be room for new voices.

Step 3: Assume that this change will not happen immediately (if at all), but will need to be pressed weekly. Counterparty devs need to get on that mailing list so they can see to whom they can send direct notes to appeal the change, including engaging Jeff Garzik and Gavin Andresen, explaining why this is technically important and why it will not lead to abuse.

You can't argue from afar. You must engage and you must acquire the attention of key stakeholders in this discussion. You must join the bitcoindevs mailing list and represent the Counterparty position.

However, none of this is a guarantee that any action will be taken.
hero member
Activity: 647
Merit: 510
Counterpartying
newbie
Activity: 45
Merit: 0
We'll be issuing a statement on these new proposals, other radical protocol changes that were previously made, and an explanation for recent stakeholder flight in a few hours.

Don't change that Bitcoin2.0 dial!

Stay Tuned on the Counterparty Cable Channel!

http://img.pandawhale.com/47778-wrestler-dis-gon-b-gud-gif-Img-O4EB.gif
sr. member
Activity: 472
Merit: 250
Never spend your money before you have it.
We'll be issuing a statement on these new proposals, other radical protocol changes that were previously made, and an explanation for recent stakeholder flight in a few hours.
sr. member
Activity: 262
Merit: 250
How much of this proposal, and of other similar proposals, can be handled by the asset description field? (Not much space is needed to store a URL.).I love namespaces, etc., but I want to keep the protocol-level as simple and as stupid as possible. We could do this sort of thing is Counterwallet and BootleXCP themselves, for example.

Extremely good point and porqupine has also communicated the same to me.

We would only need a naming convention on how to format the asset description field. The rest can be up to the client side to parse it.

As long as there was some defacto which was perhaps outlined by the Counterparty team but not necessarily enforced, then everyone would be a happy camper.

Eg Lets just use the tilde as a delimiting character in the description. Field 1 = namespace, field 2 = description, field 3 = url
sr. member
Activity: 476
Merit: 300
Counterparty Chief Scientist and Co-Founder
I've added to my proposal a textual visualization on what the hierarchy would look like.

https://bitcointalksearch.org/topic/m.5783153

EDIT:
Some examples to show what I'm talking about.

Code:
Asset Short name    Long name                   
BITT                BITT                         
KEOdAi3q            BITT.spanish.dubloon         
OIu3waqn            BITT.spanish.dubloon#1       
RPGGAME             RPGGAME
LPJhiowG            RPGGAME.ruby.cracked
jrOyehHG            RPGGAME.ruby.perfect
BANK                BANK
OIJFE7ig            BANK.I can type whatever I like


Client visualization
Code:
BITT
 +-spanish
         +-dubloon
         +-dubloon#1
RPGGAME
 +-ruby
      +-cracked
      +-perfect
BANK
 +-I can type whatever I like
     
Client visualization alternative - reflects the reality that there is only 2 levels
Code:
BITT
 +-spanish.dubloon
 +-spanish.dubloon#1

RPGGAME
 +-ruby.cracked
 +-ruby.perfect

BANK
 +-I can type whatever I like

How much of this proposal, and of other similar proposals, can be handled by the asset description field? (Not much space is needed to store a URL.).I love namespaces, etc., but I want to keep the protocol-level as simple and as stupid as possible. We could do this sort of thing is Counterwallet and BootleXCP themselves, for example.
sr. member
Activity: 262
Merit: 250
I've added to my proposal a textual visualization on what the hierarchy would look like.

https://bitcointalksearch.org/topic/m.5783153

EDIT:
Some examples to show what I'm talking about.

Code:
Asset Short name    Long name                   
BITT                BITT                         
KEOdAi3q            BITT.spanish.dubloon         
OIu3waqn            BITT.spanish.dubloon#1       
RPGGAME             RPGGAME
LPJhiowG            RPGGAME.ruby.cracked
jrOyehHG            RPGGAME.ruby.perfect
BANK                BANK
OIJFE7ig            BANK.I can type whatever I like


Client visualization
Code:
BITT
 +-spanish
         +-dubloon
         +-dubloon#1
RPGGAME
 +-ruby
      +-cracked
      +-perfect
BANK
 +-I can type whatever I like
     
Client visualization alternative - reflects the reality that there is only 2 levels
Code:
BITT
 +-spanish.dubloon
 +-spanish.dubloon#1

RPGGAME
 +-ruby.cracked
 +-ruby.perfect

BANK
 +-I can type whatever I like
member
Activity: 74
Merit: 10
Article by @CoinTelegraph - Counterparty to Set New Standard of Fairness in the Cryptographic World: http://cointelegraph.com/post/counterparty_to_set_new_standard_of_fairness_in_the_cryptographic_world      info   from Counterparty twitter!
member
Activity: 82
Merit: 10
An simple idea that seems to have been ignored on the official forums...

Wouldn't it be easier to just allow dots in the asset names (hint:  Global_trade_repo's hierarchy idea)?

That way BTT.UNIQUESILVER and BTT.RARECOIN would not collide with someone else's UNIQUESILVER and RARECOIN?
As suggested by Global_trade_repo, the asset names with dots in them could cost less to issue.

Not only that, but the buyers could be more confident that the assets were issued from BTT without rechecking/verifying the description/catalog.  An impostor could issue a VERYRARECOIN with a description poiting to BTT's catalog for example.  But the impostor cannot fake a BTT.VERYRARECOIN asset if it's required to own the BTT asset first.

We should also allow other characters such as #, $, %, and digits after the dot in the asset names.  So BTT can issue BTT.SILVER$100  or BTT.GOLD#1906 for example.


Otherwise, assuming a business can issue 100000+ assets, how does it go about organizing/tracking assets efficiently?  It much easier to match BTT.GOLD#1906 or BTT.RAREGOLD#18394 from a catalog than to search for BTT.GOLDXFR and BTT.RAREGOLDSXR to identify the asset.


If Counterparty is a protocol like TCP/IP, then we will need a flexible asset naming scheme that works almost like the domain naming system.

The BitcoinTangibleTrust team supported this approach on the official forums, as well. Global_trade_repo's suggestion was genius. We like it for more extensive naming degrees of freedom.


+1, BTT agreeing here too
member
Activity: 82
Merit: 10
An simple idea that seems to have been ignored on the official forums...

Wouldn't it be easier to just allow dots in the asset names (hint:  Global_trade_repo's hierarchy idea)?

That way BTT.UNIQUESILVER and BTT.RARECOIN would not collide with someone else's UNIQUESILVER and RARECOIN?
As suggested by Global_trade_repo, the asset names with dots in them could cost less to issue.

Not only that, but the buyers could be more confident that the assets were issued from BTT without rechecking/verifying the description/catalog.  An impostor could issue a VERYRARECOIN with a description poiting to BTT's catalog for example.  But the impostor cannot fake a BTT.VERYRARECOIN asset if it's required to own the BTT asset first.

We should also allow other characters such as #, $, %, and digits after the dot in the asset names.  So BTT can issue BTT.SILVER$100  or BTT.GOLD#1906 for example.


Otherwise, assuming a business can issue 100000+ assets, how does it go about organizing/tracking assets efficiently?  It much easier to match BTT.GOLD#1906 or BTT.RAREGOLD#18394 from a catalog than to search for BTT.GOLDXFR and BTT.RAREGOLDSXR to identify the asset.


If Counterparty is a protocol like TCP/IP, then we will need a flexible asset naming scheme that works almost like the domain naming system.



Upon first glance this seems pretty damn genius. It's genius because its so simple its almost obviously the way it should be. I hope the developers strongly consider implementing this or something quite like this, as soon as robot/human-hybridally possible.

Edit: That being said this may be something left to other developers to build on top of Counterparty, but I think its fundamental enough to be included in the protocol layer itself.


Think:

Code:
Issuer.Issuance.Sub-Issuance


And so once an issuer name is chosen, that issuer can create other issuer names of course but they will be the only ones who are permitted to create issuances and sub-issuances relative hierarchically to their issuer name.

And then perhaps blockscan can implement a nice new GUI feature which will allow for collapsing and expanding assets based on this hierarchy of issuance. This will make searching for assets and trusting assets that are issued much much easier and much cleaner of an experience. Good idea GLaDos.


Edit 2: In addition, fees can be adjusted, say... maybe 5 - 10 XCP more or less to register an issuer name, but the issuance might be half that and then the sub-issuances might be even half of half etc., This makes sense to me, but I'm waiting for someone to tell me I'm an idiot or that its not feasible as is common round these parts. -___-


+1
Agreed, this is a good suggestion.

+1
member
Activity: 82
Merit: 10
For example, there are thousands of types of silvercoins with different make, quality, size, and ownership histories. We use generic catalog names to make these assets easy to identify in our catalog and easy for our customers to discretely digitize and trade. We respect this diversity and don't aim to constrain it as we didn't create it ourselves.
It makes sense now.

BTT thanks for your post, I think I understand a bit better what you are proposing to do. Can I just clarify your business model a little bit out of curiosity? It sounds like you will essentially be a middle man listing assets on behalf of others, for which you will charge a fee. In this case the requirement to issue several assets is understandable and I can appreciate your desire to keep costs down.

However, I still think that asset squatting is an issue for usability, although I think that this can probably be addressed on the client side by filtering assets somehow. Don't get me wrong, I like that you are helping the system develop, my only issue is that, under a low issuance fee scenario, I can see the whole thing degenerating to a free for all where we have a million assets that have been squatted on or don't really represent or mean anything. If I was a new user I would take one look at that, think that there was nothing in CP I was interested in, and go elsewhere.

I don't know if this is practical from a protocol perspective, but one idea that I think was mentioned before would be to charge a reasonably large fee for a top level asset name (E.g. BTT-Coin or BTT) and then have no or minimal fees for sub assets (BTT-Coin.gold; BTT-Coin.silver; BTT-Coin.1gold.5silver; Etc).

I also wondered if we should make a distinction between hard assets and financial assets at the protocol level or at least on the client side to allow people to find the assets they are interested in. I have always envisaged CP as a crowd funding vehicle or a way to raise money for new businesses. Obviously that is not the only application but it is the one that for me personally is most compelling to the value of the whole protocol and infrastructure.

Anyway just some thugs I've been thinking about. I'll be watching the development of BTT with interest!

EDIT: sorry for this redundant post, I wrote it yesterday but was only able to access the site now to post, and in the meantime caught up on all the other posts addressing this. Fully supportive of these suggestions!



I like the idea of a hierarchical fee structure.  Maybe GLDBTTXXXXX

Where,
GLD = Gold
BTT = Bitcoin Tangible Trust (i.e. Issuer of assets)
XXXXX = Asset ID  (i.e. individual assets in the catalog, fully redeemable thru the BTT redemption procedure, eg. silver coins)

Maybe top level names such as GLD are not even available for purchase -- they would common property of all users of the protocol -- and then BTT could pay, say, 5 XCP for the GLDBTT name, and then for each unique asset created under that name, ie. GLDBTTXXXX1, GLDBTTXXXX5, then BTT could pay, say, 0.01 XCP, or something de minimus, so as not to create a competitive disadvantage for the business model.

EDIT:  I posted this prior to reading the thread from GLaDOS referencing the idea posted earlier on the official forums.  

EDIT 2: I actually like the "dots" as proposed by GLaDOS, eg. GLD.BTT.XXXX1, makes it easier on my eyes!  =)

EDIT3: A question for everyone, should it be "GLD.BTT.XXXX1" or "BTT.GLD.XXXX1" - does it matter?  





full member
Activity: 238
Merit: 100
Hej.

I am one of the three guys who developed a trading application/framework called leonardo.  
At first we just wanted to create a better trading interface for centralized exchanges but with the built-in market abstraction layer it shouldn't be that hard to get it to talk to counterpartyd.
What do you think? Do you like the idea? Do you see problems?

More info on leonardo at:
https://bitcointalksearch.org/topic/ann-leonardo-version-24-released-trading-guibot-for-bittrex-poloniex-506317

If you have scam concerns, please read our announcement before yelling at us Wink

Looking forward to the integration between Leonardo and counterparty distributed exchange.
sr. member
Activity: 476
Merit: 300
Counterparty Chief Scientist and Co-Founder

That's a great idea. I love it. It'd be great to have such an interface to Counterparty, which indeed right now has a good deal of functionality under the hood, but is somewhat lacking in powerful and intuitive interfaces. The only potential problem I see is in trading with BTC on Counterparty, which requires a follow-up transaction (and API call) to finalize the purchase of another asset. Of course, that won't stop it from working with user-created assets and XCP.

Is the code all closed-source? What are you looking for, from us, to add Counterparty support to leonardo?

We also think counterparty and leonardo could be a great fit.
Even so leonardo is not open source (yet) and will stay that way for a while.
Until now our abstraction layer was designed for centralized exchanges in mind but I don't see a big problem in adding additional xcp related functionality (even follow-up transactions).
All we have to do is talk to counterpartyd/bitcoind locally + maybe some state/event handling, right?
I have to take a closer look at it though. Haven't had enough time to play with counterpartyd other than setting it up Smiley

Great. You actually don't have to talk to Bitcoind at all... only counterpartyd. Some state/event handling, yes. Keep us posted. If you have any questions, don't hesitate to PM or e-mail me.
legendary
Activity: 1989
Merit: 1008
I agree, it's a really great idea.

Couldn't there be client-side "automated BTCpay", though?

If I understand that correctly, than that's exactly what leonardo was built for:
Handle stuff that you don't wanna handle manually while providing the functionality via an easy to use interface Smiley
Jump to: