主页 > imtoken靠谱吗 > 以太坊学习-注1

以太坊学习-注1

imtoken靠谱吗 2023-12-30 05:13:12

加密:

1) 椭圆曲线密码学是一种基于离散对数问题的非对称密码学或公钥密码学,以椭圆曲线上各点的加法和乘法表示。

2) 在椭圆曲线算法中,乘以素数模很简单,但除法(逆运算)实际上是不可能的。 这称为离散对数问题,目前还没有已知的陷门。 椭圆曲线密码学广泛应用于现代计算机系统,是以太坊(和其他加密货币)使用私钥和数字签名的基础。 椭圆曲线密码学提供了一种将消息(即交易细节)与私钥结合起来以创建只能在知道私钥的情况下才能生成的代码的方法。 此代码称为数字签名。 椭圆曲线数学意味着任何人都可以通过检查数字签名是否与交易细节和请求访问的以太坊地址匹配来验证交易是否有效。

特点:1)输入可以是任意长度,输出是固定长度; 2)计算消息的哈希值是高效的(线性复杂度); 3)无关性,输入的微小变化导致输出差异太大,无法与原始消息的散列相关联; 4)不可逆性,从消息的哈希值计算出消息是不可行的; 5)防碰撞特性,计算两条不同的消息产生相同的hash输出值,应该是不可能OK的。

使用术语“智能合约”来指代作为以太坊网络协议的一部分在以太坊虚拟机上下文中确定性运行的不可变计算机程序

术语智能合约是指:作为以太坊网络协议的一部分,在以太坊虚拟机的上下文中确定性运行的不可变计算机程序

计算机程序:智能合约是计算机程序

immutable:不可变的,一旦部署,智能合约就无法更改

Deterministic:确定性,一个智能合约的执行结果对每个运行它的人来说都是一样的

EVM 上下文:在以太坊虚拟机的上下文中,智能合约运行在一个非常有限的执行环境中

去中心化世界计算机:EVM 作为本地实例运行在每个以太坊节点上

以太坊中的所有智能合约均由 EOA 发起的交易执行。 智能合约在任何意义上都不是“并行”执行的——以太坊世界中的计算机可以被认为是一台单线程机器。

事务成功终止在不同场景下有不同的含义:

(1) 如果交易从一个 EOA 发送到另一个 EOA,交易对全局状态(如账户余额)所做的任何更改都将被记录;

(2) 如果一个交易从EOA发送到一个没有调用任何其他合约的合约,记录全局状态的任何变化(例如账户余额,合约的状态变量);

(3) 如果交易从 EOA 发送到仅以传播错误的方式调用其他合约的合约,记录对全局状态的任何更改(例如账户余额,合约的状态变量);

(4) 如果一个交易从一个 EOA 发送到一个合约,该合约以不传播错误的方式调用其他合约,那么记录的全局状态可能只有一些变化(例如,账户余额以太坊的两种账户,非错误合约) ,而对全局状态的其他更改未记录(例如,错误合约的状态变量)。

否则,如果事务被还原,其所有影响(状态更改)都会“回滚”,就好像事务从未运行过一样。

合约不可修改,但可以“删除”,从其地址中删除所有代码和存储状态,留下空白账户;

要删除合约,您需要执行 EVM 操作码:SELFDESTRUCT,以前称为 SUICIDE。 此操作会消耗“负气体”,即气体退款,从而激励网络客户端资源从存储状态的删除中释放。 但执行该操作的前提是合约代码中有一段自毁程序,且该程序是可访问的,否则无法删除。

此操作不会删除合约的交易历史(过去),因为区块链本身是不可变的。

编程语言可以分为两大类编程范式:声明式和命令式,也分别称为函数式和过程式。

在声明式编程中,编写函数是为了表达程序的逻辑,而不是它的流程。 例如 SQL。 命令式编程是程序员写出一套组合的程序逻辑和流程的过程,如java、c++。

Solidity 版本控制模型,它将版本号指定为由点分隔的三个数字:MAJOR.MINOR.PATCH。 Solidity 将“次要”编号视为主要版本,将“补丁”编号视为次要版本。 因此,在 0.6.4 中,6 被认为是主要版本以太坊的两种账户,4 被认为是次要版本,0 是补丁。

一个 Solidity 程序可以包含一个 pragma 指令,指定它兼容的 Solidity 的最低和最高版本,并可用于编译你的合约。