通常比特币都是以虚拟货币的概念出现在大众眼前,实际上比特币是第一个真正的区块链"平台",利用它去中心化.不可篡改.可追溯等特点不光可以实现多种交易模式(如点对点交易.多重签名交易等),还可以实现虚拟货币以外的其他功能(如数据染色等,这些功能内容不是本节讨论范畴). 那比特币究竟是如何实现多种多样的功能的呢? 最重要的原因是比特币的交易过程是非静态的,而是通过锁定脚本(locking script)与解锁脚本(unlocking script)实现动态的交易过程.今天我们主要来探寻比特币…
P2SH(pay-to-script-hash)多重签名的脚本 P2SH是多重签名的一种应用形式.在P2SH的交易中,多了一个Redeem Script的概念,称为赎回脚本.当向P2SH脚本的地址转账时,锁定脚本中填写的不是公钥地址的列表,而是Redeem Script的hash值,这样锁定脚本变的非常短.只有在P2SH向外转账时的解锁脚本才会很长.这样就避免了多重签交易中锁定脚本过长导致交易费也骤增的问题. 一个M-N的P2SH交易,赎回脚本Redeem Script的一般形式是: OP_M…
脚本格式 P2PKH的锁定脚本为: OP_DUP OP_HASH160 PUSHDATA(<Cafe Public Key Hash>) OP_EQUALVERIFY OP_CHECKSIG P2PKH的解锁脚本为: PUSHDATA(<Cafe Signature>) <Cafe Public Key> 脚本参数解释 脚本中的常量值 OP_DUP=0x76 OP_HASH160=0xA9 OP_EQUALVERIFY=0x88 OP_CHECKSIG=0xAC PUS…
本节内容非常重要,如果你不能很好的掌握本节内容,你无法真正理解比特币的运行原理,请务必要学习清楚. 比特币的交易模型为UTXO(unspend transaction output),即只记录未花费的比特币输出,每次交易花费的是之前的某一个或多个输出. 什么是UTXO? 以下借用一下网上的图 我们在现实世界中的支付系统是基于账户模型的,也就是说每一个人都有一个账户,支付就是在不同的账户中加加减减,类似如下: UTXO的实现,图示如下: 从上面的图中可以看出,比特币存储的实际是一笔又一笔的交易,最…
2014-12-24 Created By BaoXinjian…
比特币 解锁脚本signature script 包含了那些东西? 使用 UTXO 需要私钥签名,私钥到底都签了什么东西呢?一直比较好奇. 比特币的私钥签名总共有五中类型,具体见 btcd 代码,如下: // SigHashType represents hash type bits at the end of a signature. type SigHashType uint32 // Hash type bits from the end of a signature. const ( S…
Script标签和脚本执行顺序 这里详细聊聊和script标签相关的脚本执行顺序. Script标签的默认行为 几个首要特性: script标签(不带defer或async属性)的会阻止文档渲染.相关脚本会立即下载并执行. document.currentScript可以获得当前正在运行的脚本(Chrome 29+, FF4+) 脚本顺序再默认情况下和script标签出现的顺序一致 假设如下简单代码1,最终会产生三个alert依次为“A”.“B”.“C”. <!-- HTML Code -->…
一.Cross Frame Script (跨框架脚本) 攻击什么是Cross Frame Script?很简单,做个实验就知道了.把下面的这段HTML代码另存为一个html文件,然后用ie浏览器打开.<html><head><title>IE Cross Frame Scripting Restriction Bypass Example</title><script>var keylog='';document.onkeypress = fu…
一.Cross Frame Script (跨框架脚本) 攻击 什么是Cross Frame Script? 很简单,做个实验就知道了.把下面的这段HTML代码另存为一个html文件,然后用ie浏览器打开. <html> <head> <title>IE Cross Frame Scripting Restriction Bypass Example</title> <script> var keylog=''; document.onkeypr…
http://blog.csdn.net/gz_huangzl/article/details/52486509 前言 在我们开发游戏的过程中,经常会碰到脚本引用丢失的情况,但是怎么把它们修复到我们的理想情况呢?先在这打个预防针,不是所有情况下的脚本引用丢失都能修复,但绝大多数情况下都是可行的,只要你知道原来脚本的GUID和FILEID(不知道也可以在prefab中找到),最重要的是你要有(必须有)用来做修复的脚本GUID和FILEID,要不然就没办法修复 了. 我举个极端情况,假如Prefab…