Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
token2049:marketplace [2019/03/12 19:24]
cryptoguard [Particl Open Marketplace]
token2049:marketplace [2019/03/12 20:12] (current)
cryptoguard
Line 47: Line 47:
  
 A unified protocol is a step in the right direction. It fosters a more open and free eCommerce experience where portability,​ not fragmentation,​ is glorified. ​ A unified protocol is a step in the right direction. It fosters a more open and free eCommerce experience where portability,​ not fragmentation,​ is glorified. ​
 +
 ===== Privacy ===== ===== Privacy =====
-The Open Marketplace is "private by design"​. This means it automatically keeps users' identities and data private without requiring any extra step from the user. The only exception to that rule is the Tor setup which isn't enabled by default for security measures.+The Open Marketplace is `private by default`. This means it automatically keeps users' identities and data private without requiring any extra step from the user. The only exception to that rule is the Tor setup which isn't enabled by default for security measures.
  
 The Particl team is committed to only use the best privacy protocols the industry offers. It also constantly research, develop, and maintain the solutions deployed in the marketplace. As absolute privacy and security is the modus operandi of the project, it supersedes anything else. This means there is no concession made that would weaken the privacy setup of the marketplace in favor of something else The Particl team is committed to only use the best privacy protocols the industry offers. It also constantly research, develop, and maintain the solutions deployed in the marketplace. As absolute privacy and security is the modus operandi of the project, it supersedes anything else. This means there is no concession made that would weaken the privacy setup of the marketplace in favor of something else
Line 54: Line 55:
  
 ==== Payments ==== ==== Payments ====
