Interface我们就将之想像成是一种标准化的规范,在产品还没开发出来之前,我们心中想必已经有个蓝图,嗯…,这个功能需要什么样的功能,这时候就可以来制定界面,以「设计」为出发点而后再进入「实作」,如此一来我们在设计阶段就能发现一些盲点,减少经过实作过程才发现的窘境,节省繁复修改的成本,而且界面定义出来后...
一个功能越趋完善且复杂的合约,势必会拆成许多合约共同组成,而其实这些组成的合约之中许多的方法、元素都是重复的,因此我们可以使用Inheritance(继承)的技巧,将共同的属性、方法抽到某个上级合约,而其余的合约只要继承自上级合约,就能减少重复开发的状况,我们都知道软体开发的过程,只要开发的原始码越多,维...
Solidity支持两种特殊的函数,分别是Fallback以及Receive,一个是处理合约中不存在的功能时进行的回退机制,而另一个Receive则是负责收款后的动作,但两者称为特殊函数的原因主要是跟我们一般函数不同的地方于它们是属于匿名的函数,也就是不用给定Function名称,因此才会较为特殊,至于详...
为什么要特别介绍可视范围呢?试想,假如我们的合约里有些非常重要的内容只能局限于合约内使用,此时就可以运用可视范围的技巧,将某些重要的功能、状态锁定在合约内使用,不随意开放给外部调用,避免污染内部,但有些又是共用的内容及功能时,我们就可以利用公开的可视范围让相同的功能能够重复使用。
合约中又可以依照不同...
Solidity语言的错误检查提供了Require()、Revert()、Assert(),这三种方便的API调用,而这三种用途分别不同,毕竟牵涉到瓦斯费的问题,因此才会与过往的程序语言有些许的差异,
Require
require()通常会被使用在输入值的验证检查,因为它的特性主要是能够退回剩余...
Remix IDE的Debug方式其实也类似于我们开发软件程序过程中的Debug流程,编辑好程序代码之后,经过编译,发布到暂存链上,对每一个区块进行Debug,过程中逐步排查出每一个步骤的问题点。
Remix IDE这套编辑器的好处就是使用起来非方便,不会让我们害怕区块链的开发,也透过虚拟链的方式让我...
「人」与「人」之间无非时时刻刻都在交易,只是每一种交易的形式与媒介有所不同,而区块链的世界也有特定的交易单位,主要分为两大类型的单位, 分别是以太币单位以及时间单位。
以太币单位
最小单位为「wei」, 而其余主要会用到的单位分别是「gwei」与「ether」。
时间单位
时间单位的...
这次的篇章主要在介绍智能合约状态的可变性,透过约束来限制状态,避免随意更改状态导致错误的合约出现。
我们都知道状态在智能合约中扮演着非常重要的角色,经过什么事件之后变化为什么状态,甚至某些特定状态是不可被修改的,又或者是某些功能开放给外部使用时,不可以读取到合约内状态…,都围绕在可变与不可变之间,而S...
今年加密货币被盗的规模已经创下历史新高,黑客从加密应用程序中窃取了超过2B 美元。本文将通过分析100个加密货币黑客攻击事件,对加密货币黑客攻击进行分类,概述迄今为止最有利可图的黑客所使用的方法并讨论加密货币安全的未来。
加密黑客攻击的分类
加密应用生态系统由可互操作的协议组成,由智能合约提供支持...
10月7日BNB Chain的跨链桥(BSC Token Hub)遭到黑客攻击, 有价值约5亿美金的BNB 被黑。由于涉及的金额较为庞大,并且涉及多个链之间的跨链,目前总损失金额仍未确定。
那么,这起震动整个加密行业的重大安全事故是如何发生的呢?下文将为你一一进行分析。
为何黑客会盯上BNB...