教程网

您现在的位置是: 首页 > 百科

区块链浏览器有哪些功能?区块链浏览器使用教程

区块链浏览器有哪些功能?区块链浏览器使用教程
什么是区块链浏览器?我们每天不管在手机或是电脑,一定都会使用到网络浏览器如谷歌浏览器, UC浏览器等来浏览不同网站的各式消息,区块链浏览器也是类似的功能,它是帮助我们浏览

什么是区块链浏览器?

我们每天不管在手机或是电脑,一定都会使用到网络浏览器如谷歌浏览器, UC浏览器等来浏览不同网站的各式消息,区块链浏览器也是类似的功能,它是帮助我们浏览区块链链上交易讯息的实用工具。

除了比特币以外,也有其他币种的区块链浏览器,例如以太坊区块链浏览器就是相当普遍被使用的一种。不过,我们今天会聚焦在比特币浏览器上。

如何开始使用区块链浏览器?

这次我们以btc.com为例,以实际界面手把手带大家使用一次,其实只要通过首页的搜索,输入钱包的地址(Adress)、交易ID(Tx ID)、区块高度编号(Height)或者区块哈希值(Hash) ,就可以直接查询。

用户们最常碰到的使用情况有下面两种:

查一笔特定交易,会输入交易ID

查单一地址的资产余额

区块链浏览器可以查到什么讯息?

我们直接根据以上两种情况,随机查询btc.com上面的交易,进一步解释里面的资讯:

查一笔特定交易,输入当笔交易的ID,我们随机查了交易ID为

”9b9a91d56b1edc742b67809358b4c8faef4bc9a0fab3c7850287ce004e3286e7”的这笔交易。

来看看几个大家常看的基本信息:

区块高度(Height):区块链是像积木一样,是连续往上堆的,因此区块的排列顺序以高度来表示,这一个高度#599185是当下那一刻最新出产的区块。

交易确认(Comfirmation):交易第一次被打包进区块上链后,完成一次确认,该区块的上头产生又一个新的区块,完成第二次确认…..以此类推,一般来说,完成6次以上的确认后,交易可以被视为几乎不可逆的。

时间戳记(Timestamp):该笔交易被矿工打包添加进区块链的时间

输入(Input) &输出(Output) :原理等同于会计的T字帐,Input为借方(资产),Output为贷方

手续费(Fees):矿工把交易打包上链记录的服务费,Input跟Output的差额即手续费。

查询地址余额

查询地址时我们主要会去查看余额(Balance),Tx Count 则是发生在这个地址中的交易数量,下面则是一笔笔交易的讯息清单,灰色网格左边的字串是交易ID,下面显示该笔交易的金额输入与输出讯息。

EOS区块链浏览器怎么使用在以太坊世界中, 当我们发起一笔转账交易, 可以从 Etherscan 这样的以太坊区块链浏览器上搜索查看交易的详细信息, 我在之前有写过详细的关于 Etherscan 的使用教程, 那么今天, 让我们来到比特币的世界, 学习如何使用 Blockchain.info来查询比特币的交易。

1. 什么是 UTXO 机制

为了方便大家理解后续 Blockchain 上所显示的内容, 我们还是要首先讲解一下 UTXO 机制, 这也是比特币和以太坊的一个重要的区别。UTXO 代表 Unspent Transaction Output, 它是比特币交易的基本单位是未经使用的一个交易输出[1]。UTXO 是不能再分割、被所有者锁住的或记录于区块链中的并被整个网络识别成货币单位的一定量的比特币[2]。

举一个很详细的例子来说明, 小明的妈妈想去买两瓶酱油, 一瓶酱油的价格是 6 元钱, 但是由于小明的妈妈需要在家做饭, 所以委托小明去商店购买, 小明的妈妈给小明 1 张 10 元, 一张 5 元, 和 一张 1 元, 并承诺其中的 1 元钱做为小明的 “跑腿费”。于是小明将 1 元钱先 “纳入麾下”, 然后到商店, 将 15 元给到售货员, 换取两瓶酱油花费 12 元。售货员找回 3 元钱, 小明回到家将三元钱还给妈妈。

在这个故事中, 10 元和 5 元属于小明妈妈的 output[注1], 而对于小明来说, 他充当的是 矿工的角色, 所以小明妈妈给小明的 1 元钱是矿工费, 而对于商店售货员来说, 他的 12 块钱是 input, 而找回的 3 元钱, 对于小明妈妈而言, 就是 UTXO。

这里还要提到有趣的一点, 就是上述小明妈妈最初拿出的 10 元和 5 元分别是一个 UTXO, 是小明妈妈在买其他货物的时候, 作为找零获得的。并且 10 元和 5 元都是不可分割的。同时如果一个 UTXO 比一笔交易所需数量大, 它仍会被当做一个整体而消耗掉, 但是同时会在交易中生成零头。

图1-1

2. 比特币找零地址

