当前位置:首页 > 区块链新闻 > 正文

区块链入门之 “说文解字”

来源: 互联网时间:2017-08-17 14:53:00

如果你刚刚进入区块链世界, 也许会茫然不知所措, 稀奇古怪的数字, 晦涩难懂的专业词语, 怎样才能迈出跨入区块链大门的第一步呢?

11111111

我们先不要去研究到底什么是区块链, 什么是智能合约, 加密算法等等, 循序而渐进。你要做的第一步是, 先拥有一个自己的钱包, 目前市场上的数字钱包有很多, 像 imToken, myetherwallet, parity, Metamask, Jaxx 等等, 选择一个你喜欢的钱包!

这里我用 imToken 举例, 创建属于你的第一个钱包, 生成钱包很简单, 只需要输入创建密码。那么到底什么是钱包呢?

1-1

解字: 钱包

在数字资产世界里, 我们经常会听到一个词 – 钱包, 不同于传统的互联网钱包, 它不会包含确切某一种资产或者某一种代币, 而是一个密钥 (包含私钥和公钥) 的管理容器, 只包含密钥, 用户使用私钥进行签名交易, 从而证明拥有该交易的输出权, 其交易信息并不是存储在该钱包内, 而是存储在区块链中。公钥用来生成地址。

创建钱包后, 会看到一个提示备份钱包的界面。虽然不知道备份钱包是何用意, 但是点进去看一下, 这时会发现有两种备份的方式: 1. 备份助记词 2. 备份 Keystore 。”什么是助记词? 什么是 Keystore? 听都没听过!” 你的内心回荡着这种声音, 并告诉自己: “暂且不管备份了! 哼”。

你迫不及待的让朋友向你的地址里转入少量 ETH, 进行测试 (比如 0.01 个), 并为自己的聪明沾沾自喜: “我可不会第一次使用就转入大量资产, 万一出现问题怎么办!” 过了一会儿, 你会发现账户中就出现了 0.01 个 ETH, 成功了! 你的第一个数字钱包已经有了资产。

解字: 地址

地址由公钥 (公钥是私钥通过非对称加密算法生成) 生成, 以 0x 开头的 42 位 16 进制哈希值字符串。例如: 0xc2d5ef1b5e6234c6bcbce87bb05d579c8e9d572 如果将钱包比作银行卡, 那么钱包地址就是银行卡号。

然而在开心之余, 一不小心手滑, 将自己的手机掉在地上。”WTF” 无法开机, 导致必须换一款手机。于是你临时找到了一款旧手机, 重新下载 imToken 钱包, 但却无法导入你之前生成的钱包, 因为没有备份! 这时你会意识到, 原来备份是如此重要, 它是我们恢复、掌握资产的唯一途径。

由于你有良好的心态, 会告诉自己, 还好这个钱包里的资产不是很多, 并告诫自己, 以后一定要备份钱包。于是你重新生成钱包, 并点击钱包备份之后, 再次看到备份助记词和备份 Keystore 的字眼, 虽然还是不懂他们的意思, 但是依然选择了备份钱包。1-2

解字: Keystore

Keystore 是加密过后的私钥, 我们可以从两个角度来讲解 Keystore , 从小白用户和普通大众的角度出发, 我们没必要深究其中所使用的加密算法和种种逻辑, 只需要知道以下几点即可:

1. Keystore 的安全程度取决于加密该 Keystore 的密码强度;
2. 要将 Keystore 和密码分开存储;
3. Keystore 密码不可更改。
但是对于从事技术行业, 有一定技术功底的用户而言, 在这里可以给大家简单剖析一下 Keystore 的构造, 从而帮助你深入理解 Keystore 的存取原理。如下图所示:

image

address 为该钱包的地址, Crypto里包含了所有重要的加密信息以及使用的加密算法, ciphertext 就是使用密码加密过后的私钥, cipherparams 是加密的参数, cipher 和 kdf 是加密所用到的算法, 这里分别用到了aes-128-ctr 和 scrypt, kdfparams 是 kdf 加密算法的参数, mac 是将 ciphertext 再次进行加密的产物, 一般用于验证信息。

从上边的解释不难看出, 从 Keystore 生成的那一刻起, 这些数据都已经写死在里边, 哪怕是你改动了文件里边的某一个字符, 都会破坏该文件, 导致无法解析, 所以 Keystore 是无法更改密码的。

现在你终于可以安心使用钱包, 再也不怕因为误删应用或设备损坏而丢失钱包了! 这次你向新钱包转了 1 个 ETH。

由于你用的是临时的旧手机, 所以你打算再买一部新的。
于是你用旧手机,将含有助记词信息的 Email 发送到新手机, 并且在新手机中导入成功。”这真的是太方便了”, 你欣喜的说道。

1-3

然而有一天, 你突然发现手机里的那 1 个 ETH 竟然不翼而飞, 通过交易记录, 你发现它已被发往一个陌生的地址。。”快阻止这笔交易!” 你喊了出来。然而这是不可能的, 因为区块链具有不可逆性。

解字: 不可逆性

区块链上的信息是不可撤销、不可随意销毁的。例如比特币系统, 它是开源的, 整个系统都必须是公开透明的, 因此某笔交易被全网广播后, 达到公开透明的, 因此某笔交易被全网广播后, 达到 6 个确认以上就成功记录在案了, 且不可逆转, 不可撤销。所以当你发送了一笔交易, 即使发现地址打错了, 你想要撤回此操作是不可能的。

在阻拦无果的情况下, 你只有让自己冷静下来, 并问自己:” Who moved my cheese?” 你分析了所有的可能性, 最后只有一个操作引起了你的疑心 — 没错, 就是那次邮件发送 助记词。”为什么助记词泄露, 就会导致我的资产丢失呢?”

解字: 助记词

助记词由 BIP 31 提案提出, 主要目的是让用户更好的记住自己的私钥, 目前助记词有多语言版本, 包括中文、英文、日文、法文等, 但是 imToken 和 myetherwallet 使用英文词库, parity 则使用和上述不同的词库, 所以在导入钱包时, 可能出现助记词不兼容, 但是私钥和 Keystore 是一致的, 所以用户也无需担心。

助记词是未加密的私钥, 所以安全性极低, 在使用助记词的时候有两点值得注意的地方:
一定要备份助记词, 一旦忘记 Keystore 密码, 或者想更改 Keystore 密码, 需要使用助记词找回钱包;
不要使用截屏或拍照的方式备份助记词, 建议使用物理介质备份, 比如手抄下来, 放在自己认为安全的地方, 千万不要暴露给第三方;
不要使用邮件或其他即时通讯方式传输助记词;

相同的助记词, 由于导入路径的不同, 会导致钱包的不同 (地址不同) , 例如 imToken 的默认生成路径是 m/44′/60′/0′/0/0 , 当你以相同的助记词导入 imToken 或 myetherwallet, 但是路径改为 m/44′/60′/0′/0/1 这时的钱包完全是另一个钱包。所以我们在存储自己助记词的时候, 也要记录好路径。当然, 如果你明白了路径的含义, 可以使用自定义路径导入助记词生成钱包, 这个路径只有你一人知道, 这样当你一不小心暴露了助记词, 他人在不知道你路径的前提下, 还是无法快速转移你的资产, 需要穷举尝试。这为你转移资产赢得了宝贵的时间。

2222

通过这次事件之后, 你知道了如何保管自己的钱包信息, 那么我们再来进行一笔交单的交易吧!

有一天, 你的朋友向你借了 5 个 ETH , 他将地址发给你, 并要求你尽快将 ETH 转给他。通过 imToken 的转账功能, 你准确的输入了地址 (PS: 因为你已经知道了不可逆性) 输入了转账金额之后, 发现一个叫矿工费的操作项。

1-4

解字: 矿工费

在一个公有链上, 任何人都可以读写数据。读取数据是免费的, 但是向公有链中写数据时需要花费一定费用的, 这种开销有助于阻止垃圾内容, 并通过支付保护其安全性。 网络上的任何节点(每个包含账本拷贝的连接设备被称作节点) 都可以参与称作挖矿的方式来保护网络。由于挖矿需要计算能力和电费, 所以矿工们的服务需要得到一定的报酬, 这也是矿工费的由来。

凭感觉, 你认为矿工费可能和转账速度有关系, 为了让朋友尽快收到转账, 你试着将滑竿拉至最大。

矿工费是怎么计算的呢?你不禁会问自己

一笔交易的矿工费用 gas 和 gas price 两者组成,gas 代表这笔交易所执行命令所需要消耗的 gas,而 gas price 代表每一个 gas 的价钱。这就像你想让汽车跑 100 公里,需要消耗 5 升汽油,一升汽油 10 美刀,你总共需要消耗 50 美刀。
imToken 的交易费用 ( 也是也是以太坊的交易费用 ) = gas 数量 * gas price ( gas 单价,以太币计价)
那么,矿工费的高低和交易的速度有什么关系呢?

这是一个很有意思的问题。一个交易区块就像这辆火车,体积有限。你作为司机(矿工)想要利益最大化就是,让火车尽可能多的载客,同时选择票价高的乘客。所以矿工在打包区块时,会选择给的 gas price 价格越高,但 gas 相对低的交易打包。
所以你希望交易越快被打包,你可以选择合理的 gas 的同时,调高 gas price。

image

现在你已经明白的矿工费的意思, 点击 “下一步” 再次确认信息, 发送交易!

很快, 你的朋友就发来一条信息, “嗨, 伙计, 我已经接受到了你发来的 ETH, 感谢!” , 聪明的你会意识到, 使用区块链发送资金是如此低成本, 方便快捷。没错, 这也是区块链的去中心化特性, 对价值网络的重大影响。

