当前位置:首页 > BTC入门 > 正文内容

比特币脚本语言能做什么:不是图灵完备,但能实现复杂逻辑

newbie3个月前 (06-08)BTC入门98

比特币不是以太坊,但它有自己的"程序"。

说比特币"不能编程"跟真相差了一大截——只是编程方式完全不同。比特币用一种叫Script的脚本语言,核心任务不是建复杂应用,而是验证"这笔钱该怎么花出去"

Script把你的钱锁在规则里,想花掉就得提供能解开这道锁的"钥匙"。这些规则就是比特币脚本能做的事。

各大交易所注册链接:

欧易官网

币安官网

芝麻Gate


Script是什么:为"花钱"设计的简单语言

Script是一种基于堆栈的语言,不是给普通人写复杂逻辑的,而是让节点快速验证这笔钱到底归不归你。设计原则就两条:简单、安全。

执行顺序是后进先出——数据推入堆栈,操作码对栈顶数据操作,结果推回堆栈。操作码本质上就是一条指令,规定计算机执行什么动作。思路很直接:把数据摆上去,上指令,看结果。

Script不是图灵完备的,没法实现循环或递归。每次验证必须在有限时间内完成,不会有死循环拖垮网络。这种可预测性是比特币稳定性的保障。

你不需要自己写脚本,平时转账时背后的验证逻辑已经由脚本帮你完成了。

五种标准交易类型

交易类型全称应用场景地址特征
P2PKHPay to Public Key Hash最常用单地址转账1开头
P2SHPay to Script Hash包装复杂脚本(多签、时间锁)3开头
P2WPKHPay to Witness Public Key HashSegWit单地址交易bc1q开头
P2WSHPay to Witness Script HashSegWit版P2SHbc1q开头
P2TRPay to TaprootTaproot升级后,隐私最佳bc1p开头

操作码组合:能实现哪些交易逻辑

脚本功能与交易类型

常用操作码分几类:基础操作(OP_0OP_16)、堆栈操作(OP_DUP)、算术逻辑(OP_ADD)、加密哈希(OP_HASH160OP_SHA256)、验证签名(OP_CHECKSIGOP_CHECKMULTISIG)、条件控制(OP_IFOP_ELSE)。

这些基本组件组合起来,能搞出不少高级功能:

多重签名(Multisig)

多个私钥同时签名才能花钱。比如3-of-5——5个人里3个同意,资金才能动。公司金库、联合托管用得最多。核心操作码是OP_CHECKMULTISIG

哈希时间锁合约(HTLC)

典型的条件支付:你能揭晓一个哈希值的原始数据,就能在特定时间窗口内认领这笔钱,超时退回原持有人。闪电网络里的资产交换,就是用HTLC撑起来的。

时间锁(Timelock)

指定时间点或区块高度后资金才能花。继承人设定未来某天才能解锁资产,或者把钱锁到退休后才能动。CLTV和CSV是常见实现方式。

离散对数合约(DLCs)

接入预言机,根据链外现实数据(市场价格、比赛结果)触发执行。可用于构建预测市场。


交易结构:脚本放在哪,怎么执行

比特币交易由锁定脚本解锁脚本两部分组成。前者锁资金,后者提供钥匙。验证时两段脚本拼接执行。

基础验证如P2PKH,高级脚本通过P2SH包装后链上只暴露哈希值,实际逻辑延后暴露。闪电网络通道建立依赖P2SH包装HTLC合约。Taproot引入的P2TR让复杂脚本的执行条件可以隐藏,只在真正用到时才暴露逻辑,隐私和效率都提上去了。


二层才是脚本的真正舞台

二层网络扩展示意

比特币可编程性的伸展空间在二层网络。主链只保最终资金安全,具体业务逻辑交给Layer 2。

闪电网络:通过HTLC构建数千个链下支付通道,高频小额交易不写主链,只在最终结算时回写。二层跑得流畅,主链依旧简洁。

RGB、Taproot Assets:Ordinals和Runes把NFT和代币引入比特币,利用隔离见证或taproot字段存数据,扩展了应用场景。

侧链(Liquid、Rootstock等):BTC通过桥锁到侧链,在那里跑更复杂的DeFi,最后回主网。Script的安全性负责桥接环节的最后保障。

