比特币创世区块里藏着什么秘密?
#创世块留言
这是广为流传的中本聪在创世块的coinbase写下“The Times 03/Jan/2009 Chancellor on brink of second bailout for banks” 这句话正是泰晤士报当天的头版文章标题,如下:
coinbase的值为
"coinbase":"04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73"
解码方法如下:
python shell下:
"04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73".decode('hex')'\x04\xff\xff\x00\x1d\x01\x04EThe Times 03/Jan/2009 Chancellor on brink of second bailout for banks'
或者在shell下
->strings -n 20 blk00000.datEThe Times 03/Jan/2009 Chancellor on brink of second bailout for banks
参考:
http://www.thetimes.co.uk/tto/business/industries/banking/article2160028.ece
https://en.bitcoin.it/wiki/Genesis_block
http://blockindex.info/btc/tx/4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b
http://blockexplorer.com/rawblock/000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
http://blockchain.info/tx/4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b
#隐藏的bitcoin logo
以上图片隐藏在如下交易中:
http://blockindex.info/btc/tx/ceb1a7fb57ef8b75ac59b56dd859d5cb3ab5c31168aa55eb3819cd5ddbd3d806 http://blockindex.info/btc/tx/9173744691ac25f3cd94f35d4fc0e0a2b9d1ab17b4fe562acc07660552f95518
解码方法如下:
把 ceb1a7fb57ef8b75ac59b56dd859d5cb3ab5c31168aa55eb3819cd5ddbd3d806 和 9173744691ac25f3cd94f35d4fc0e0a2b9d1ab17b4fe562acc07660552f95518 交易中所有vxout的scriptPubKey导出:
-
bitcoind getrawtransaction ceb1a7fb57ef8b75ac59b56dd859d5cb3ab5c31168aa55eb3819cd5ddbd3d806 1
导出出所有vxout的scriptPubKey:
"OP_DUP OP_HASH160 3d79626567696e206c696e653d3132382073697a OP_EQUALVERIFY OP_CHECKSIG" "OP_DUP OP_HASH160 653d38373736206e616d653d626974636f696e2e OP_EQUALVERIFY OP_CHECKSIG", ......
-
删除所有OP CODE,得到如下
'3d79626567696e206c696e653d3132382073697a','653d38373736206e616d653d626974636f696e2e','6a70670d0a2902293d4a2a3a747073702a2b2b2b','2a8a2a8a2a2a290b2a926fa293902a2a77772a54',......
-
转换为hex
'3d79626567696e206c696e653d3132382073697a'.decode(hex)
-
把结果按 yenc 解码:
if c == '=' and esc != 1: esc = 1 continuen = ord(c)if esc: c2 = chr((n-42-64+256)%256) esc = 0else: c2 = chr((n-42+256)%256)
完整的python代码 https://gist.github.com/shirriff/7461227133c26645abdf
python3 parseImageFromBlock.py
讨论见:
https://bitcointalk.org/index.php?topic=8114.0%3Ball
#bitcoin论文
在交易 54e48e5f5c656b26c3bca14a8c95aa583d07ebe84dde3b7dd4a78f4e4186e713 中隐藏着比特币的原始论文
解码方法同上一条:
- 把交易中所有vxout的scriptPubKey导出:
- 删除所有OP CODE,得到如下
- 转换为hex
- 把结果存为pdf
这里 有完整的python代码
python3 parseImageFromBlock.py
论文在这里 就不贴了, 你可以自己转换看看
#Email from Satoshi Nakamoto
在交易 77822fd6663c665104119cb7635352756dfc50da76a92d417ec1a12c518fad69 中隐藏着一封中本聪的电子邮件
解码方法:
- 把交易中所有vxout的scriptPubKey导出,这个scriptPubKey比较特殊: scriptPubKey: OP_IF OP_INVALIDOPCODE 4effffffff 1443 bytes of data OP_ENDIF
- 删除OP CODE
- 转为hex
结果如下:
From a3a61fef43309b9fb23225df7910b03afc5465b9 Mon Sep 17 00:00:00 2001From: Satoshi Nakamoto Date: Mon, 12 Aug 2013 02:28:02 -0200Subject: [PATCH] Remove (SINGLE|DOUBLE)BYTEI removed this from Bitcoin in f1e1fb4bdef878c8fc1564fa418d44e7541a7e83in Sept 7 2010, almost three years ago. Be warned that I have notactually tested this patch.--- backends/bitcoind/deserialize.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-)diff --git a/backends/bitcoind/deserialize.py b/backends/bitcoind/deserialize.pyindex 6620583..89b9b1b 100644--- a/backends/bitcoind/deserialize.py+++ b/backends/bitcoind/deserialize.py@@ -280,10 +280,8 @@ opcodes = Enumeration("Opcodes", [ "OP_WITHIN", "OP_RIPEMD160", "OP_SHA1", "OP_SHA256", "OP_HASH160", "OP_HASH256", "OP_CODESEPARATOR", "OP_CHECKSIG", "OP_CHECKSIGVERIFY", "OP_CHECKMULTISIG", "OP_CHECKMULTISIGVERIFY",- ("OP_SINGLEBYTE_END", 0xF0),- ("OP_DOUBLEBYTE_BEGIN", 0xF000), "OP_PUBKEY", "OP_PUBKEYHASH",- ("OP_INVALIDOPCODE", 0xFFFF),+ ("OP_INVALIDOPCODE", 0xFF), ])@@ -293,10 +291,6 @@ def script_GetOp(bytes): vch = None opcode = ord(bytes[i]) i += 1- if opcode >= opcodes.OP_SINGLEBYTE_END and i < len(bytes):- opcode <<= 8- opcode |= ord(bytes[i])- i += 1 if opcode <= opcodes.OP_PUSHDATA4: nSize = opcode-- 1.7.9.4
专访 Mable Jiang:复盘 Multicoin 投资方法论与 DeFi 洞察
原文标题:《对话 Mable:复盘 Multicoin Capital 的投资方法论与 DeFi 观察 | 链捕手》受访者:Mable Jiang,Multicoin Capital 执行董事撰文:王...
信标链、PoS、分片……接触以太坊 2.0 得先理解这些术语
原文标题:《以太坊 2.0 术语库》整理:ETH 中文网Attestation 证明证明是指验证者所发起的投票,由验证者的签名聚合而成,用以证明区块的有效性,投票通过验证者的余额进行加权。Attest...
手把手教你搭建 IPFS 私有网络
在联盟链的场景下,IPFS 作为去中心化存储的首选方案,本文将介绍如何使用 go-ipfs 搭建一个私有网络并进行简单使用。...