网络安全检测|网络安全服务|网络安全扫描-香港墨客投资移动版

主页 > 业界资讯 > ddos防御

解密区块链:从基础概念到技术实现的进阶攻略(4)

  自行车的所有者会将一个Slock(智能锁)安装到他们的自行车上,并且在以太坊区块链上给自行车注册一个智能合约(一段程序代码)。接下来,任何人都可以向该智能合约发起一个发送一定数量数字货币的请求,合约在接到这个请求之后,会自动将这笔数字货币转发给自行车的所有者,这样发送者可以获得2个小时的使用权。

  基本概念

  挖矿

  挖矿这个词源于对加密货币与黄金的类比。黄金或贵金属很稀有,电子代币也是,增加总量的唯一方法就是挖矿;同时,挖矿也是通过在区块链中创建、验证、发行和传播区块的方法来保护网络的。

  挖以太币 = 保护网络 = 验证计算

  以太坊,与所有的区块链技术一样,使用激励驱动的安全模式。共识基于选择具有最高总难度的区块。矿工创建区块,其他人检测有效性。

  外部账户 vs 合约账户

  1.外部账户(EOA)

  2.存储以太币余额

  3.发送transaction(以太币交易或触发合约代码)

  4.私钥控制

  5.没有代码

  合约账户

  1.存储以太币余额

  2.相关代码

  3.执行代码(被其他合约的transaction或消息触发)

  4.执行任意复杂的操作;操作自己的永久存储

  以太坊区块链上的所有行为都是由外部账户通过transaction触发的。每当合约账户接收到transaction,就按照输入参数的指示执行。合约代码是由参与到网络的每个节点上的以太坊虚拟机执行。

  代码执行的唯一语境是区块链上区块的位置和所有可见的数据。区块链的区块代表时间单位,区块链本身是时间维度,代表在链上区块制定的离散时间点上状态的整个历史。

  所有以太币余额和价值都以wei为单位:1 ether = 1e18 wei

  事务(transaction

  transaction在以太坊里指被签名的数据包,数据包存储着从外部账户发送到区块链上另一账户的消息。

  transaction包括:

  1.消息接收人

  2.签名:用于确认发送方身份和发送消息的意图

  3.VALUE:发送方向接收方转移wei的数量

  4.可选数据域,包括发送合约的消息

  5.STARTGAS:代表transaction执行允许采取的运算步骤的最大数量

  6.GASPRICE:代表发送方愿意支付的gas费用

  消息(message

  合约可以发送消息给其他的合约。消息是虚拟对象,不能被序列化,只能存在于以太坊的执行环境下。可以被想象成函数调用。

  消息包括:

  1.消息发送方

  2.消息接收方

  3.VALUE:发送方向接收方转移wei的数量

  4.可选数据域:发送到合约的实际数据

  5.STARTGAS:限制消息可以触发的代码执行的gas最大值

  本质上,消息就像transaction,只不过消息是由合约而不是由外在因素创造的。

  GAS

  当消息或transaction触发合约执行时,每个指令在每个网络节点都被执行。这是需要代价的:每个执行的操作都有特定的成本,以一定量的gas单元表现。

  Gas是transaction发送方需要为每个以太坊区块链上发生的操作所支付的执行费用。Gas名字的灵感来自一个观点:这笔费用就像加密燃料,驱使智能合约的运行。Gas从执行代码的矿工处购买以太币。

  Gas和以太币被故意分开,因为Gas单位与自然成本的运算类似,而以太币的价格是根据市场而波动的。

  Gas价格实际上由矿工决定,矿工可以拒绝以低于最低限度的gas价格进行transaction。

  以太坊客户端会自用使用以太币购买gas,数量是指定的transaction最大支出。

  在每个合约执行或每个transaction的运算步骤,以太坊协议都要收费,以防止以太坊网络上发生蓄意攻击或滥用。

  每个transaction都必须包含gas限额和愿意支付的gas花费。如果transaction产生的、用于运算步骤的gas总量,包括原始消息和可能引发的子消息,少于或等于gas限额,那么transaction就会进行;如果总量超过限额,那么所有变化都会复原,但是transaction仍然有效,矿工可以收集花费,多余的gas会以以太币的形式偿还给发送方。

  估算transaction成本:

  transaction花费的以太币总量基于两个因素:

  gasUsed是transaction消费的gas总量

  gasPrice是gas单元的价格(换算成以太币)

  总成本 = gasUsed * gasPrice

  gasUsed

  以太坊虚拟机上的每个操作都会被指派消费的gas数量。gasUsed是所有执行的操作所需的gas总额。有个电子表格可以看到背后的一些统计。

  gasPrice

(责任编辑:admin)