在二层跑功能,主链只负责记账和最终清算。


Script vs 以太坊Solidity

对比维度比特币Script以太坊Solidity
语言范式基于堆栈高级面向对象
图灵完备否,有意限制
状态存储无全局状态,UTXO全局状态存储
执行环境交易验证时触发EVM虚拟机
主要用途锁定/解锁资金,验证条件构建复杂交互,全功能DApp
安全哲学保守优先,防攻击灵活优先,需审计

Script"不能"做的事

因为故意设计成非图灵完备,很多事它不参与:

  • 不能写复杂循环:没有递归,防止DoS攻击和服务过载

  • 没有全局共享状态:无持久化账本,合约无法记录全局进展,攻击面窄

  • 不支持复杂交互式DApp:支付验证层不支持多轮链上交互,复杂场景只能推到Layer 2

这种"减法设计"恰好是比特币高安全性的底气。


一张表看清Script能做什么

功能层级具体能力典型应用
基础交易验证P2PKH,标准单签日常收付款
自定义解锁条件多签、时间锁、哈希锁、条件分支托管钱包、继承计划、闪电网络、原子交换
高级脚本结构P2SH封装、Taproot多路径合约隐藏降低链上成本,提高隐私和效率
扩展资产发行Ordinals NFT、Runes代币数字艺术品、项目代币
二层智能合约闪电网络、DLC预言机、侧链/桥接链下高频交易、预测市场、跨链DeFi

未来趋势:Covenants可在脚本中限定交易花费方向;BitVM、Simplicity试图在不牺牲安全的前提下补齐高阶能力;sCrypt这类基于TypeScript的嵌入式语言,让开发更接近传统编程体验。


本文仅供参考,不构成投资建议。各版本Bitcoin Core对操作码支持有差异,部分已禁用,请以官方文档为准。


相关文章

比特币地址1、3、bc1开头有什么区别?

比特币地址1、3、bc1开头有什么区别?

在比特币钱包里新建一个收款地址,有时是熟悉的1开头,有时会变成3或者bc1。很多人用惯了1开头的地址,看到另一种开头的就不太敢用,担心是不是复制错了、会不会不兼容。其实这三种地址都是比特币主网上完全合...

比特币的数字签名是如何工作的?从"签字画押"到全网验证

比特币的数字签名是如何工作的?从"签字画押"到全网验证

现实中签支票签合同,你签下的名字代表"我同意这笔交易,我是本人"。但比特币这个没有银行、没有中间人的系统里,问题来了——谁能证明一笔转账真的是你发起的?答案不靠任何第三方,靠的是密...

比特币难度调整怎么算?公式只有一个

比特币难度调整怎么算?公式只有一个

比特币挖矿大家多少都听过,知道算力、区块奖励、减半这些词,但问到一个关键问题就卡住了——不管多少人在挖矿,比特币怎么保证出块速度稳定在10分钟左右?答案藏在代码里一个反复执行的函数中:每2016个区块...

手把手教你完成第一次比特币购买

手把手教你完成第一次比特币购买

重磅合规风险提示:根据2026年2月央行等八部门联合发布的最新监管通知,我国内地全面禁止任何虚拟货币兑换、交易、炒作活动,虚拟货币相关业务属于非法金融活动,不受法律保护。本文仅对欧易海外平台功能界面、...

第一次买比特币,选哪个交易所?一张表对比新手友好度,看完不再纠结

第一次买比特币,选哪个交易所?一张表对比新手友好度,看完不再纠结

别纠结了,先看一组数据2026年6月,币安以日均650亿美元以上的交易量稳坐全球第一,欧易紧随其后排第二。两家加起来吃掉了华语用户将近80%的市场份额。你在任何一个币圈群里问"买币用什么&q...

一个比安账户,搞定你的第一枚比特币:从开户到现货买入的极简路径

一个比安账户,搞定你的第一枚比特币:从开户到现货买入的极简路径

前言:新手买币的核心痛点,从来不是行情而是流程信息差绝大多数加密新手的首次入场亏损,并非源于行情判断失误,而是入门阶段的系统性信息差。市面上多数教程混杂2023、2024年老旧规则,混淆快捷买币与自选...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。