MirrorChain--to solve the security threat during the new DACs distribution

Started by Overthetop, May 27, 2014, 05:00:27 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

monsterer

Quote from: gamey on May 27, 2014, 06:42:10 AM
I don't think everyone would wish to release the source to their DACs.

They might as well, since the DAC will run on anyone's machine it will just get disassembled anyway if there's no source.
My opinions do not represent those of metaexchange unless explicitly stated.
[url="https://metaexchange.info"]https://metaexchange.info[/url] | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Gentso1

Any way to implement these directly into the toolkit? Any thoughts on when this ideas might be able to be looked at?
[url="http://cryptosmith.info/index.php"]http://cryptosmith.info/index.php[/url] Gentso and Thom
[url="https://bitsharestalk.org/index.php?topic=13837.0"]https://bitsharestalk.org/index.php?topic=13837.0[/url]

Overthetop

It seems DPOS really works, maybe it is time to think about security issues.

:)
个人微博账号: Overthetop_万里晴空
"块链创新与创业"交流群: 330378613

sfinder

Quote from: FreeTrade on May 28, 2014, 10:05:45 AM
Might be possible to have the PTS client sign the first transaction to release funds from the genesis block.

Steps:
1: Enter public key into new DAC client
2: New DAC client creates unsigned transaction
3: PTS/Trusted client signs transaction
4: Signed transaction posted into new DAC client

Can I apply the same steps to btc wallet which been used for AGS donation? 
微博:星在飘我在找|BTS X 受托人delegate ID:baidu
和中国教育书店合作将20%收入捐献给贫困山区学生。
Cooperating with China Education Bookstore and will donate 20% of delegate income to the poor students

cass

Quote from: FreeTrade on May 28, 2014, 10:44:11 AM
Quote from: xeroc on May 28, 2014, 10:39:24 AM
Only thing that hurdles me is that the user needs to create 3 files. Much like signing offline txs with bitcoin using Armory :-)
But ... secure!

Yes, very similar.

Also the process could alternately be handled on a webpage similar to brainwallet so that no software need be installed -

Steps:

1. Enter public key(s) / upload file of public keys to web form
2. Generate unsigned transaction
3. copy/paste unsigned transaction into trusted client (eg PTS client)
4. copy/paste signed transaction back into web form



+5% | interesting discussion
█║▌║║█  - - -  The quieter you become, the more you are able to hear  - - -  █║▌║║█

xeroc

@crazybit: thats the whole idea of freetrades proposal a few post earlierer

crazybit

QuoteInspired by logxing's proposal, i come up with an idea which may completely solve this potential security issue.  if we could use the signature which sign on the specified text(e.g the donation address) with private key, to claim the corresponding shares in different DACs,then we would not worry about private key stolen,as we do NOT need to expose our private key and use different signature to claim the shares in different DAC. e.g signature to claim the XTS shares =sign("XTS"+Pts/BTC donation address, PrivateKey), signature to claim the DNS shares =sign("DNS"+Pts/BTC donation address, PrivateKey)

my idea, please discuss if it is feasible.

https://bitsharestalk.org/index.php?topic=4732.msg62135#msg62135

Troglodactyl

Quote from: FreeTrade on May 28, 2014, 10:44:11 AM
Quote from: xeroc on May 28, 2014, 10:39:24 AM
Only thing that hurdles me is that the user needs to create 3 files. Much like signing offline txs with bitcoin using Armory :-)
But ... secure!

Yes, very similar.

Also the process could alternately be handled on a webpage similar to brainwallet so that no software need be installed -

Steps:

1. Enter public key(s) / upload file of public keys to web form
2. Generate unsigned transaction
3. copy/paste unsigned transaction into trusted client (eg PTS client)
4. copy/paste signed transaction back into web form

I think this is a good problem to solve with the toolkit.  The toolkit could have an associated standalone trusted tool that reads a new DAC's genesis block and the wallet generated for that DAC, then imports all snapshot wallets and creates signed transactions to move your stake to your new wallet.

Overthetop

Quote from: FreeTrade on May 28, 2014, 10:44:11 AM
Quote from: xeroc on May 28, 2014, 10:39:24 AM
Only thing that hurdles me is that the user needs to create 3 files. Much like signing offline txs with bitcoin using Armory :-)
But ... secure!

Yes, very similar.

Also the process could alternately be handled on a webpage similar to brainwallet so that no software need be installed -

Steps:

1. Enter public key(s) / upload file of public keys to web form
2. Generate unsigned transaction
3. copy/paste unsigned transaction into trusted client (eg PTS client)
4. copy/paste signed transaction back into web form

It is great!
+5%
个人微博账号: Overthetop_万里晴空
"块链创新与创业"交流群: 330378613

