区块链智能合约Coursera(第一周)智能合约基础

课程链接 https://www.coursera.org/learn/smarter-contracts/home/week/1

这是区块链专项课程的第二门课 智能合约 Smart Contracts

为自己学习记的笔记,翻译可能存在问题,望谅解。

智能合约 Smart Contracts

智能合约基础 Smart Contract Basics

目录

Why Smart Contracts?

智能合约定义(第1部分)(Remix IDE和Greeter演示)

智能合约定义(第2部分)(Simple Storage Demo)

处理智能合约(compilation artifacts 演示)

部署智能合约 Deploying Smart Contracts

REQUIRED Quiz Resources and Directions: Smart Contract


Why Smart Contracts?

智能合约的概念早在比特币问世之前就已经存在。 计算机科学家尼克·萨博(Nick Szabo)详细介绍了他的加密货币比特金的概念,他还在1996年的出版物中概述了智能合约的概念。 实际上,Szabo在20多年前就创造了“智能合约”一词。 智能合约是以太坊区块链的核心和主要推动力。

智能合约的设计和编码不当会导致重大故障,例如DAO hack和Parity钱包锁定。正如我们在课程一中讨论的那样,比特币具有包含规则和策略的脚本功能。 Linux Foundation的Hyperledger区块链具有称为Chaincode的智能合约功能。Chaincode用Go语言编写,并在docker环境中执行。 Docker是用于执行程序的轻量级容器技术。 您可以在参考资料部分中找到更多关于这些的信息。

学习目标:
1)能够解释智能合约的元素
2)讨论智能合约编程语言Solidity的语法和语义
3)解决问题并设计智能合约解决方案
4)使用remix开发环境进行构建测试智能合约,并使用remix部署智能合约,并从简单的Web界面调用合约。

在本课程中,必须在测试环境中尝试各种与智能合约有关的概念,以便理解和应用这些概念。我们将使用remix集成开发环境IDE,它是用于动手探索的Web界面。目前,请确保您能够在remix.ethereum.org上访问此界面。请注意,remix只是一个开发环境,并且随着添加新功能(甚至每周一次)而不断变化。本课程是您尝试智能合约的课程。下一课程中,我们将使用智能合约开发完整的端到端应用程序。完成本模块后,您将能够解释智能合约的元素,并解释智能合约可以解决的问题的类型,定义智能合约的结构,运用这些知识来理解真正的智能合约写的内容在Solidity语言中,使用Web开发环境remix来调用智能合约并与之交互。

比特币区块链主要用于传输数字货币。 比特币通过嵌入式脚本添加了简单的条件式价值转移。这是一个有条件的功能,被引导为比特币的软分叉。 该脚本的功能受到限制。 它启用了简单的条件转移。

比特币之后,发展了以太坊。 以太坊的创始人开发了智能合约,牢记了20年前尼克·萨博(Nick Szabo)关于智能合约的想法。
以太坊的一项重要贡献是可工作的智能合约层,该合约层支持在区块链上执行任意代码。 智能合约允许用户定义任意复杂的操作。 该功能增强了以太坊区块链成为强大的分散式计算系统的能力。

为什么要转移货币?
诸如比特币之类的加密货币无需任何中间人就能从点对点进行货币或货币等价值的转移。 为了什么? 为了赠送礼物,购买产品,甚至可能续签驾照,或送花给某人。
例如,我们可能希望在特定日期送达礼物。 购买具有特定颜色和质量的产品。 我们可能需要验证某些凭证才能续订许可证。 
这引入了条件,规则和策略,而简单的汇款加密货币协议无法处理这些条件,规则和策略。 智能合约可满足针对区块链应用程序的特定于应用程序验证的需求。

智能合约具有一些优势:
1)智能合约可促进交易以转移价值或加密货币以外的资产。
2)智能合约允许规范区块链上的操作规则。
3)它促进了分散网络中资产转移政策的实施。
4)它还为区块链增加了可编程性和智能性。
5)智能合约代表业务逻辑层,实际逻辑以特殊的高级语言编码。
6)智能合约嵌入了可以由类似于函数调用之类的消息调用的函数。 这些消息和单个消息的输入参数在事务中指定。

比较比特币交易和智能合约交易
比特币中,所有交易都与发送价值有关。
在支持智能合约的区块链的情况下,交易可以嵌入由智能合约实现的功能。

在这里,我们有一个投票智能合约。 这些功能是 Validate Voter,Vote,Count,Delare Winner。 智能合约提供了可以在区块链上执行的计算逻辑层,从而利用了区块链框架启用的功能。 回想一下我们在课程一,模块二中讨论过的去中心化应用程序的各层。 观察该智能合约为域应用程序提供了应用程序框架。 例如,考虑住房抵押贷款申请。 智能合约可以嵌入规则和法规的所有业务逻辑和智能,以实现自动计算和启动操作。

这与现有系统有何不同?
在这里,所有操作都是透明的,并记录在区块链上。 客户无需银行等中介就可以直接访问这些工具。 就像自动柜员机启动抵押贷款一样。

