您的位置:首页 > 其它

数字货币开发专题(钱包开发的原理是什么)

2017-05-21 09:05 671 查看
区块链爱好者(QQ:53016353)

数字货币的钱包安全和方便易用性已经超过blockchain了么?

"你手里有你的私钥,没你的同意,网站也用不了。网站的余额总是会创建一笔未来退回到你独自控制的地址的延迟交易,即使网站不见了,只要过了指定的时间,你就可以凭那笔延迟交易取回"

# naituida 答:

与Greenaddress.it有关的几个技术

Deterministic Wallet

通常我们用的Bitcoin-Qt钱包会有一个"wallet.dat"文件, 存储着我们每个地址的私钥. 因为每次我们调用getnewaddress, 都会新产生一个随机数,生成私钥和对应的地址.

而Deterministic Wallet只需要我们记住一个主私钥(mpriv), 之后产生私钥都可以从mpriv加上索引推导出, 这些私钥我们记作 mpriv/0 , mpriv/1 , ....这样我们只需要主私钥就可以把握所有的地址.

Deterministic Wallet还可以从mpriv产生主公钥(mpub), 有了mpub我们可以直接生成新的公钥,即mpub/0, mpub/1 .... 

对比Greenaddress.it和blockchain.info: 以下简称G站和B站...

G站只需要用户记住一串单词,这串单词实际对应的是你的主私钥. 服务器上不需要存储你的任何私钥. G站还提供watch only模式, 原理也是来自我们可以提供主公钥.

B站需要用户记住自己的ID, 且需要在服务器上存储一个对应的AES加密后的json文件,里面包含你的所有私钥.

2-of-2 Multisig Address

n-of-m 多签名地址是指从m个公钥生成,且使用时至少需要其中n个对应私钥的地址. 2-of-2即需要用两个公钥生成, 使用这个地址上的钱需要同时提供这两个私钥. G站上的地址都是2-of-2的(这样的地址都是"2"开头的,很容易辨别), 其中一个公钥来自用户,另一个来自G站. 这个地址上的钱需要用户和G站都签名才能使用. 对用户来说,好处是自己不签名,G站没法使用这笔钱,坏处则是如果G站倒了,用户自己也没法使用了. 因此有了下面的解决办法.

nLockTime Transaction

比特币的交易可以设定参数nLockTime,在这个时间前,这个交易不会被接受写入区块链. 每当你往G站的地址发钱, G站会创建一个若干天后将钱返回你的一个地址, 这个交易G站已签名. 如果G站挂了,你可以在nLockTIme到时间后用自己的私钥签名广播这个交易, 这样你就完成了取回. 在指定时间之前,即使你广播这笔交易,也会因为nLockTime未到,不会被写入区块链. 如果到时间时,这笔钱已经被你使用,这笔交易依赖的input也已经被spent了,你无法坑G站重复取回.

以上三点就能做到

"你手里有你的私钥,没你的同意,网站也用不了。网站的余额总是会创建一笔未来退回到你独自控制的地址的延迟交易,即使网站不见了,只要过了指定的时间,你就可以凭那笔延迟交易取回"

Greenaddress

G站还有一个卖点是0确认. 这个略坑爹... G站的名字也是来自于Greenaddress. Greenaddress的本质就是收款方相信某个地址的拥有者不会去双花,只要收到从这个地址来的钱就无需等待确认. G站要做到本质上还是要别人信任他.

小结:

G站对比B站, 理论上要更安全, 因为B站毕竟存储了加密的私钥, 存在那么一点被暴力破解的可能,特别是你的密码过于简单的话.

尽管G站有着很多新技术,实际操作上用户也无需察觉, 易用性上两者目前没有太大的区别.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: