风险提示:理性看待区块链,提高风险意识!

比特币的脚本是做什么的?

2个回答

天豹,债权置3星评价

2020-11-03 15:03:21

比特币的脚本是做什么的?

其实我们可以这样看待比特币的交易:『交易的发起者悬赏若干比特币,在网络上贴出了一到数学题,谁解出了这道数学题,悬赏就归谁了』。 顺着这个思路,Alice对Bob的转账可以理解为『Alice把一道只有Bob才能解开的数学题发到网络上,Bob解出题并拿走了悬赏』。那么,每个交易数据中都会出现的『脚本』就是题和解,『脚本语言』就是用来描述题和解的工具。

『输入脚本』和『输出脚本』

在这里我们先讨论单输入单输出的比特币交易,因为这样描述起来更方便且不影响对『脚本』的理解。

这是一个单输入单输出交易,看下我们要关注的数据:

前导输入的Hash:

输入脚本 scriptSig:

转账值:

0.05010000 btc

输出脚本 scriptPubKey:

假设Alice是转账发送者,Bob是接受者。那么『输入交易』表明了Alice要动用的比特币的来源,『输出交易』表明了Alice要转账的数额和转账对象——Bob。那么,你可能要问,数据中的『输入脚本』和『输出脚本』是不是就是题和解?对了一半!

听风,闻雨,6星评价

0000-00-00 00:00:00

比特币脚本是一个功能比较少的编程语言,满足比特币系统的正常运行需求,同时最大化保证了安全性。

比特币脚本是图令不完备的。所谓图灵不完备意思就是缺少当代语言所必须的一些功能,例如循环。但是,功能的有限也最大化的减小了系统的受攻击面积,例如,可以防止有人利用无线循环来给系统安一个炸弹。

比特币脚本是一种基于栈的语言。可以把栈想象成堆叠到一起的几本书,push 操作相当于添加一本书,pop 操作相当于抽出一本书。每次执行的都是最顶部的操作,每个操作都对应一个操作码,简称 opcode 。

总之,比特币脚本是一个图灵不完备的基于栈的语言。

热搜币种 更多

币种价格24H 涨跌幅
  • FTT

    FarmaTrust

    ¥17.61

    2.4923 USDT
    -3%
  • BTC

    比特币

    ¥440,347.47

    62338.61 USDT
    -1.88%
  • CFX

    Conflux Token

    ¥1.31

    0.1852 USDT
    -0.91%
  • XCH

    奇亚

    ¥113.90

    16.1241 USDT
    -7.54%
  • DOGE

    狗狗币

    ¥0.76

    0.1073 USDT
    -5.71%
  • TRX

    波场币

    ¥1.10

    0.156 USDT
    +1.1%
  • FIL

    Filecoin

    ¥26.11

    3.6964 USDT
    -2.2%
  • SOL

    Solana

    ¥1,013.23

    143.44 USDT
    -3.67%
  • SHIB

    柴犬币

    ¥0.00

    1.735E-5 USDT
    -5.81%
  • CELO

    Celo

    ¥4.99

    0.7065 USDT
    -8.96%
  • DYDX

    dYdX

    ¥6.36

    0.9004 USDT
    -0.96%
  • HT

    火币积分

    ¥3.69

    0.5226 USDT
    -4.51%