-All payments and transactions made on the Open Marketplace are untraceable by default. This is achieved by leveraging the Confidential Transactions (CT) and RingCT capabilities of the Particl coin (PART). These two protocols are integrated as the default types of payments, as specified by the OMP. **[[https://​kewde.gitbooks.io/​protocol/​content/​public-listing-format/​basic/​payment/​payment.html|Click here]]** to learn how the **Open Market Protocol** specifies payments. ​+All payments and transactions made on the Open Marketplace are untraceable by default. This is achieved by leveraging the [[https://​elementsproject.org/​elements/​confidential-transactions/​|Confidential Transactions (CT)]] and [[https://​eprint.iacr.org/​2015/​1098.pdf|RingCT]] capabilities of the Particl coin (PART). These two protocols are integrated as the default types of payments, as specified by the OMP. **[[https://​kewde.gitbooks.io/​protocol/​content/​public-listing-format/​basic/​payment/​payment.html|Click here]]** to learn how the **Open Market Protocol** specifies payments. ​
  
-CT and RingCT transactions have been historically used on the Cryptonote codebase. Yet, the Particl team has adapted these protocols to be compatible with the Bitcoin codebase, which is the codebase used for the PART coin. The Bitcoin codebase gives more flexibility,​ security, and stability to the PART coin that the Cryptonote codebase would. A good example for this is the ability for the RingCT and CT protocols to interact with smart-contracts (i.e. the Open Marketplace). The coin also uses the Bulletproofs CT protocol improvement (currently on testnet) which reduces range proofs by about 70%. This ensures marketplace payments are both anonymous and scalable at the same time.+CT and RingCT transactions have been historically used on the [[https://​cryptonote.org/​inside|Cryptonote]] codebase. Yet, the Particl team has adapted these protocols to be compatible with the Bitcoin codebase, which is the codebase used for the PART coin. The Bitcoin codebase gives more flexibility,​ security, and stability to the PART coin that the Cryptonote codebase would. A good example for this is the ability for the RingCT and CT protocols to interact with smart-contracts (i.e. the Open Marketplace). The coin also uses the [[https://​eprint.iacr.org/​2017/​1066.pdf|Bulletproofs CT]] protocol improvement (currently on testnet) which reduces range proofs by about 70%. This ensures marketplace payments are both anonymous and scalable at the same time.
   ​   ​
   ​   ​
 ==== No Metadata ==== ==== No Metadata ====
-The Open Marketplace does not generate any sort of traceable data. That much is true whether you are a buyer or a vendor. Metadata is "data about data" and can be very useful to track users. For example, pictures usually carry data such as the device used to take the picture, when it was taken, and even the precise geo-location of where the picture was taken. Any data stored off-chain on Particl'​s network is immediately stripped of all its metadata, making it impossible to trace people using metadata.+The Open Marketplace does not generate any sort of traceable data. That much is true whether you are a buyer or a vendor. Metadata is "data about data" and can be very useful to track users. For example, pictures usually carry data such as the device used to take the picture, when it was taken, and even the precise geo-location of where the picture was taken. Any data stored off-chain on Particl'​s network is immediately stripped of all its metadata, making it impossible to trace people using metadata. This behavior is enabled by Particl'​s [[https://​particl.wiki/​token2049/​marketplace#​decentralized_data_storage|SMSG Data Storage Network]].
   ​   ​
 ==== IP Address Anonymization ==== ==== IP Address Anonymization ====
Line 67: Line 68:
 ==== Open Listings ==== ==== Open Listings ====
 Open listings on Particl'​s Open Marketplace are listings that are publicly available. Anyone can search for these listings using keywords and by navigating to the correct categories. Although these listings are public, they still offer a great level of privacy as all transactions are untraceable by default. The only "​identifiable"​ data public listings reveal is a unique and anonymous vendor ID. This ID cannot, however, link to any payment address or traceable identity. Open listings on Particl'​s Open Marketplace are listings that are publicly available. Anyone can search for these listings using keywords and by navigating to the correct categories. Although these listings are public, they still offer a great level of privacy as all transactions are untraceable by default. The only "​identifiable"​ data public listings reveal is a unique and anonymous vendor ID. This ID cannot, however, link to any payment address or traceable identity.
 +
 +{{ :​token2049:​particl_desktop_177.png?​direct&​400 |}}
  
 ==== Private Markets & Listings ==== ==== Private Markets & Listings ====
Line 72: Line 75:
  
 **Private Listings** are not publicly available on the Open Marketplace and live inside private markets. They can only be accessed by first connecting to a private market, thus benefiting from an extra layer of privacy. These listings are ideal for one-to-one deals, sub-communities,​ and for when vendors want to sell items but not have them show up on the public interface of the marketplace. ​ **Private Listings** are not publicly available on the Open Marketplace and live inside private markets. They can only be accessed by first connecting to a private market, thus benefiting from an extra layer of privacy. These listings are ideal for one-to-one deals, sub-communities,​ and for when vendors want to sell items but not have them show up on the public interface of the marketplace. ​
 +
 +{{ :​video:​private_markets_token.gif?​direct&​400 |}}
  
 ===== Decentralized Escrow ===== ===== Decentralized Escrow =====
Line 77: Line 82:
  
 The escrow agent is usually trusted by the two parties and has the final say in any dispute. The escrow agent can rule in favor of any party, depending on various factors. It ensures parties that do not know or trust each other can still conduct business together. While this initially seems like a good solution, it introduces a lot of risks and disadvantages for both parties. The escrow agent is usually trusted by the two parties and has the final say in any dispute. The escrow agent can rule in favor of any party, depending on various factors. It ensures parties that do not know or trust each other can still conduct business together. While this initially seems like a good solution, it introduces a lot of risks and disadvantages for both parties.
 +
 ==== Main Issues of Centralized Escrow Systems ==== ==== Main Issues of Centralized Escrow Systems ====
  
Line 86: Line 92:
 <WRAP center round info 60%> <WRAP center round info 60%>
 For more details about escrow fees on centralized marketplaces,​ head down to the **[[https://​particl.wiki/​token2049/​marketplace?​do=edit#​fee_schedule|Fee Schedule]]** section of this page</​WRAP>​ For more details about escrow fees on centralized marketplaces,​ head down to the **[[https://​particl.wiki/​token2049/​marketplace?​do=edit#​fee_schedule|Fee Schedule]]** section of this page</​WRAP>​
- 
  
 == Privacy Concerns == == Privacy Concerns ==
Line 120: Line 125:
 ==== How Does it Work? ==== ==== How Does it Work? ====
  
-Particl uses the `BIP 65 opcode` to enable MAD escrow contracts. It locks funds in a secure multi-signature address until all the parties sign off on the transaction. ​+Particl uses the `BIP 65 opcode`, which allows a transaction output to be made unspendable until some point in the future, ​to enable MAD escrow contracts. It locks funds in a secure multi-signature address until all the parties sign off on the transaction. ​
  
 The seller starts by depositing an amount they want the buyer to match. The deposit can be between 0 and 100 percent of the purchased item’s price. However, optimal MAD odds are achieved when the security deposit equals 100 percent of the item’s price. The buyer then deposits an equal amount plus the price of the item they are buying. This double security deposit symbolizes a virtual handshake between the buyer and the vendor. ​ The seller starts by depositing an amount they want the buyer to match. The deposit can be between 0 and 100 percent of the purchased item’s price. However, optimal MAD odds are achieved when the security deposit equals 100 percent of the item’s price. The buyer then deposits an equal amount plus the price of the item they are buying. This double security deposit symbolizes a virtual handshake between the buyer and the vendor. ​
Line 127: Line 132:
  
 When both parties are satisfied with the outcome of the transaction,​ they have to confirm the transaction as complete. The payment is then released to the vendor and the security deposits are refunded to both parties at no fee.  When both parties are satisfied with the outcome of the transaction,​ they have to confirm the transaction as complete. The payment is then released to the vendor and the security deposits are refunded to both parties at no fee. 
 +
 +<WRAP center round info 60%>
 +**[[https://​github.com/​bitcoin/​bips/​blob/​master/​bip-0065.mediawiki|Click here]]** to read more about Bitcoin'​s BIP 65
 +</​WRAP>​
 +
 ==== Private-by-Design Escrow Mechanism ==== ==== Private-by-Design Escrow Mechanism ====
-Particl’s MAD escrow system renders the marketplace fully fungible. That's because all transactions are untraceable by default. In fact, not only is all marketplace content encrypted, but all currency transactions are made untraceable through the use of the  Confidential Transactions (CT) privacy protocol. This is achieved by making the MAD escrow smart-contract exclusively work with CT and forcing all transactions to have to go through it. This technique enhances privacy much more than if CT MAD escrow was optional because it dramatically increases the number of privacy transactions on the network.+Particl’s MAD escrow system renders the marketplace fully fungible. That's because all transactions are untraceable by default. In fact, not only is all marketplace content encrypted, but all currency transactions are made untraceable through the use of the  ​[[https://​elementsproject.org/​elements/​confidential-transactions/​|Confidential Transactions (CT)]] privacy protocol. This is achieved by making the MAD escrow smart-contract exclusively work with CT and forcing all transactions to have to go through it. This technique enhances privacy much more than if CT MAD escrow was optional because it dramatically increases the number of privacy transactions on the network.
  
 Another privacy-enhancing aspect of the MAD escrow mechanism is its lack of third-party acting as escrow agent. In fact, in most centralized escrow system, conversations between the buyer and the seller are available to the escrow agent. This is so the escrow agent can step in if any problem arises and issue a resolution based on the context. This puts a lot of power into the agent'​s hands and assumes it is acting in an honest way.  Another privacy-enhancing aspect of the MAD escrow mechanism is its lack of third-party acting as escrow agent. In fact, in most centralized escrow system, conversations between the buyer and the seller are available to the escrow agent. This is so the escrow agent can step in if any problem arises and issue a resolution based on the context. This puts a lot of power into the agent'​s hands and assumes it is acting in an honest way. 
  
 By not requiring any third-party,​ the Open Marketplace'​s escrow system preserves the privacy of both parties. Any transaction detail or conversation is only available to the transacting parties and no one else. By not requiring any third-party,​ the Open Marketplace'​s escrow system preserves the privacy of both parties. Any transaction detail or conversation is only available to the transacting parties and no one else.
 +
 +<WRAP center round info 60%>
 +Particl'​s decentralized escrow system will use **RingCT** instead of CT once it hits mainnet
 +</​WRAP>​
  
 ==== Scalability ==== ==== Scalability ====
Line 138: Line 152:
  
 ===== Decentralized Moderation ===== ===== Decentralized Moderation =====
- 
- 
 As a fully decentralized solution, Particl'​s Open Marketplace doesn'​t rely on hired moderators to keep its content clean. It is instead governed by its community of holders rather than a team of staff or a third-parties. As a fully decentralized solution, Particl'​s Open Marketplace doesn'​t rely on hired moderators to keep its content clean. It is instead governed by its community of holders rather than a team of staff or a third-parties.
  
 Since it is fully anonymous, it is not unlikely that undesirable items and services would be listed for sale. This is why there has to be a way to moderate the marketplace. This ensures the marketplace preserves its legitimacy and that it doesn'​t become an enabler of immoral businesses and activities. Having a third-party as moderator introduces a whole lot of issues such as legal liability, centralization of power and decision making, lack of scalability,​ and friction. Since it is fully anonymous, it is not unlikely that undesirable items and services would be listed for sale. This is why there has to be a way to moderate the marketplace. This ensures the marketplace preserves its legitimacy and that it doesn'​t become an enabler of immoral businesses and activities. Having a third-party as moderator introduces a whole lot of issues such as legal liability, centralization of power and decision making, lack of scalability,​ and friction.
 +
 +{{ :​token2049:​particl.png?​direct&​400 |}}
  
 Particl’s way to deal with this problem is to allow its own community of users to be the moderators. In fact, all listings can be flagged by any user. Votes are tallied based on coin weight where one coin equals one vote. The more coins a user holds, the more influence he has over the outcome of a flagging vote. Particl’s way to deal with this problem is to allow its own community of users to be the moderators. In fact, all listings can be flagged by any user. Votes are tallied based on coin weight where one coin equals one vote. The more coins a user holds, the more influence he has over the outcome of a flagging vote.
Line 148: Line 162:
 Once a certain weight threshold is reached (temporarily set at 9,000 coins for the time being), the listing is taken out of the marketplace. This also applies to private listings even though they do not appear on the public interface of the marketplace. Anyone with access to a private market can flag its listings, although it may prove much more difficult to reach the threshold. Once a certain weight threshold is reached (temporarily set at 9,000 coins for the time being), the listing is taken out of the marketplace. This also applies to private listings even though they do not appear on the public interface of the marketplace. Anyone with access to a private market can flag its listings, although it may prove much more difficult to reach the threshold.
  
 +===== Data Data Storage =====
 +**[[https://​kewde.gitbooks.io/​protocol/​content/​data-storage-network/​overview.html|Data Storage Networks (DSN)]]** are used on Particl to store any data (i.e. marketplace-related data such as images) off-chain. Contrary to on-chain storage, this allows the platform to scale well regardless of the amount of data it uses. This form of storage works without relying on servers and without centralizing powers into masternodes. The default (and for the moment, the only) DSN used on Particl is SMSG. It is a P2P BitMessage-like message mixnet that runs parallel to Particl'​s blockchain. It is hosted on the same nodes that run the Particl blockchain.
  
- +{{ :dsn.png?​direct&​400 |}}
-===== Decentralized Data Storage ===== +
-Data Storage Networks (DSN) are used on Particl to store any data (i.e. marketplace-related data such as images) off-chain. Contrary to on-chain storage, this allows the platform to scale well regardless of the amount of data it uses. This form of storage works without relying on servers and without centralizing powers into masternodes. The default (and for the moment, the only) DSN used on Particl is SMSG. It is a P2P BitMessage-like message mixnet that runs parallel to Particl'​s blockchain. It is hosted on the same nodes that run the Particl blockchain.+
  
 DSN is a generic term that describes a specific set of software with the purpose of storing and retrieving data on the internet. The usage of the term DSN is simply a layer of abstraction. It is not required to know how a specific DSN works internally as long as it can store blobs of data and later retrieve them using a comparable cryptographic identifier. Popular DSNs include BitMessage, IPFS, SMSG, HTTPs, TOR, and etc. DSN is a generic term that describes a specific set of software with the purpose of storing and retrieving data on the internet. The usage of the term DSN is simply a layer of abstraction. It is not required to know how a specific DSN works internally as long as it can store blobs of data and later retrieve them using a comparable cryptographic identifier. Popular DSNs include BitMessage, IPFS, SMSG, HTTPs, TOR, and etc.
Line 157: Line 171:
 A small hash of the hosted content is created and stored on the Particl blockchain when it is used to store data on a DSN. To verify the integrity of data when the client retrieves it back from the DSN, its hash is recomputed and compared with the one stored on the Particl blockchain. The data is considered trusted if the hashes match, and rejected by the platform if they don’t. A small hash of the hosted content is created and stored on the Particl blockchain when it is used to store data on a DSN. To verify the integrity of data when the client retrieves it back from the DSN, its hash is recomputed and compared with the one stored on the Particl blockchain. The data is considered trusted if the hashes match, and rejected by the platform if they don’t.
  
 +<WRAP center round info 60%>
 +**[[https://​kewde.gitbooks.io/​protocol/​content/​data-storage-network/​overview.html|Click here]]** to read more about Data Storage Networks (DSN)
 +</​WRAP>​
  
 ===== Secure Messaging ===== ===== Secure Messaging =====
-SecureMessaging (SMSG), the DSN used to store data off-chain, is also used as the messaging protocol for the marketplace. It is a decentralized P2P message mixnet where all nodes store a copy of everyone'​s end-to-end encrypted messages and data for a duration of 48 hours (which can be increased for a fee). It is the default and most private DSN available for use on the platform. The reference implementation is developed in C++ and incorporated into the Particl daemon. It operates parallel to Particl'​s network and is hosted on the same nodes running the blockchain.+**[[https://​kewde.gitbooks.io/​protocol/​content/​data-storage-network/​smsg.html|SecureMessaging (SMSG)]]**, the DSN used to store data off-chain, is also used as the messaging protocol for the marketplace. It is a decentralized P2P message mixnet where all nodes store a copy of everyone'​s end-to-end encrypted messages and data for a duration of 48 hours (which can be increased for a fee). It is the default and most private DSN available for use on the platform. The reference implementation is developed in C++ and incorporated into the Particl daemon. It operates parallel to Particl'​s network and is hosted on the same nodes running the blockchain. 
 + 
 +{{ :​smsg.png?​direct&​400 |}}
  
 All nodes continuously attempt to decrypt every incoming message, but can only succeed if the node is able to recalculate the HMAC hash accompanying the message. If the hash check fails, then it can not be decrypted by the node, which means the message was either fraudulent, tampered with or meant for another node. SMSG messages are stripped from of any metadata, therefore it is impossible for anyone to extract information such as IP addresses, sender or receiver. The only metadata not stripped from SMSG messages are the hash, the encryption payload, and a temporary public key. All nodes continuously attempt to decrypt every incoming message, but can only succeed if the node is able to recalculate the HMAC hash accompanying the message. If the hash check fails, then it can not be decrypted by the node, which means the message was either fraudulent, tampered with or meant for another node. SMSG messages are stripped from of any metadata, therefore it is impossible for anyone to extract information such as IP addresses, sender or receiver. The only metadata not stripped from SMSG messages are the hash, the encryption payload, and a temporary public key.
 +
 <WRAP center round important 60%> <WRAP center round important 60%>
-The first mainnet version of Particl'​s Open Marketplace will not contain any messaging option. This functionality will be added during the Beta stage of development as one of the Release Candidates.+The first mainnet version of Particl'​s Open Marketplace will not contain any messaging option. This functionality will be added during the Beta stage of development as one of the Release Candidates. **[[https://​kewde.gitbooks.io/​protocol/​content/​data-storage-network/​smsg.html|Click here]]** to read more about SMSG.
 </​WRAP>​ </​WRAP>​
  
Line 172: Line 192:
  
 The integration of other coins can be achieved in two ways. The integration of other coins can be achieved in two ways.
- 
  
 == Atomic Swaps ==  == Atomic Swaps == 
Line 197: Line 216:
  
 ===== Fee Schedule ===== ===== Fee Schedule =====
-Marketplaces usually have pretty complicated ​and extensive fee schedules. Depending on various variables such as what kind of products you sell, the number of transactions you do, your membership subscription plan, your feedback, and similar sets of data, fees can vary greatly. The total cost associated with selling online usually includes a listing fee, a final value fee  (sales fee taken on the value of the item), a subscription fee, a payment processing fee, escrow fee, and more. This is a direct consequence of using third-parties (centralized marketplaces). Every party that contributes to a transaction wants a “piece of the pie” and get paid for the services they offer. This is perfectly normal and expected.+Marketplaces usually have pretty ​[[http://​www.wheretosellonline.com/​marketplace-comparisons/​compare-fees-pricing/​|complicated ​or extensive fee schedules]]. Depending on various variables such as what kind of products you sell, the number of transactions you do, your membership subscription plan, your feedback, and similar sets of data, fees can vary greatly. The total cost associated with selling online usually includes a listing fee, a final value fee  (sales fee taken on the value of the item), a subscription fee, a payment processing fee, escrow fee, and more. This is a direct consequence of using third-parties (centralized marketplaces). Every party that contributes to a transaction wants a “piece of the pie” and get paid for the services they offer. This is perfectly normal and expected.
  
 Particl'​s Open Marketplace has a different approach. Because the marketplace is run collectively by its users, there is no operational cost associated with it. There is also no company looking into making profits out of its operation. This allows the marketplace to charge the bare minimum for it to operate.  ​ Particl'​s Open Marketplace has a different approach. Because the marketplace is run collectively by its users, there is no operational cost associated with it. There is also no company looking into making profits out of its operation. This allows the marketplace to charge the bare minimum for it to operate.  ​