FreeTrade

Quote from: xeroc on May 28, 2014, 10:39:24 AM
Only thing that hurdles me is that the user needs to create 3 files. Much like signing offline txs with bitcoin using Armory :-)
But ... secure!

Yes, very similar.

Also the process could alternately be handled on a webpage similar to brainwallet so that no software need be installed -

Steps:

1. Enter public key(s) / upload file of public keys to web form
2. Generate unsigned transaction
3. copy/paste unsigned transaction into trusted client (eg PTS client)
4. copy/paste signed transaction back into web form

"People should be more sophisticated? How are you gonna get that done?" - Jerry Seinfeld reply to Bill Maher

xeroc

Quote from: xeroc on May 28, 2014, 10:11:05 AM
Quote from: FreeTrade on May 28, 2014, 10:05:45 AM
Steps:
1: Enter public key into new DAC client
2: New DAC client creates unsigned transaction
3: PTS/Trusted client signs transaction
4: Signed transaction posted into new DAC client
That sounds VERY nice! Also PTS wallet should already be installed by most investors!

+5% for this approach!!!
So basically to make things easy for the user we should go like

1.) PTS-wallet: store Pubkeys in a file
2.) DAC-wallet: import Pubkeys from file
3.) DAC-wallet: create transaction(s) to redeem genesis transaction(s) (who exactly? send everything to a single new address or go for a splitting into pieces?)
3.) DAC-wallet: write raw transaction(s) into file
4.) PTS-wallet: Load the file and sign the tx(s)
5.) PTS-wallet: store signed tx(s) into file (third file for those who didn't count :-) )
6.) DAC-wallet: load signed tx(s) from file
7.) DAC-wallet: broadcast tx(s)

Only thing that hurdles me is that the user needs to create 3 files. Much like signing offline txs with bitcoin using Armory :-)
But ... secure!

Overthetop

Quote from: bytemaster on May 27, 2014, 05:13:21 PM
Quote from: xeroc on May 27, 2014, 10:50:24 AM
Maybe we can use some ellyptic curve magic to solve the issue ... much like what TITAN does?


I think the way we can get around this is to have a separate 'trusted' process that can sign arbitrary data for a new chain.  This process would report to the new DAC all of the addresses it can sign for.

This way the new DAC never sees your private key, but can still use it for signing transactions *FOR THAT DAC ONLY*. 



Yes , I think  that way makes sense.  :)

It  is called a "Firewall" .

个人微博账号: Overthetop_万里晴空
"块链创新与创业"交流群: 330378613

xeroc

Quote from: FreeTrade on May 28, 2014, 10:05:45 AM
Steps:
1: Enter public key into new DAC client
2: New DAC client creates unsigned transaction
3: PTS/Trusted client signs transaction
4: Signed transaction posted into new DAC client
That sounds VERY nice! Also PTS wallet should already be installed by most investors!

+5% for this approach!!!

FreeTrade

Might be possible to have the PTS client sign the first transaction to release funds from the genesis block.

Steps:
1: Enter public key into new DAC client
2: New DAC client creates unsigned transaction
3: PTS/Trusted client signs transaction
4: Signed transaction posted into new DAC client
"People should be more sophisticated? How are you gonna get that done?" - Jerry Seinfeld reply to Bill Maher

xeroc

Quote from: bytemaster on May 27, 2014, 05:13:21 PM
Quote from: xeroc on May 27, 2014, 10:50:24 AM
Maybe we can use some ellyptic curve magic to solve the issue ... much like what TITAN does?
The problem is that without the actual public key of the account holder you cannot do any operation other than signature verification and that requires the private key. 

If we had the public key for every address in the snapshot then it would be possible to separate out the tool that imports the private keys for each chain from the chain itself. 

I think the way we can get around this is to have a separate 'trusted' process that can sign arbitrary data for a new chain.  This process would report to the new DAC all of the addresses it can sign for.

This way the new DAC never sees your private key, but can still use it for signing transactions *FOR THAT DAC ONLY*. 
I dont understand much of the ECC magic but couldn't we go for a hybrid, such that if the pubkeys is known we can do ECC magic .. if not the owner needs to work on the actual privkey ..

we could then update the pubkeys for new DACS on a regular bases using most recent blockchain (assuming no one really can break ripmed150(sha256(pubkey)))

Just asking

bytemaster

Quote from: xeroc on May 27, 2014, 10:50:24 AM
Maybe we can use some ellyptic curve magic to solve the issue ... much like what TITAN does?

The problem is that without the actual public key of the account holder you cannot do any operation other than signature verification and that requires the private key. 

If we had the public key for every address in the snapshot then it would be possible to separate out the tool that imports the private keys for each chain from the chain itself. 

