Abstract. A cryptocurrency based on Bitcoin and Counterparty. With various improvements for fair token distribution and security, the network is optimized for worldwide project crowdfunding.
Bitcoin is a cryptocurrency that has emerged as a popular medium of exchange and is the first digital currency that has attracted a substantial number of users. Since it’s inception in 2009, Bitcoin has been rapidly growing in mainstream adoption and merchant usage. A main issue with the acceptance of Bitcoin in point-of-sale situations is the time required to wait for the network to confirm the transaction made is valid, alternatively payment companies have created methods to allow vendors to take zero-confirmation transactions, but these solutions utilize a trusted counterparty to mediate the transaction outside of the protocol.
The Public Coin (TPC) is a peer-to-peer based crowdfunding network that, has similar properties of other cryptocurrencies such as Bitcoin, with various improvement such as accelerated network transaction confirmation mechanism (ANTCM) and gradual token distribution curve. TPC project believes that under the secure proof-of-work design fully solves the security and centralization problems with earlier proof-of-work coins, as well as the increasing centralization problems faced by proof-of-stake systems. As such, TPC is the first peer-to-peer cryptocurrency, regardless of technology, that is secure, cost-efficient and decentralized in the long run.
On top of the token TPC, a layer of smart contract based on Counterparty is implemented, TPC is the foundation of decentralized and fair project funding network, allowing innovation over the world funded with TPC worldwide. Traditional crowdfunding take a 5-10% commission off the total funded amount. This greatly depend on transaction parties involved, service provider that the project uses and so on. Under TPC, the contract and funding is governed by the TPC network, therefore the fee and commision is zero when the network fee that is paid by users is not taken into considered. Both users and project funding issuer does not suffer from counterparty risk of platform and payment system. Funding will be released once criteria of a funding project is met.
TPC transaction messages have the following components:
●Destination addresses (optional)
●A quantity of bitcoins sent from the sources to the destinations, if it exists.
●A fee, in tpc, paid to the TPC miners who include the transaction in a block.
●Some ‘data’, imbedded in specially constructed transaction outputs.
Every TPC transaction carrying a funding transaction has the following possible outputs:
●zero or more destination outputs,
●zero or more data outputs, and optional change outputs.
All data outputs follow all destination outputs. Change outputs (outputs after the last data output) have no significance.
Confirmation and validation
We define token as a chain of digital signatures. Any unspent transaction output (UTXO) could be spent by the private-key holder of the corresponding address, by issuing a digital signature to the network. The network transaction confirmation mechanism (ANTCM) utilizes the memory pool of the transaction confirming miners on the network. When the digital signature is published by a node, it is efficiently propagated to the network in a peer-to-peer manner. Due to the shorter confirmation time design of TPC, transactions could be processed 4 times faster than traditional chain-based transaction recording network.
When transaction is confirmed by the miner, the result of confirmation will be immediately propagated to the network in the same efficient peer to peer manner.
Given the efficient and secure network design of TPC, the network could be appended with project funding mechanism that is decentralized. We treat project as assets on network as projects of crowdfunding will entitle users to perks, stakes and so on. All assets except TPC have the following properties:
●Call date (if callable)
●may be delayed with later issuances
●Call price (if callable) (non‐negative)
●may be increased with later issuances
Newly registered asset names will be either (unique) strings of 4 to 12 uppercase Latin characters (inclusive) not beginning with ‘A’, or integers between 26^12 + 1 and 256^8 (inclusive), prefixed with ‘A’. Alphabetic asset names will carry a one‐time issuance fee (by burn) of 0.5 TPC and numeric asset names will be freely available. ‘TPC’ is the only three‐character asset names. Example asset names: BBBB, A100000000000000000.
Assets may be either divisible or indivisible, and divisible assets are divisible to eight decimal places. Assets also come with descriptions, which may be up to 52 single-byte characters long and updated at any time.
The most basic kind of asset must specify:
●who is issuing it (source)
●the name of the asset (asset)
●how much of asset is being issued (quantity)
●a description of asset (description)
It is possible to issue more of asset, but, at any one time, there can only be one address which issues asset. With that said, the TPC protocol allows source to transfer issuance rights of asset. Moreover, an asset can also be locked, so that there can be no further issuances of it.. A description must always be included, even if description is just an empty string; the syntax of an asset with no description is description="".
Beyond creating the most basic asset, it is also possible to make assets either divisible or callable. If an asset is made divisible (or callable) upon its initial issuance, it must always be divisible (or callable) with every issuance thereafter. A divisible user-created asset is, like, Bitcoin and TPC, divisible up to 8 decimal places. A callable asset is an asset which the issuer can call back (i.e. repurchase) from its owners at a date (call-date) and for a price (call-price) specified at the initial issuance.
By implementing Ethereum’s entire smart contracts platform TPC enables users to write Turing Complete smart contracts into the TPC blockchain and execute those contracts in a completely decentralized and trustless manner.
TPC contract language is fully compatible with Ethereum’s with the exception of the following minor incompatibilities:
●Two EVM opcodes (COINBASE and GASLIMIT) involved in mining were removed because XCP is unmined.
●The new ASSET_BALANCE opcode may be used to retrieve the balance of native Counterparty assets and BTC. It takes two inputs (address and asset_id) and returns one value (the balance of the address in the asset named). It has the same gas cost as BALANCE (which looks only at XCP).
●The new SEND opcode may be used for sending native Counterparty assets to Counterparty (Bitcoin) addresses. SEND has three inputs (address, quantity, asset_id) and no outputs; it has the same cost as CALL.
The basic fee structure of TPC Contracts is very similar to that of Ethereum. Different computational or storage operations will be associated with different fees, to prevent abuse of the system. Contract execution fees will be paid only in TPC, the native currency of TPCX (it would not be possible for them to be paid in Bitcoin). The contract system will be fully compatible with the existing TPC asset system and decentralized exchange.
The economics of the fee system for Counterparty Contracts are necessarily rather different from those of Ethereum, simply because there are no Counterparty miners. All Counterparty nodes will execute all contracts, and it will be the holders of TPC that receive the fees for the execution. The simplest and most robust way to make this payment will be just to destroy the fees, and to thereby reduce the money supply, as this is equivalent to paying the fee out to all holders of TPC in proportion to the size of their holdings.
Unlike with Ethereum, the fees will not be constant values, but rather fractions of the total extant supply of TPC , so that no amount of computation will deplete the supply of TPC and drive it into negative territory: the divisibility of TPC ensures that there will always be enough TPC.