上述这个故事中, 有一个概念我们要着重讲解一下, 就是 “找零机制”。首先我们要知道, 找零地址可以是我们之前使用的地址 (即转账地址), 也可以是新的地址。如果我们在转账的时候, 不设置找零地址的话, 那么所有的 “找零” 都将支付给矿工。在上述例子中, 如果小明买完酱油之后, 小明的妈妈忘记向小明要回找零的 3 元钱, 那这笔钱是不是就被小明 “私吞” 了呢? 同样, 如果你有 100 个 BTC, 转账给朋友 1 个 BTC之后, 忘记设定找零地址, 那么剩下的 99 个 BTC 将全部 “无偿” 捐献给打包这笔交易的矿工。听上去是不是很可怕?

但是, imToken 的用户则无需担心忘记设置找零地址, 因为 imToken 已经自动帮你完成这一切, 即每次转账都会新为你生成一个找零地址[注2]。

那么有的人会问道, 为什么每次都要生成一个新的地址, 用于接收找零代币? 直接使用原地址接收找零不好吗? 这个问题我们会在下边谈到。

基础篇

3. 如何查询转账地址信息

如果你对上述概念还是一知半解, 没有关系, 我通过实战操作再来帮助你深入理解。打开 https://blockchain.info/ 网站, 输入你的 BTC 转账地址, 点击 Search 按钮, 进行查询。

图 3-1

这里可以看到, 我当前地址曾经一共收到过 0.01 个BTC (Total Received 所显示), 但是由于我使用 imToken 发起过一次转账交易, 所以当前的地址中所剩 BTC 为 0 (Final Balance 所显示)。

这里有一个问题, 我当前地址本来有 0.01 个 BTC, 而我只转出 0.001 个 BTC, 为什么当前地址余额变成了 0 ?

其实这就是文章开篇提到的比特币 UTXO 机制, 比特币为了安全性和匿名性, 可以在每次使用一个地址转账过后, 将 “找零” 转向新的地址。可以看到图 3-2 的 Transactions 类目下一笔转账交易竟然出现两个 “收款地址”, 一个是真正的转账目标地址, 另一个则是找零地址。但是我们单从地址上无法分辨到底哪个是找零地址, 哪个是转账地址, 只能通过已知哪个是目标地址, 然后使用排除法判断。但通过我测试, 一般情况下第一个都是转账地址, 第二个为找零地址 (多笔转账不适宜)。

图 3-2

4. 如何查询交易是否成功

如图 4-1. 我使用 imToken 中生成的 BTC 地址 19Fbiok5SuP7YWReGDwMp

77tfx1vVDVih1 向 1Aqyai7gLr44DPmPdW3S24YeEKfiiW9foV 地址转账0.0009 个 BTC, 这时候交易属于 Uncomfirmed Transaction 转账, 也就是说还没有矿工确认打包。BTC 和以太坊目前都是 POW 机制, 即交易需要矿工打包确认。不同的是, 以太坊的出块速度是 15 秒, 而比特币需要 10 分钟。

图 4-1

我们普遍认为确认一笔比特币交易确认需要 6 个区块确认, 但是一般情况下只要看到 1 个区块确认, 即 1 Comfirmation(如图 3-2), 就基本可以确定这笔交易成功了, 同时也可以使用 imToken 查看到余额的变化。

图 4-2

5. 如何查询矿工费

比特币和以太坊一样, 转账也需要支付足够的矿工费。比特币的最小计数单位是 “聪” (Satoshi, 简称 sat)。其实在比特币的底层协议中, 并没有规定每笔交易的矿工费需要多少, 只是要求地址中总输入(input)不小于总输出(output), 所以从理论上来说, 如果一笔转账交易不支付矿工费, 也是会被矿工打包, 并且交易成功, 但是时间确是不确定的, 有可能会等上很多年。

目前比特币的转账矿工费, 是按照交易数据字节大小和 input 以及 output 的数量来来确定的。数据越大, 交易数量越多, 矿工费越多。一般情况下每笔交易的字节数在 200 ~ 300 bytes, 而每个 bit 你所愿意支付的费用可以自定义, 例如使用 imToken 设置 20 sat/b, 以图 5-1 为例。

图 5-1

这笔交易的数据大小是 226 bytes, 而我设置的矿工费是 20 sat/b, 所以我消耗的矿工费是 gas fee = 226 * 20 * 10e-8. 大约是 0.0000452 个 BTC。

但其实绝大多数钱包服务商在计算用户交易矿工费的时候, 是提前估算好的, 所以会存在一些偏差。

进阶篇

6. From -> To OR Input -> Output

用户在使用 Blockchain 查询 BTC 交易的时候, 会发现很多和使用 Ethereum 的不同之处。因为以太坊属于 account 模型, 它是 “From -> To“ 结构, 我们发起转账时, 每一个 TxId 都包含一个付款地址和一个收款地址。

而比特币则不然, 它是 UTXO 机制, 即多个 input 可以对应多个 output[注3], 大家可以回忆一下开篇我们讲到的故事, 小明的妈妈给小明 10 元和 5 元, 这是两个 output, 而 input 是 12 元, 但我们可以认为 12 元其实是多个 input, 包括给采购商的价格、给政府的税收、店家的利润以及成本等等。