智能合约可以解决哪些问题?
通常,货币转移用于从个人或企业购买服务,产品或实用程序。 在执行交易时,除了资金可用性外,可能还有其他条件。例如,业务交易可能涉及规则,政策,法律,法规和管理环境。智能合约允许在区块链上实现这些其他现实世界的约束,因此,智能合约可以在区块链上实现各种任意复杂度的分散应用。这可以涵盖从供应链到灾难恢复的整个范围。可能尚未构思出区块链技术的许多应用程序。智能合约正在引领下一代区块链,超越了将价值转移到有远见的领域。智能合约允许实施规则,政策,并借助区块链,支持治理和出处的方法。

阅读材料:
Smart Contract: Building blocks for digital markets

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
智能合约的理念,何谓“抵押品”? “抵押品”的目的是什么?它怎样梳理了我们的已 有的关系? 我认为,尤其是合约的规范化,在我们的关系层面实现了理想化抵押品 的蓝图。 多种类型的合约条款, 如抵押品,债券,产权界定等等, 可以嵌入在我 们执行条款的硬件和软件中,通过这样的方式使那些不遵守协议者的违约成 本很高,(如果需要的话,令人望而却步的)。举一个典型的活生生的例子, 我们可以认为智能的原始祖先,是不起眼的自动售货机。 在潜在的、 损失有 限的评估后,使钱箱里的钱远远少于破坏者付出的代价。 根据显示的价格该 机收取硬币, 通过一个简单的机制形成了最初的计算机设计科学,有限自动, 传递变化和制造。自动售货机是搬运合约:任何持有硬币的人可以与供应商 交易。锁箱和其他安全机制保护储藏的硬币和货物会不被破坏, 足以允许自 动售货机有利可图地在各种各样的区域部署。 优越于自动售货机,智能合约通过数字的方法来控制有价值的、所有类 型的任何资产。智能合约涉及到一个动态的、经常主动运作的财产,且提供 更好的观察和核查点,其中主动措施必须分毫不差。 作为另一个例子,为汽车而设计出的假想数字保障系统。智能合约设计 策略建议:持续完善抵押品协议以便其更充分地嵌入到处理资产的合约条款 中。根据合约条款, 这些协议将使加密密钥完全控制于具有操作属性的人,其人正当地拥有该财产。在最简单的实现中,为了防止偷窃,除非被合法的 拥有者完成正确的”挑战-应答“过程,否则车可以呈现出不可操作状态。 如果汽车用做以确保还贷,在这种传统的方式来在实现强大的安全性同 时将创造一个头痛的债权人 - 收款人将不再能够查收赖账的车。为了解决这 一问题,我们可以创建一个智能扣押权协议:如果物主不交费,智能合约调 用扣押权协议,其把车钥匙的控制权交给银行。该协议可能会比雇佣追债人 更便宜、 更有效。进一步的细化,如生成可证明的扣押权权注销,以及当贷 款已还清、处于困境和意外情况下的账户操作。例如,当车子在 75 号高速路 上奔跑的时候,撤销车子的操作将是粗鲁的。 在连续细化的过程中,我们从一个粗糙的抵押品体系,具体化到一个个 具体化的合约: (1)选择性地允许业主锁定和排除第三方 (2)允许债权人接入的秘密途径 (3A)只在违约一段时间且没有付款时秘密途径被打开; 并且 (3b)最后的电子支付完成后将永久地关闭秘密途径。 成熟的抵押品体系将针对不同的合约执行不同的行为。继续讨论我们的 例子,如果汽车的合约是一个租赁,最终付款将关闭承租人访问权; 购买了 债权,那就关掉债权人的访问。通过连续的重新设计方式,抵押品体系越来 越接近其合约的精髓:管理了覆盖财物,信息或被抵押的。可定性的、 不同 的合约条款,以及在财产在属性的技术差异,则引出不同的协议
学习智能合约安全审计需要具备以下知识和技能: 1. 区块链技术基础:了解区块链技术的原理和基本概念,熟悉 Solidity 语言的基本语法和数据类型。 2. 智能合约开发经验:了解智能合约的开发流程和部署过程,能够熟练使用 Remix、Truffle 等工具进行智能合约开发。 3. 安全知识:了解常见的安全漏洞和攻击方式,包括重入攻击、溢出漏洞、变量覆盖等。 4. 代码审计能力:能够对智能合约代码进行审计,发现其中的潜在安全问题,了解常见的审计工具和技术。 5. 漏洞修复能力:能够对发现的安全漏洞进行修复和优化,提高智能合约的安全性。 学习智能合约安全审计可以通过以下途径: 1. 在线课程:可以选择一些在线课程,如 Coursera、Udemy 等平台上的智能合约安全审计课程,学习智能合约基础知识和安全审计技能。 2. 书籍:可以阅读一些智能合约安全审计相关的书籍,如《Solidity Programming Essentials》、《Mastering Blockchain》等。 3. 社区论坛:可以参与区块链社区的讨论和交流,了解最新的智能合约安全问题和解决方案。 4. 实践经验:通过实践经验不断积累智能合约安全审计的能力,可以参加一些智能合约开发和审计的项目,提高自己的技能水平。 总之,学习智能合约安全审计需要不断积累知识和经验,同时注重实践和交流,不断提高自己的技能水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值