新手对 BTC 的一些理解,有不对的对方请指正 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
pysama
V2EX    Bitcoin

新手对 BTC 的一些理解,有不对的对方请指正

  •  
  •   pysama 2017-09-30 15:29:24 +08:00 958 次点击
    这是一个创建于 3007 天前的主题,其中的信息可能已经有所发展或是发生改变。

    几个基本概念

    • BTC,就是你的一个地址中的 UTXO(未使用的交易输出)。
    • 在线钱包,如 blockchain.info,可以把自己的私钥导入,也可以使用钱包来生成地址进行交易。
    • 官方推荐了很多钱包,比如 electrum,它通过 random seed 生成一对主私钥和主公钥,根据公钥进行 10 次复杂的运算计算出地址。
    • 冷钱包( ColdStorage, 只读钱包, 离线钱包),核心思路就是把授权(签名)的步骤放在离线环境中操作以保证私钥安全。

    创建只读钱包

    以 electrum 为例,假设你已经创建了一个标准的 electrum 钱包(主钱包)。现在新建钱包,选择标准钱包,在选择 seed 的界面中,选择公钥,然后输入主钱包的主公钥,一路 Next 到创建完毕,对,这就创建好了。注意:只读钱包是没有密码的,而且不能交易。然后找台离线环境的电脑,把你的主钱包 copy 过去(或者重新恢复过去),由于是离线环境,所以你的私钥是非常安全的。

    如何交易呢?

    1. 在只读钱包中的发送菜单中输入交易的数据,点击 Send,在弹出的窗口中输入手续费(手续费越高交易的优先级越高),然后点击保存按钮,将这个未签名的交易文件保存到你喜欢的地方。然后把这个文件 copy 到你的主钱包的机器(离线环境)

    2. 打开你的主钱包,选择菜单中的工具》载入交易,选择刚才 copy 过去的交易文件。点击 Sign,授权之后,你就能看到交易 ID,点击保存按钮,将签名后的交易文件重新 copy 回只读钱包的机器(有网)上

    3. 在只读钱包载入刚签名后的交易的文件(载入的步骤在上面有细说了),在弹窗口点击“广播”,就这么简单。

    备份和安全

    • seed 和扩展 seed,物理备份,密码牢记。这三个东西一定不能泄漏。
    • 理论上说只需要备份 seed 即可,seed 可以还原地址和私钥, 当然你也可以把私钥导出来备份。
    • 安全方面还可以弄多重签名的钱包(这里就没写下来了,毕竟没 btc 来测试)
    • 一些大牛的建议:大额 ColdStorage,小量在线钱包

    手续费

    手续费是按照交易数据的体积计算的,据资料说是每 KB 0.0001BTC (不足 1KB 按 1KB 算),交易数据的大小在网上可以查询到,比如在 btc 官网上输入地址,就能看到交易的细节。btc 的手续费会影响到交易速度,所以手续费率是浮动的,在 btc.com 页面中可以看到当前的最佳手续费。

    对了,手续费是付款方支付的。(如果你找朋友买了 btc,你还要支付一比手续费给对方)

    最后,非常感谢 v 友 @Timon 解答一些细节问题。

    1 条回复    2017-10-03 21:27:49 +08:00
    acess
        1
    acess  
       2017-10-03 21:27:49 +08:00
    我也是几个月前才开始了解比特币,不知道该 at 谁……@h4x3rotab

    我可以说说我的理解。

    钱包和备份这块……简而言之,比特币只认私钥不认人。
    地址是公钥的两次 hash,一个私钥只对应一个公钥、一个地址。但是地址还有 3 字开头的,它可以是多重签名地址(实际上还可以是别的类型,比如目前使用的 SegWit 地址),可以对应多个私钥、执行逻辑判断:一共 N 个私钥里,有 M 个有效签名则通过验证。
    私钥很重要,所以大笔资金建议用冷钱包,也就是私钥不上网。可以用不联网的设备,甚至还可以用纸张直接打印私钥(比如 bitaddress.org )。
    比特币建议地址用一次换一个,因为比特币的转账记录都是公开的。如果只重复用一个地址,别人打开区块浏览器就看到你的所有过往交易了。还有说法认为换地址可以不暴露公钥,带来额外的安全性。
    但老是换地址,备份私钥就成了问题,常常出现私钥丢失而丢币的问题。后来,就有了 HD 钱包,也就是分层确定性钱包,通过一个种子派生(还可以是树形结构)出一堆私钥,备份钱包时,备份种子就可以了,私钥都可以派生出来。种子的格式也是有标准的,也就是一串单词、汉字等组成的密语,不过标准好像修订过,所以偶尔会碰到不兼容的问题。
    当然,即使用了 HD 钱包,仍然可以采取一个个备份私钥的办法,只是这个办法相对比较笨。

    你说的“官方推荐了很多钱包,比如 electrum,它通过 random seed 生成一对主私钥和主公钥,根据公钥进行 10 次复杂的运算计算出地址。”我觉得好像不太对劲,不知道是主公钥、主私钥、10 次复杂运算是个啥……也许是我不懂具体技术细节?

    比特币的交易,可以理解为让输入的币(每一个输入 UTXO )作废,然后铸造等额新币(输出 UTXO )。输出总额需要小于等于输入,多出的部分作为手续费被计入区块的 coinbase 交易里,被矿工拿走。
    这里就有两个蛋疼的地方:找零和碎币。
    找零问题不会坑到正常的用户,只是开发者和手动构造交易的玩家需要小心。前面说了,输入的币会被销毁,所以需要在输出里填自己的地址作为“找零”,如果忘了填这个地址,余额就被矿工当作手续费拿走了。以前也有矿工“拾金不昧”,捡到超高额手续费后说要退还。如果他们不想归还,好像你也没啥办法了。
    一个地址里的多个 UTXO 也不会自动合并,就像现实中的硬币铸造成本可能超过币值一样,数额太小的“碎币” UTXO 会让你不想花出去,因为你把这个碎币加到交易输入里,会让交易数据量变大,导致你付出比币值更多的手续费。

    钱包软件可以广播交易,但你也可以用别的方式来广播交易,比如用在线的 pushtx 服务: https://blockchain.info/pushtx
    btc.com 等矿池还提供付费加速的服务,实际上可以理解为补交手续费吧……

    交易数据大小,钱包软件就可以显示出来,钱包软件还会根据未确认交易状况来动态判断手续费大小只有部分钱包有这个功能(我记得 Electrum 和 Core 都有),有这个功能的话就不需要到网站上查了。
    手续费高,矿工就更优先打包你的交易,但下一个块啥时候挖出来是看运气的。
    如果当时的交易量不高,都填不满区块,那超低手续费也可以很快确认(不过也有矿池限定了最低手续费,更低的直接扔掉不打包)。
    如果当时的交易量很大,拥堵了,那就得在发出交易时就把手续费加高,否则一大意被卡几天动弹不得虽然交易没被打包进链,是未确认状态,但一般的矿工也拒绝“双花”这笔交易。
    被卡后也不是完全没办法,比如 Child Pay For Parent,也就是用更高的手续费花掉“找零”,前后两笔交易综合起来手续费够高,矿工就会优先打包了(这个好像也看具体矿池?)。再有就是找矿池付费加速。
    还可以在发出交易时就勾选“可替换”,也就是启用 RBF 特性(不知道商家、支付公司那边会不会有问题),这样就可以直接给已经广播出去、但还没进链确认的交易加手续费,同时还可以替换交易内容(这样可以双花,也就是撤销未确认交易,所以引来一些争议)。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1024 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 18:57 PVG 02:57 LAX 10:57 JFK 13:57
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86