Pages:
Author

Topic: [ANN] USSC Crypto-P2P-Server | Decentralized P2P Exchange & Application (Read 4774 times)

newbie
Activity: 224
Merit: 0
Bitcoin and other altcoins are best suited to operate as lower level applications and should not be designed for direct end-user control or use. Like web browsers use tcp/ip for lower level operations, the Bitcoin application and protocol should operate much the same way. End-user applications and services need to be built on top of the Bitcoin protocol and application.


I left out:
"Should use client side passphrase and server side passphrase to give access to encrypted user account on virtual server."

The above should stop any server admin/owner from trying to hack any specific users account. Client side passphrase + server side passphrase = access key to access user account on virtual server. Using combined key, client side can access server side Db for that specific user account only. Kind of like how the truecrypt client accesses an encrypted hard drive. Nothing is stored on the users client side. Server side can be configured to use third-party authentication if necessary [i.e other website, yubi-key, etc...]

An europian platform is launching cryptocurrency exchange named as blockchain.io. One can visit the webpage and get more information about the same. This exchange ensures quick transaction in lesser time and will work globally.
legendary
Activity: 2436
Merit: 1187
Hi! so.. what abt your meditating? did you leave p2p exchange idea?
member
Activity: 84
Merit: 10
Sorry for taking so long to update this thread.

I am currently researching & meditating on other ways to solve some of the problems we are facing for a decentralized p2p exchange.

(I WILL POST TOMMOROW OR DAY AFTER NEXT...   CHECK BACK THEN.)
member
Activity: 84
Merit: 10
User Account Consensus

By keeping more than one instance of a specific virtual-server online it is now possible to have them use a consensus to perform valid transactions. (I will get back to Bob and Alice's transaction later).



member
Activity: 84
Merit: 10
Blockchain vs "Federated" p2p system.

I must admit that the system being designed on this thread is indeed a "federated" type system. Any p2p exchange is going to have to have some sort of federation in order to be successful.

What will make the system liberated are the various p2p exchanges interlinked through contract agreements enforced by protocols built into the system. As I explained in an earlier post, a group such as Anonymous could produce a p2p exchange in their name then interlink it to another group such as Kim Dotcom's Mega. Both could have connections to Fiat converting sites such as MTGOX and BTC-e.  Users could choose which p2p exchange they wanted to have their account on, then be able to move that account to another p2p exchange if so desired.

Because this system is built on an application stack there is no need to "reinvent the wheel". The blockchain would still be utilized by the bitcoin/litecoin/cryptocurrency clients at the bottom of the stack.

Being a federated system the owners of the system should allow anyone to join as an admin (so they both can make money). The admin would charge a transaction fee to the end-user if his server is used in any transactions. This allows the federated system to be open to anyone interested in becoming an admin and deploying a physical server to house virtual-servers on the network.

The sec-coins would allow a measure of control over the entire p2p network. The sec-coins would only be seen by administrators on the network.



 

member
Activity: 84
Merit: 10
Hello,

Things seem to be drifting in a direction which is pretty far away from the original goals. Users creating alt coins?

All the end user wants is some software he can run, which will facilitate a secure currency exchange without any need for a central server. That is the goal. I think you should focus on that and keep all the other good ideas for another time and another project.

-Michael



Sorry I have been away a few days. Been a little under the weather. But I am back now.

Michael,

The end-users would not have to create anything.  Just install a plug-in into their bitcoin software.

You asked me in a previous post about security measures in the p2p exchange. The security coins (sec-coins) are a supplemental method keep secure the p2p network infrastructure.

The processes that I am writing about on here are background processes that the end-user does not see.

The end-user would not ever see the sec-coins. His client would perform all of the validations. All the user does is click yes or no to confirm the transactions.

Please understand that p2p networks are decentralized by nature; so, not all of the server operators are going to be honest, good hearted people. So the network must be designed to be functional while keeping a good measure of security to protect the end-user accounts.

This thread and my design are geared mostly toward software developers and system admins who would be interested in developing or deploying such a system.
member
Activity: 117
Merit: 10
Hello,

Things seem to be drifting in a direction which is pretty far away from the original goals. Users creating alt coins?

All the end user wants is some software he can run, which will facilitate a secure currency exchange without any need for a central server. That is the goal. I think you should focus on that and keep all the other good ideas for another time and another project.

-Michael
member
Activity: 84
Merit: 10
More tomorrow.  I may show how to deploy sec-coins and best practices.  If you have any questions, please post.


Note for tomorrow:

Sec-coins can be used in email to validate email in place of a signing key.
member
Activity: 84
Merit: 10
Use a Proof Of Stake Alt-Coin
As much as I do not like "Proof of Stake" coins, I have to admit that they are better to use for sec-coins.  The reason for this is because sec-coins are purposely pre-mined. What that means is that the pre-miner should be the largest stake holder.
Being a "Proof of Stake" sec-coin, any attack against the sec-coin will be far more expensive for the attacker as opposed to using a "Proof of Work" sec-coin.

Keep The Sec-Coin Secret
Once you download the open source version of this p2p software (when it is made) and are going to customize and use your sec-coin; do not release the newly customized alt-coin that you are going to use as a sec-coin.  Do not release the customized source code. Do not release the software clients binaries after you have compiled them. What I am saying is, keep the sec-coin secret and confidential. This is going to be the foundation of your p2p network security. Do not announce pre-mining operations to anyone.  You don't want anyone else mining your sec-coins while your pre-mining operation is going on.

*I am not saying that I will develop this p2p software that I am designing, but I imagine the developer of the software will release the code as open source (as per my request at the beginning of this thread).


Set a Hard Limit on each Sec-Coin you create
Pre-mine each set of sec-coins to the hard limit.  If you set a hard limit on each set of sec-coins that you pre-mine and you mine it to the hard limit; no more coins can be made after your pre-mine operation is over.  If you pre-mine one million sec-coins then make sure no more can be made afterward.  Pre-mine multiple sets of sec-coins for different purposes and security levels.

Keep Track of the Sec-Coins You Pre-Mine
Keep count of the sec-coins that you have pre-mined. Since you pre-mined the sec-coins to the hard limit, you now are obligated to keep count of the coins. If you lose any sec-coins that you have pre-mined, they can potentially be used against you if a hacker gets his hands on them.

Wholly Abandon Any Set of Sec-Coins If Some Of The Coins Are Lost or Stolen
If a rogue admin sells some of the sec-coins that you made, or you somehow lost some; then you need to wholly abandon that particular set of the pre-mined coins. If you have pre-mined multiple sets of sec-coins just replace the set with another or pre-mine some more. Whatever you do, I urge you - Do not use any of the sec-coins from the set that was compromised. Dump them on the market (they may have value if your p2p exchange is popular) or throw them away.  Once again I tell you: If you lose any sec-coins that you have pre-mined, they can potentially be used against you if a hacker gets his hands on them.


 




(CHECK BACK TOMORROW FOR MORE UPDATES...   THANKS EVERYONE!)
member
Activity: 84
Merit: 10
Append the Sec-Coin Wallet Address To The Name Of The Node
Name the sever nodes on the network with their corresponding sec-coin wallet address appended so that users and end-user clients can view the sec-coin blockchain to verify that the server performing the transaction actually has sec-coins and enough of them to perform the task. If a rogue server-node spoofs a sec-coin wallet address and attempts to perform a transaction on the p2p network, the transaction will be denied because the rogue node doesn't have any or enough sec-coins to complete the transaction.  Verify the transaction afterward by examining the sec-coin blockchain to see if the balance has changed.  If the balance is still the same then you know a rouge server was spoofing a valid servers wallet address.  When the transaction confirmation comes back to you, deny the confirmation.  If you know that a sec-coin transaction costs five sec-coins and the balance has changed by four; again, deny the transaction confirmation when it arrives.





(I AM GOING TO TAKE A BREAK... BE BACK LATER)
sr. member
Activity: 392
Merit: 250
♫ A wave came crashing like a fist to the jaw ♫
member
Activity: 84
Merit: 10
Hey, can I get some feedback.  What do you think about alt-security-coins?  What should I call them?

1. Secoins
2.Seccoins
3. Sec-coins
4. s-coins
5.Huh
member
Activity: 84
Merit: 10
If you are reading this or printing this out then you might want to re-read or re-print this thread. I have made changes to the configuration and security practices. Most of the changes are on from the Disposable Wallet Section.


ALT-COIN SECURITY

USE WORTHLESS ALT COINS TO DO TRANSACTION VERIFICATION BETWEEN NODES.

All of these new alt coins being created everyday are not necessarily a bad thing. Crypto-coins and their corresponding blockchains can be used for other things besides money. Like securing transactions between P2P nodes. You can use worthless alt coins as transaction verifiers throughout the entire p2p network; and its more secure than using CA certs, pre-shared keys, or other more complicated security setups.

For high security, don't use other alt coins. Make your own customized alt coin for the same purpose. You don't have to worry about double spend attacks because you are only using it for the purpose of securing transactions for the p2p network and you are the only one with access to the coin. Make a coin that is fast and can be mined easily. Afterward, pre-mine it to the hard-limit with enough coins to support the entire network. You wont have to worry about it retaining a monetary value because its pre-mined. Don't give any coins out to anyone except server admins. It shows the users on the exchange that a server admin is validated because no one should have the coins except for server admins.


The good thing about alt-coin security is that no one will have your coin except you. As long as none of the admins don't send their coins to other people. If they do you can find out by doing an blockchain analysis. If no one has your coins except for you then that makes it much harder for a hacker to compromise the p2p network integrity.


Security-Coin Validation
Use the blockchain to verify where the security-coins came from. If a server node sent you security-coins from a wallet address of ABCDEFG1234567 to validate a specific transaction you can verify where the security-coins came from by doing a blockchain analysis. The analysis will show where the security-coins came from. If the security-coins came from an address that you do not know or is not listed in the security list you know not to perform the said transaction. It that simple. No ACLs, no certs, no keys, just alt-security-coins.

High Level Security-Coins
For sensitive servers such as high level wallet-bots use a different security-coin than that which is used by the rest of the network. Only give it out to server admins that are high level. This provides an additional layer of security within the p2p network.

Keep Track Of Every Coin
The head of the p2p network can disburse security-coins to the server admins for transaction verifications and tolls on the network.  As the security-coins travel from the server admins to other nodes, you can make nodes to collect the security-coins and bring them back to you. A security-coin audit can show if any security-coins were lost and where they went and who lost them. This provides better security than other methods; in addition, if a server admin and his nodes are booted or fired from the p2p network you can blacklist his wallet address or refuse to give him more security-coins to perform transactions and pay tolls on the network.

Transaction Tolls
Transaction Tolls provide a way to control and maintain the p2p network. Certain nodes require certain security-coins and a specific amount. For example, a high level transaction involving a large sum of money might require a larger amount of security-coins before the transaction will take place. Only admins with that amount of security-coins will be able to perform the said transaction.

Security-Coin Dual Wallet Application
I recommend coding a dual-wallet application for the wallet-bots. Code the wallet application so that the Bitcoin/Litecoin wallet will not send cryptocurrency to anyone unless there is a sufficient amount of security-coins to perform the said transaction. You can hard code the security-coin amounts based on how much cryptocurrency is sent. This would make it much harder for a hacker to get the bot to send coins to an illegal wallet address.

 






member
Activity: 84
Merit: 10
Tomorrow I will show how home-virtual-servers can use a consensus to call forth a wallet-bot to perform a transaction.

Thanks for everyone's support.
member
Activity: 84
Merit: 10
Wallet-virtual-servers - AKA wallet-bots

A wallet-virtual-server just has one purpose. That purpose is to:
 
1. To retrieve the wallet private key segments, assemble them, then import the whole private key into the Bitcoin/Litecoin client.
2. Conduct the transaction.
3. Generate a new disposable wallet.
4. Transfer any leftover change from the previous transaction to the new disposable wallet address (This will be an non-redeemed transaction in the blockchain).
6. Discard the old disposable wallet.
5. Redistribute the new disposable wallet private key segments among the home-virtual-servers in the p2p network.
6. wipe memory / reboot / whatever is necessary to forget the newly generated key.

Now wallet-bots have rules:

1. Wallet-bots cannot store any information.
2. Wallet-bots cannot retrieve key segments on its own.
3. Wallet-bots cannot retrieve the same key segments that it has disbursed to the p2p network.
4. Wallet-bots are designed to work in groups. A $25,000 USD transfer transaction would require 25 wallet-bots with each bot handling one transaction of $1000 USD.

Quote
Note: A rogue wallet-bot can be mitigated by setting a TTL (Time To Live) on the disposable wallet. This is set by the home-virtual-servers that hold the private key segments. When the TTL is expired a different wallet-bot will be used to generate a new address/key and transfer the holdings to the new wallet address; then reallocating the segments to different servers on the p2p network.  

If a rogue bot did manage to steal coins from the network then the p2p network would immediately revoke the keys of the bot, identify the owner/admin of the bot, boot the bot from the p2p network, and the loss would be no more than $1000 USD.

An insurance bot would then activate and complete/replace the transaction of $1000 USD. The funds would come from insurance fees charged to the owners of the servers on the p2p network.

It is best to charge insurance fees to the admins on the p2p network. The admins would recoup the cost by charging transaction fees for the use of their server.  

If an admin's server was used in any transaction on the p2p network, the admins could charge a transaction fee to the users involved in the transaction.  This also gives admins incentive to be honest in service operations.





member
Activity: 84
Merit: 10
Disposable wallet method can be further secured using the following means:

1. Add a TTL (Time To Live) to the disposable wallet. Whether there is a pending transaction or not, set a TTL on the disposable wallet. This way a rogue admin would only have a limited time to try an attack to collect all of the partial key pieces from the servers in the p2p network.

2. Because there are replicated virtual servers keep more than one online. I know I said earlier to keep one virtual server online and the replicated copies offline. But now I have changed my configuration and design. Keep more than three virtual servers online at a time. Split the partial keys up between the online copies, offline copies, and other semi-offline virtual servers that are not linked to that particular virtual server. for example:

NY-p2p-Server
home-virtual-server-002......online......wallet-key-home-virtual-server-002-bank-001-wallet-004.dat-segment-A-XXXXXX-A-segment-end
home-virtual-server-005......offline......wallet-key-home-virtual-server-005-bank-005-wallet-002.dat-segment-G-XXXXXX-G-segment-end
home-virtual-server-007......offline-monitored......wallet-key-home-virtual-server-003-bank-001-wallet-001.dat-segment-M-XXXXXX-M-segment-end
home-virtual-server-009......online......wallet-key-virtual-server-009-bank-003-wallet-003.dat-segment-P-XXXXXX-P-segment-end

This way a rogue admin would have to hunt the keys down outside of his home-virtual-server groups. The final key he may need may be on a home-virtual-server that he doesn't even know exists on a physical server on the other side of the globe.


3. Rotate newly generated disposable wallet partial keys among the home-virtual-servers.

4. Make sure each generated key is large enough to be split into 25 parts. Split then label each part from A through Y or B through Z.

5. NEVER KEEP MORE THAN $1000 IN ANY WHOLE DISPOSABLE WALLET.  I will explain why later when I explain about wallet-servers or wallet-bots. I will also introduce you to another wallet called an insurance-wallet.

6. Set hierarchies for the wallet-bots with most handling transactions of less than $100 USD.  Higher more secure wallet-bots from more trusted admins (with higher insurance fees) can handle larger amounts. Again never allow any single wallet-bot to handle more than $1000 USD. Period.






member
Activity: 84
Merit: 10
member
Activity: 84
Merit: 10
All the best with your project.

Thank you. I appreciate all of the support I can get.
member
Activity: 84
Merit: 10
How about making this into an easy to install pre-configured linux/bsd distro?

Users would be able to download the ISO and run it on just about any machine.

From my near zero knowledge of linux and from what I recall with speaking about it to colleagues over the years a variant of NETBSD is the most hardened out of the box no?

The point I was making earlier when I said that I could make the whole system with just Linux tools was that; if I could do it, then it should be easier for a software developer to do it.

If you know C, C++, or php you can do it a lot better than I can. You can make it more secure as well. I was just demonstrating the ease in which it could be deployed.

Perhaps a combination of Linux and Code. That would be far more secure.

You don't have to use a SQL database. Use a flat-file dB or anything you want.

member
Activity: 84
Merit: 10
Disposable Wallet Method:

Just what is a "disposable wallet"? Its not just a wallet you use then throw away. Its way more complex than that.

A "Disposable wallet" is a one-time use wallet whose contents are in an un-redeemed state in the blockchain. Once the private key is imported into the Bitcoin client and a transaction has occured the wallet is then discarded. Any coins left over from the transaction are sent to a new "Disposable wallet" and those coins also remain in a non-redeemed state in the blockchain as well.

Disposable wallets are brain wallets that you generate using something like bitaddress.org.

If you click on the brain wallet tab of the site and enter a passphrase:

Quote
maryhadalittlelamb

the javscript will output this:

Quote
Bitcoin Address: 1Fcf6bCJWt2UGkK9fnTWnynY9dMcoA2v3v

Quote
Private Key (Wallet Import Format): 5KgCWZGaSqAFv5Fv74thJR4Gzv4KFPX13q4WidDmELnYNHoqGNf

After the wallet is generated. You can immediately send money to that address:

Bitcoin Address: 1Fcf6bCJWt2UGkK9fnTWnynY9dMcoA2v3v

If you send money to that address and do not use or import the private key into any bitcoin client then the transaction will be added to the blockchain and the coins will have a status of NOT-REDEEMED.

As long as you do not import the private key in to any Bitcoin client the status will not change.

A "Disposable wallet" is a one-time use wallet whose contents are in an un-redeemed state in the blockchain. Once the private key is imported into the Bitcoin client and a transaction has occured the wallet is then discarded. Any coins left over from the transaction are sent to a new "Disposable wallet" and those coins also remain in a non-redeemed state in the blockchain as well.

How does that help secure the p2p exchange servers from rogue admins?

The answer is simple:

After generating the private key, you split the key into multiple parts and then store them on multiple servers in the p2p network.

With this scenario, there are no wallet.dat files even stored on the server. All that is stored are partial private keys.

If a rogue admin tries to access the wallet banks all he will be able to retrieve are partial private keys.




So how do you conduct a transaction?  

With something I call a "wallet-virtual-server" or "transaction-server" or "wallet-bot".

I will tell you about "wallet-bots" in the next post.



 




(I AM WRITING THIS WHILE YOU READ IT... CLICK REFRESH TO UPDATE THIS POST.)
Pages:
Jump to: