由于区块链大热,凌晨三点无眠,"聪明"的骗子也嗅到这里的“商机”,骗术一波接着一波。从最开始的输入0eth和私钥返10eth到这两天的搜索某个地址“接收币”,包括很多的老韭菜都中招了,真是触目惊心。有图有真相:
你中招了吗?中招后你去了解是什么原理吗?
笔者作为从小就喜欢问十万个为什么的人,对原理去做下简单了解。希望对大家有用。
这几次都是基于以太的骗术,本次主要是对以太的理解。
一、什么是以太钱包? 更多钱包知识
钱包的本质其实就是一个私钥,它是一个随机的哈希值字符串,拥有了私钥就拥有了该钱包的使用权。所以当某个活动需要把私钥也输入进去领取某个代币的时候,百分之百是骗子,相当于你把钱包送了他,相当于你把资产送给了他。
二、以太地址(Ethereum Account)
上图中是在imtoken通过搜索某个地址,添加后派送OKB,这里面好像没有什么危险,只是添加一个地址而已,很不幸你错了。
在Ethereum白皮书中写的很清楚,Ethereum有两种账号:
- Externally Owned Accounts :外部所有的账户(由私钥控制的)
- Contracts Accounts:合约账户(由合约代码控制)
在以太坊系统中,地址由一个20字节组成,变成16进制字符都是0x开头的40个0-f的字母组成。地址也称为账号,就是说你的钱包地址和合约地址格式是一样的。
三、以太官网文档对Account定义解读
下面的内容翻译自以太官方文档:
http://www.ethdocs.org/en/latest/contracts-and-transactions/account-types-gas-and-transactions.html
Externally owned accounts (EOAs)
An externally controlled account
- has an ether balance,
有eth余额
- can send transactions (ether transfer or trigger contract code),
发送交易(转账eth或触发智能合约代码)
- is controlled by private keys,
由私钥控制
- has no associated code.
没有关联的合约代码
Contract accounts
- has an ether balance,
有eth余额
- has associated code,
有关联的合约代码
- code execution is triggered by transactions or messages (calls) received from other contracts.
从其他智能合约收到的交易请求或消息(调用)智能合约会被执行
- when executed - perform operations of arbitrary complexity (Turing completeness) manipulate its own persistent storage, i.e., can have its own permanent state - can call other contracts
当合约被执行后可进行任何操作(即图灵机)包括存储等,还可以调用其他合约
。
四、骗术解读
在以太坊系统中,当你进行交易转账时,就是发起一笔交易,一笔交易是一条消息,从一个账户发送到另一个账户。交易可以包含二进制数据(payload)和以太币。
如果目标账户包含代码(即是智能合约地址),该代码会执行,payload就是输入数据。
那么当你在imtoken钱包添加一个合约地址,然后发送0eth的时候其实就发起了一笔交易,就会执行智能合约代码,至于合约代码里面能做什么,相信大家都清楚了把!!!
五、结论
为什么骗子一轮接着一轮还会由这么多人会上当,一方面大家就是这里由羊毛可以撸,人性所在;另外一方面还是大家对区块链这个事物很多知识不了解,不了解基本的概念和安全意识。
呼吁大家一定要提高安全意识,提高安全意识,提高安全意识。