教你如何摘取区块链中的明珠 - 智能合约

教你如何摘取区块链中的明珠 - 智能合约

大家好,我是Lucy@FinTech社区,今天的文章将和大家分享算法交易与深度学习。欢迎添加以下微信:fintech78,加入社群,提认知,攒人脉,求职招聘!

Image

近年来区块链成为大热门技术,它引起了全球全方位的关注。本文中,fintech社区将带你一起了解区块链相关技术中落地最有前景的技术之一,智能合约,并且提供实用快捷的入门指南,手把手教你写合约!

 

3分钟看懂智能合约

 

从智能合约的开创者密码学家尼克.萨博的例子开始,对于汽车贷款,如果贷款者不还款,我们有什么好的制约方式呢?

 

目前我们需要复杂的涉及用户、汽车经销商和银行的贷款行为和手续,但当我们发现使用一个合约程序就自动收回房屋的电子钥匙,这将很有吸引力,智能合约是能够自动执行合约条款的计算机程序。计算机代码可以代替机械设备,进行更复杂的数字财产交易。

 

基于此,尼克.萨博进而创造性地抽象提出“智能合约就是执行合约条款的可计算交易协议”,这个简单而朴素的抽象却蕴含了深远博大的意义,因为它涉及了最基础的人类社会经济活动:交易和协议,而且是由计算(程序)完成的。

 

我们思考一下,生活中合同、律师、公证、保险、交易所、银行、甚至法院部分职能不都能被智能合约(程序)所代替吗?智能合约完全有可能是数字社会的基石之一。就像互联网发展过程中建网和网上应用关系一样,作为链上无所不在的智能合约应用将是区块链浪潮中最重要、最活跃的技术。

 

eth生态中的智能合约

从目前最为基础的eth生态来说,智能合约就是基于区块链的可直接控制数字资产的程序。它是位于以太坊区块链上特定地址的代码(其功能)和数据(其状态)的集合。  

 

智能合约是一种以太坊账户。

这意味着他们有余额,他们可以通过网络发送交易。但是,它们不受用户控制,而是被部署到网络并按程序的规划运行。然后,用户帐户可以通过提交执行智能合约上定义的功能的交易来与智能合约交互。智能合约可以像常规合约一样定义规则,并通过代码自动执行它们。智能合约默认无法删除,与它们的交互是不可逆的。

 

任何人都可以编写智能合约并将其部署到eth网络中。我们实际上只需要学习如何使用智能合约语言进行编码,并拥有足够的 ETH 来部署合约。

 

部署智能合约在技术上实际上可以看作是一种交易,因此我们需要以与简单的 ETH 转账支付的方式来支付手续费(在eth生态中被叫做gas)。然而,合同部署的gas成本要高得多。 

 

写出你的第一个eth智能合约

动手写合约之前,首先需要了解语言。

 

在eth生态中,Solidity和Vyper是两个很受欢迎的语言。如果你有python的代码经历,那么对于智能合约的编写也会很有帮助。

 

我们直接给出一个例子帮助大家直观了解智能合约

 

// SPDX-License-Identifier: MIT

pragma solidity >=0.5.17;

contract Counter {

    // Public variable of type unsigned int to keep the number of counts

    uint256 public count = 0;

    // Function that increments our counter

    function increment() public {

        count += 1;

    }

    // Not necessary getter to get the count value

    function getCount() public view returns (uint256) {

        return count;

}}

 

下面按行解释:


 

第 3 行:定义了一个名为Counter的合约。

第 6 行:合约存储了一个无符号整型count,从 0 开始。

第 9 行:第一个函数将修改合约的状态并且increment()变量 count。

第 14 行,第二个函数是一个 getter 函数,能够从智能合约外部读取count变量的值。 

 

第一个简单的智能合约到此结束。正如您所知,它看上去像是 Java、C++这样的面向对象编程语言中的一个类。 

如果有过编写程序的经验,相信你应该可以轻松猜到这个程序是做什么的,如果没有经验也没有关系,你只需要知道这并不难,正确的学习一定可以快速上手!

写出一个合约只是第一步,要将其部署运行,进而和eth网络的千万用户交互还需要一些必备的步骤,但我相信,但你能够写出第一句合约的时候,这个精彩的世界已经向你打开大门。这里也为大家提供优质的入门教材-https://ethereum.org/en/developers/docs/smart-contracts/#top

 

总结

区块链技术的发展为智能合约提供了很好的运行基础,智能合约在区块链上能够发挥重要作用。

然而,智能合约应用还处于早期发展阶段,相关研究相对较少,实际应用中智能合约的适用场景不够丰富,正是开拓抢头矿的好时机,在当下互联网局势不明朗,红利逐渐消失的时代,新领域的机会相信一定能给大家带来极大的价值!

 

关注fintech社区,我们将陪伴你一起探索区块链的更多机会!