什么是比特币的链上 (on-chain) 与链下 (off-chain) 交易, 以及往交易所充币后发生了什么

on-chain

on-chain 就是比特币的常规交易方式: 给我一个比特币地址 (公钥), 我用客户端创建交易发送比特币给你, 这笔交易在全网广播, 被确认, 被打包进区块. 显然, 交易是直接发生在链上的.

off-chain

至于 off-chain 其实玩过比特币的人也都用过, 我们在交易所里的交易就是 off-chain 交易. 这是如何运作的呢?

A, B 分别在某交易所开户, 交易所会分别为 A, B 生成一对公钥私钥, 但是 A 和 B 都不知道平台给他们生成的私钥, 只知道自己的公钥. 然后, A 和 B 用自己的钱包往平台给他们开的公钥地址里冲值比特币, 注意这个操作依然是 on chain 的.

再然后, A 通过交易所转了 0.5BTC 给 B, 但由于 A 没有私钥, 所以需要交易所拿 A 的私钥去签名并广播这个交易, 然而交易所真的需要去广播这个交易吗? 不需要的, 交易所只需要在自己的数据库里, 将 A 的账户余额 -0.5BTC, 将 B 的账户余额 +0.5BTC. 这一步, 只是交易所自己维护的信息在更新, 没有上链, 所以这个操作是 off chain 的.

最后, 当 A, B 从交易所取现时, 交易所将他们线上账户的比特币转给他们自己的比特币地址时 (A, B 自己拥有私钥的地址), 这个操作才会重新 on chain.

后记

简单来说, on-chain 交易更安全, 但是由于比特币网络区块确认时间较长, 所以交易比较耗时; off-chain 交易可以很快, 但是由于交易数据放到交易所的数据库里了, 所以安全隐私又打了点折扣. 不过本文只探讨原理, 对利弊就不做过多评论了.


其它文章

数字货币

交易所

编程系列

H2
H3
H4
3 columns
2 columns
1 column
2 Comments