V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
ITrecruit1
V2EX  ›  问与答

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

  •  
  •   ITrecruit1 · 2023-05-06 17:20:42 +08:00 · 562 次点击
    这是一个创建于 567 天前的主题,其中的信息可能已经有所发展或是发生改变。
    FinTech 社区是 5 万+专注于量化投资 /区块链 /金融科技 /AI 行业的国际招聘社区,欢迎加微信:smilejin689
    加入社区交流!

    - 官网:www.fintechgl.com
    - B 站视频 : https://space.bilibili.com/1426020404
    - 小红书: https://www.xiaohongshu.com/user/profile/63620ca1000000001f014d66?xhsshare=CopyLink&appuid=63620ca1000000001f014d66&apptime=1681374159
    - 公众号:FinTech 社区咨询

    近年来区块链成为大热门技术,它引起了全球全方位的关注。本文中,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

    总结
    区块链技术的发展为智能合约提供了很好的运行基础,智能合约在区块链上能够发挥重要作用。
    然而,智能合约应用还处于早期发展阶段,相关研究相对较少,实际应用中智能合约的适用场景不够丰富,正是开拓抢头矿的好时机,在当下互联网局势不明朗,红利逐渐消失的时代,新领域的机会相信一定能给大家带来极大的价值!

    Web3 招聘:前端工程师
    公司亮点:中美团队,与硅⾕资深⼯程师合作
    年薪:open
    地点:远程
    推荐奖:5k

    1 ,985211 背景优先
    2 ,熟练掌握 JavaScript ,CSS ,HTML 等前端技术
    3 ,senior 优先 5-10 年经验

    关注 fintech 社区,我们将陪伴你一起探索区块链的更多机会!
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2011 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 00:20 · PVG 08:20 · LAX 16:20 · JFK 19:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.