图 6-1

所以我们在查询一笔 BTC 交易的时候, 如果输入交易号进行查询, 可能会出现多个地址同时向一个地址发起一笔交易, 也可能会出现一个地址向多个地址同时发起交易。图 6-1 向我们展示了多个 output 对应一个 input。

7. 关于 Unable to decode output address

我们在使用 blockchain.info 查询一些交易信息的时候, 会发现如图7-1这样的情况, 有些收款地址显示为 Unable to decode output address, 却看不到真正的收款地址。那么这个是怎么回事呢?

点击交易号, 进入该笔交易的详情, 我们可以看到 Output Scripts 里:`RETURN PUSHDATA(32) [some garbage]` 这个脚本从 `OP_RETURN` 开始, 被称为空数据输出, 用于用户在区块链中存储任意数据。由于这些输出数据不同于代币转账, 是不能进行花费的, 所以 scripts 脚本不能对他进行有效评估。但其实这样的数据输出大多是伴随着一个正常转账输出出现的。举个例子, 这有点像转账信息备注, 比如图7-2. 用户在做这笔 0.577 个 BTC 转账的时候, 就可以将转账的一些信息写入这笔交易 “ Alice send to Bob”. 但是这样的信息是无法进行消费的, 所以会永远处于 Unspent 状态, 并且出现 Unable to decode output address (无法解析输出地址) 这样的情况。

8. UTXO 的好处

上边我们在讲到找零地址的时候, 抛出一个问题, 为什么比特币在做每笔转账的时候, 都要设置新的找零地址。其实这一点, 中本聪在<<比特币: 一种点对点的电子现金系统>> 里边, 在谈及隐私 (Privacy) 特性时有提到: “作为额外的预防措施, 使用者可以让每次交易都生成一个新的地址, 以确保这些交易不被追溯到一个共同的所有者。” [4]

所以说, 比特币的 UTXO 机制, 更好的保障了比特币的匿名性。如果我们在查看一个有多笔输出的钱包地址情况下, 很难确认哪个是找零地址, 哪个是收款地址, 除非我们是当事人。

作者注:

注[1]: input 和 output 是一个相互转化的关系, 因为你当前钱包的余额是由 input 得来, 而当你发起转账时, 他就变成了 output. 所以说 input 和 output 是一个抽象出来的概念。

注[2]: 在使用 imToken 的时候, 如果你是使用助记词导入的比特币钱包, 那么每次的找零地址, 会是一个新的地址。如果你是 WIF 导入, 既使用明文私钥导入钱包, 那么每次转账的找零地址, 就是你当前钱包的地址, 不会生成新的接收地址。

注[3]: 这里所说的多个 input 对应多个 output 可以是1个 input 对应多个 output, 也可以是多个 output 对应 1 个 input或者多个 input 对应 多个 output。

根据获取机制的不同,将他们分为两大类,一般我们将 Network BandWidth和CPU BandWidth划分为一类,统称为带宽类,RAM则单独划分出来,为什么这样分类呢? 下面我将详细进行讲解。

一、赎回带宽操作

Network BandWidth 简称NET(网络带宽) 和 CPU BandWidth 简称 CPU (CPU 带宽) 是通过抵押 EOS 的方式获得的, 如果你想释放 NET 和 CPU 可以通过赎回操作赎回抵押的EOS代币, 但是需要等待72小时, 也就是三天后才能到账。

NET和CPU用来保证用户使用EOS网络转账等基本功能, 例如你每次使用转账功能的时候, 都会消耗NET和CPU资源, 并且单位时间内转账的次数越多, 消耗的NET和CPU越多, 但是NET和CPU可以随着时间的推移, 自动释放。

值得注意的是,目前在EOS系统中,赎回NET和CPU的方法和赎回投票抵押的方法是一致的,也就是说,当你想赎回自己投票超级节点的抵押金的时候,也是相当于赎回 NET 和 CPU.

二、特别的 RAM

RAM必须通过EOS购买的方式获得的, 而RAM的购买价格是随着市场价格上下浮动的, 关于RAM的价格, 可以通过 https://www.eosrp.io 查看。关于RAM的价格算法, 我会在下边的Bancor算法中详细提到。

那么购买RAM有什么用处呢? 截止到我写这篇文章, 之前EOS全网一共有64 GB的RAM内存,但是前一段时间, EOS RAM 扩容方案通过, 在当前的 64 GB 基础上每生产一个区块,RAM 增 1 KB 。

在 EOS 系统中, 每个账户都需要 RAM 来存储数据, 比如你在 EOS 中创建账户、转账、购买资源、抵押、赎回、投票等操作的时候, 都有可能消耗 RAM, 换句话说如果你的 RAM 消耗殆尽, 那么有很多基本操作是无法实现的。

 1/3    1 2 3 下一页 尾页