所谓价值互联网就是人们能够像传递信息一样方便、快捷、低成本的传递价值, 尤其是资金。就像人们之前要发送一笔交易, 需要通过银行这个信任度极高的中心化机构, 银行也会收取手续费作为佣金, 其服务的时间、服务类目和服务条款等也是由银行这种中心化机构决定。区块链的中心化特性则从根本上解决了这个问题。

过了一段时间, 你的朋友将借你的 ETH 还给了你, 并和你说, 通过你借给他的 ETH 去参与了 ICO 赚了一笔。”WHAT?” 你瞪大了双眼, 什么是 ICO?

解字: ICO

ICO 全称 Crypto-Token Offering, 是指通过发行代币方式来进行融资。因为许多区块链项目能够通过发行加密代币(Crypto-Token) 来代表其项目的一些收益权、股份或者使用权。因此, 可以根据投资者投资金额比例来发行相应的代币给投资者, 而这些代币很快可以在部分数字货币的交易所里面进行交易。

通过朋友的讲解, 虽然你不甚了解, 但是依然选择了通过 imToken 的 ICO DApp 参与一次 ICO。
这个项目是由 Test Test Company 发起的 , 我们简称 TTC. , 其发行的代币 ( Token ) 称为 TTT, 合约细节是众筹结束后, 立即收到代币, 并且很快就会在交易所进行交易。(注: 该公司, 项目,代币纯属虚构, 属情节设定, 如有雷同, 纯属巧合)

通过 imToken 参与 ICO 的过程也是异常简单, 并且你很快就接收到了TTT – Token (代币)

1-5

什么是 Token, 它有什么用? 虽然参与 ICO 成功, 然而敏而好学的你提出了这样的问题。

解字: Token

Token 有很多含义, 首先可以理解为代币, 区块链应用代币类型大概有三种:应用代币、权益代币、和债权代币

应用代币: 这些代币是区块链真正的核心部分,没有它们,区块链就无法运行。它们通常会是激励计划的一部分,激励人们帮助系统验证交易,创造区块。包括BTC,ETH 都是这样的应用代币,应用代币一般采用POW工作量证明机制。

权益代币: 类似于公司的股份。权益代币不会随着用户使用应用而减少。相反, 权益代币的持有者还会收到应用的收益分红。因此,权益代币类似于持有这个区块链应用(注意,不是公司)的股份。区块链黄金交易平台 Digix 就是通过发行一个叫做 DGD 的权益代币,来进行应用众筹的。除了可以收到分红外,因为权益代币的持有者就是这个应用的所有人。所以,权益代币的持有者还拥有对这个应用里事务的投票权,以决定未来这个应用的发展。例如,对于DigixDAO,它的权益代币DGD持有者可以向应用提出新增功能的提案,也可以对其他的提案进行投票。权益代币一般使用POS证明机制。

债权代币: 债权代币的出现主要是用来解决区块链应用流动性不足的问题。比如,当一个应用突然爆火,拥入大量新用户。这些新用户需要应用代币来使用这个应用。但这时,可能绝大多数的应用代币都在老用户的手里。而这个应用出于避免其应用代币的价格剧烈波动的原因,又禁止老用户大量抛售自己手中的应用代币。这个时候,这个应用就需要临时借一笔钱,来购买应用代币,以满足新用户的使用需求。所以,债权代币就应运而生了。它类似于为应用提供一个短期的贷款。而对于债权代币的持有者则类似一种储蓄行为,因为一般都可以获得一定的利息回报。

其次 Token 可以作为现实资产和数字资产之间的关系映射, 我们生活中的房产, 遗产, 汽车, 保险等都可以逐一映射, 转变为数字资产, 存储在区块链里, 摆脱了传统纸质凭证, 或者单一系统的存储。可以说, 我们生活中的绝大多数资产, 最后都可以转变成映射到区块链中的数字资产。

又过了一段时间, 你得知 TTT 已经可以在交易所进行交易, 于是赶紧把 TTT 转到交易所, 根据交易所提供的收款地址, 你将币发送过去, 但是却”迟迟”没有到账。这时你会手足无措, “我该怎么办? 为什么没有一个像查询快递单号的应用让我查询区块链的交易信息呢?”

Etherscan 正是你需要的! 这里为你提供一个学习如何使用 Etherscan 的中文视频教程

通过 Etherscan 的交易信息查询, 得知交易已经被矿工打包, 交易已经成功, 你将问题定位到应该是交易所还未通过审核, 所以只有耐心等待。(注: 大多数交易所是要对资产进行审核的)

交易所审核通过后, 终于可以进行交易了! 现在你终于迈出了进入区块链世界的第一步, Lv0 -> Lv 1

(未完, 待续 … … )

免责声明:

1.本文内容综合整理自互联网,观点仅代表作者本人,不代表本站立场。

2.资讯内容不构成投资建议,投资者应独立决策并自行承担风险。