智能合约技术简介

    智能合约是存储在区块链上自动运行的脚本.1994 年 Nick Szabo 提出相关概念, 将智能合约定义为一种通过代码程序自动执行的交易协议. 满足合约条款的交易相关者, 无需第三方管理者的监督就可自动执行交易. 由于缺乏可支撑合约自动执行的平台和相关技术, 直到区块链技术的出现, 才使得智能合约这项技术得到应用. 随着区块链的不断发展, 以太坊的出现首次将区块链和智能合约结合, 通过以太坊虚拟机 (Ethereum virtual machine,EVM) 来处理区块链上的交易. 区块链确保了智能合约的用户在可信的环境下遵循合约规则自动执行合约代码, 同时利用区块链的透明性和可追溯性,跟踪合约状态. 智能合约的可扩展性、自动化为 EHR共享提供了便利. 利用区块链中存储的医疗数据、支持外部数据的预言机以及信用度机制, 患者可以在智能合约中设置信用度阈值和其他访问控制参数, 实现复杂的访问控制策略.智能合约预言机机制[19] 验证外部数据. 在智能合约中使用合约自带的函数 ecrecover 可以验证外部数据写入者的签名, 该函数需要数据的 Hash 值和签名对{v, r, s}. 所以对数据的签名需要遵循ecrecover 函数的规则. 实际上, 数据需要经过两次sha256的 Hash 操作后才能进行签名,签名结果中32 字节的 r 和 s 来自椭圆曲线数字签名算法 (Ellipticcurve digital signature algorithm, ECDSA) 的输出值, 一个字节的 v 则是用于恢复签名结果的标识,以太坊中为 27 或 28.
    在智能合约中, 数据主要分为 Storage 和 Memory两种类型, Storage 类型数据也可称为合约的状态变量, 会永久存储在区块链中; Memory 则是临时变量, 交易处理完成后该类型变量会被清空. 所以在编写合约时, 需要为永久存储的数据定义 Storage 类型变量, 而不仅仅是处理交易逻辑.

附参考文章:基于集成信用度评估智能合约的安全数据共享模型. 自动化学报, 2021, 47(3):594−608

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Z_凌云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值