智能合同开发简介第二步:熟悉区块链的基础知识

智能合同开发简介第二步:熟悉区块链的基础知识

对于程序员来说,区块链的概念并不难理解。这是因为大多数困难的事情(挖掘、散列、椭圆曲线加密、对等网络(P2P)等)。)仅用于提供特定的功能和承诺。你只需要接受这些已有特性和功能,不必关心底层技术。比如亚马逊AWS的内部原理是不是一定要知道才能用?

交易/交易

区块链是一个全球共享的事务数据库,这意味着每个人都可以加入网络来读取数据库中的记录。如果您想更改数据库中的某些内容,您必须创建一个被所有其他人接受的事务。事务这个词的意思是你想做的事情(假设你想同时改变两个值)要么根本就完成了,要么完全完成了。此外,当您的事务应用于数据库时,其他事务不能修改数据库。

例如,假设有一个表列出了所有加密货币账户余额。如果一个请求从一个帐户转移到另一个帐户,数据库的事务性质确保如果从一个帐户中扣除了金额,它总是被添加到另一个帐户中。如果由于某种原因,金额不能添加到目标帐户,源帐户将不会改变。

此外,事务总是由发送者(创建者)签名。

这样,为数据库的特定修改添加访问保护机制就非常简单了。就电子货币而言,一张简单的支票就能确保只有持有账户钥匙的人才能从中转账。

街区

比特币中,需要解决的一个主要问题叫做“双花攻击”:如果网络中有两笔交易,当他们都想花光同一个账户中的所有钱(所谓的冲突)时会发生什么?冲突交易?

简而言之,你不必在意这个问题。网络会自动为你选择一个事务序列,打包成所谓的“块”,然后它们会在所有参与的节点中执行和分发。如果两个事务相互矛盾,那么在最终确认后发生的事务将被拒绝,并且不会包括在块中。

这些街区在时间上形成了一个线性序列,这就是“区块链”这个词的由来。块以一定的时间间隔3354被添加到链中,对于以太坊,这个间隔大约是17秒。

作为“顺序选择机制”(所谓的“挖掘”)的一部分,有时可能会发生块回滚,但只是在链的“末端”。最后添加的块越多,回滚的可能性就越小。因此,您的交易可能会被回滚,甚至从区块链中删除,但您等待的时间越长,这种情况发生的可能性就越小。

需要注意的是,不能保证该交易将被包括在下一个区块或任何特定的未来区块中,因为它不是由交易的提交者决定的,而是由决定该交易将被包括在哪个区块中的矿工决定的。

如果您希望安排合同的未来调用,您可以使用合同自动化工具或类似的oracle服务。

中国领先的Web3.0倡导者

版权声明:区块链工程 发表于 2022-10-20 8:48:06。
转载请注明:智能合同开发简介第二步:熟悉区块链的基础知识 | 零零洞洞

暂无评论

暂无评论...