I think the way we can get around this is to have a separate 'trusted' process that can sign arbitrary data for a new chain.  This process would report to the new DAC all of the addresses it can sign for.

This way the new DAC never sees your private key, but can still use it for signing transactions *FOR THAT DAC ONLY*. 

 
For the latest updates checkout my blog: [url="http://bytemaster.bitshares.org"]http://bytemaster.bitshares.org[/url]
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

toast

Quote from: gamey on May 27, 2014, 10:42:21 AM
I am a bit skeptical that the more profitable DACs would release their source and allow their whole business to be instantly cloned. 

I see you are not familiar with Stan's classic "10 laws" post:

QuoteSo here is our list of the rather obvious Ten Natural Laws of the Crypto-Asset Universe.  All wise developers should be aware of these unspoken rules of competition and plot their private business strategies accordingly:

1.   All software must be open source to be trusted.
2.   It is ethically acceptable to clone alt-coins from anybody else's open source.
3.   If you demonstrate a good idea, others will clone it – without market objection.
4.   They will clone it if just to give it a better name.
5.   They will clone it to slightly modify one of its parameters.
6.   They will clone it to better appeal to another group of stakeholders.
7.   They will clone it to make it more profitable (and therefore more appealing).
8.   These clones will compete in the free market.
9.   The clone that appeals to the biggest and most influential crowd wins.
10.   The clone that achieves the Network Effect first may ultimately get to ignore the first 9 rules.
Do not use this post as information for making any important decisions. The only agreements I ever make are informal and non-binding. Take the same precautions as when dealing with a compromised account, scammer, sockpuppet, etc.

xeroc

Maybe we can use some ellyptic curve magic to solve the issue ... much like what TITAN does?

gamey



I am a bit skeptical that the more profitable DACs would release their source and allow their whole business to be instantly cloned. 

Really the only solution will be a hot/cold wallet as far as I can see.
I speak for myself and only myself.

xeroc

Oh .. i am afraid my capabilities in reading and securing code are somewhat limited

Overthetop

Quote from: xeroc on May 27, 2014, 07:40:01 AM
To me that sounds like a business opportunity, checking DAC sources :-)
Yeah ,sure.

You deserve it ,and maybe one day we can have a deal.

:P
个人微博账号: Overthetop_万里晴空
"块链创新与创业"交流群: 330378613

xeroc

To me that sounds like a business opportunity, checking DAC sources :-)

Overthetop

Quote from: xeroc on May 27, 2014, 06:43:32 AM
Quote from: gamey on May 27, 2014, 06:42:10 AM
I don't think everyone would wish to release the source to their DACs.
Those probably wont make me to post my angelshare private key into. Not gonna happen!

Even with source code, I do not think it is safe enough .

Because more and more Dacs are coming out and they  become more and more complex .

So it is not easy to review each of them clean or not  .
个人微博账号: Overthetop_万里晴空
"块链创新与创业"交流群: 330378613

xeroc

Quote from: gamey on May 27, 2014, 06:42:10 AM
I don't think everyone would wish to release the source to their DACs.
Those probably wont make me to post my angelshare private key into. Not gonna happen!

gamey

Quote from: xeroc on May 27, 2014, 06:27:42 AM
Quote from: Overthetop on May 27, 2014, 05:00:27 AM
So, I suggest to setup one Mirrorchain by 3i offically to maintain the PTS,AGS etc data.
[...]
How about this ?
Decentralized!

You can always diff the official bitshares_toolkit against the new DAC and see for you self what changes they did. If you cannot read code, let others do the work for you!

We might need a trusted compile platform for the binaries

I don't think everyone would wish to release the source to their DACs.
I speak for myself and only myself.

xeroc

Quote from: Overthetop on May 27, 2014, 05:00:27 AM
So, I suggest to setup one Mirrorchain by 3i offically to maintain the PTS,AGS etc data.
[...]
How about this ?
Decentralized!

You can always diff the official bitshares_toolkit against the new DAC and see for you self what changes they did. If you cannot read code, let others do the work for you!

We might need a trusted compile platform for the binaries

Overthetop

At present,more and more new DACs will come out and use Free distribution promotion strategy.

However ,there are always security threat during the process of importing the private keys of PTS/AGS/BTX ...  to new DACs.

So, I suggest to setup one Mirrorchain by 3i offically to maintain the PTS,AGS etc data.

The mirrorchain has no business function only performs as a data-provider for new DACs.

With the "MirrorChain", we get a firewall between our assets and strange new DACs.

The mirrochain can refresh the data frequently to keep up the new data ,and will always be ready for new DACs distribution.

How about this ?

:)
个人微博账号: Overthetop_万里晴空
"块链创新与创业"交流群: 330378613