What is the incentive to run a Counterparty node?

Bitcoin has a brilliant incentive system to keep its network decentralized and robust. How can Counterparty build a similarly strong network? What is a person’s incentive to run a Counterparty node?

Counterparty runs on the same network as Bitcoin.
The incentive is the same - you want access to bitcoin/counterparty services or have an app that relies on them.
Counterparty server adds a very small amount of overhead on top of Bitcoin, so the added cost of running dual (Bitcoin/Counterparty) nodes is not significant.

The incentive is definitely not the same. Most of the machines running bitcoind are doing so in order to mine BTC. That’s why the Bitcoin network is so strong. I’m concerned that, with the lack of an incentive system, there will never be very many machines running counterpartyd which will result in a relatively insecure network.

Here’s why people run full nodes (without mining):

Full nodes form the backbone of the network. If everyone used lightweight nodes, Bitcoin could not exist.
Network services

Full nodes provide various services to other network participants. This is especially important for lightweight nodes.

These services include:

  • Filtering transactions and blocks on behalf of lightweight nodes so that lightweight nodes do not need to download every transaction ever made on the network in order to find their own transactions.
  • Serving historical full blocks to nodes that have been offline for a while.
  • Transmitting new transactions from users to miners.
  • Broadcasting new blocks from miners to other nodes.

Source: https://en.bitcoin.it/wiki/Full_node

People run Counterparty servers for these same reasons, to serve users the bitcoin and Counterparty network.

I see there’s about 6000 nodes online, and F2pool which has a 25% share has 532 miners in May 2015, so your statements is unlikely to be true. But regardless of why someone runs a full bitcoin node, Counterparty benefits from that.

Counterparty nodes run on top of the bitcoin network and uses the blockchain. There is no separate Counterparty concensus.

I understand why it’s good that people run full nodes. What I’m concerned about is that the thing (mining incentive) that makes the Bitcoin network strong (widely proliferated) doesn’t exist for the Counterparty network which will result in it not being strong (not widely proliferated).

Counterparty nodes run on top of the bitcoin network and uses the blockchain. There is no separate Counterparty concensus.

I understand that Counterparty interfaces with Bitcoin. But maybe I don’t understand how the Counterparty network functions. For example, if a smart contract needs to be executed, it is executed amongst the machines running counterpartyd and a consensus regarding the result of the smart contract’s execution is achieved that way, correct?

See https://www.reddit.com/r/counterparty_xcp/comments/2w6nbs/technical_knowledge/

So if I buy a token on Koinify for example, who’s instance of counterpartyd writes my purchase to the blockchain?

Koinify’s instance of counterpartyd does.

But it can’t make things up. A counterparty transaction is a bitcoin transaction. Say you send 1 BTC from address A to Koinify’s one-off address B which they provided to you and your transaction is happening today, within (say) Phase I during which you get 2000 tokens XYZ for 1 BTC.
Later you login to your wallet hosted there and you see 2000 tokens in it. I used Koinify myself and I believe (but you can check) only wallet owners have access to their wallets, it’s just that at this time there’s no way to get the private key or “Send” button in their GUI.
After the announced period of time, you can send those tokens out.

When you send them, you make and sign a transaction using the private key for the address, and Koinify’s counterparty server merely broadcasts it to the bitcoin network. They can’t make it up - they can only broadcast it or not.

I see. So Counterparty isn’t so much a layer on top of Bitcoin as it is a layer underneath a third-party app. There really is no Counterparty network, it’s just another component you can add to your own application stack when talking to Bitcoin. End users don’t need to be concerned about whether the application they’re using is built on Counterparty or not since it’s just another centralized component of the third-party app they’re using. Do I have that right?

You could say counterparty is a layer on top of Bitcoin that reads Counterparty data stored in the blockchain, but it does not use its own blockchain, network or concensus.

Users don’t have to be particularly concerned about Counterparty, in essence any similar approach would rely on Bitcoin/blockchain. But in order to read or write that data, they need to use the Counterparty API/CLI (e.g. you can’t use MasterCoin API to work with Counterparty data, and vice versa, although they both work in similar ways).

1 Like

Is it fair to say that Counterparty in action is a centralized service?

Its centralization or decentralization is similar, or maybe even the same as Bitcoin. When it was necessary, Bitcoin devs acted in a way that wouldn’t be possible without certain degree of centralization that Bitcoin has.

I am setting up bitcoin full node. So if I run that need I install Counterparty also to make it support Counterparty servers same time or only Bitcoin?

IMO - The only incentives to run a counterparty node is because you need to query an indexed version of the system state. Typically that’s developers, and people hosting the counterwallet.

The nice thing about Counterparty, is that since the Bitcoin miners provide all the security, It wouldn’t matter if we had no nodes at all. As soon as someone wanted to start interacting with us, they would spin up their server, index the blockchain and be ready to go.


The number of nodes has no effect on counterparty consensus. There are no “nodes” in the bitcoin sense.

There are only parsers that parse the bitcoin blockchain to determine a ledger of balances.

Anyone can fork counterparty and alter the code to give themselves 1 million XCP on their own instance. But no one else running the correct code will see that balance.


This is kind of a question that’s at the heart of the BTU vs BTC debate at the moment. Who chooses to accept what? In the case of bitcoin, it’s possibly as simple as “Who burns the most energy” . But, some exchanges are instead opting to choose a team (Core) as the aribiters of the answer to “What is the correct bitcoin?”, and intstead assigning BTU a new ticker symbol.

Counterparty has a similar problem in this sense. Since there is no work, how do you determine what’s the correct implementation of counterparty? No one knows. Thus far it hasn’t been an issue. But, the answer may lie with the exchanges, and the merchants/users who are transacting in Counterparty assets.