1日1TryHackMe
今日から、とりあえず7月いっぱい、TryHackMe のタスクを進めるというタスクを自分に課す。 頻度は最低2日に1つ。目標は低く。
今日は Burp Suite の Room の Task6: Proxy を完了した。
このタスクを自分に課す理由は、自分がサイバーセキュリティ(特に Offensive Security)関連の仕事を好きになれるかどうか確かめるという側面が強い。 サイバーセキュリティに昔から憧れはあり、特に Offensive Security の知識や技術を持っていることは、国家が核兵器を持っていることと同じで、社会で生存していく上で役に立つと思っている。
しかし憧れと好きは別物で、現時点で「サイバーセキュリティが好き」とはとてもではないが言える状態ではない。といっても人間の好き嫌いというのは案外ぼやっとした掴みどころのない概念で、好きだと思い込めば好きなのだ。好きだと思うためには腰を据えてやってみないとなれないのだ。
ということで、ひとまず1 ヶ月やってみます。 好きになれそうにない、サイバーセキュリティは人生で苦しみしか産まないと思ったら、スッパリやめます。
Twitter で、ツイートの status_id しか分からないときに URL を知る方法
例えば、以下のような status_id だけを知っているときってありますよね。
1249127951154712576
その status (tweet) のURLを知りたいときは、2021年1月現在では、 https://twitter.com/twitter/status/STATUS_ID にアクセスすると、元のツイートのURLにリダイレクトしてくれます。
https://twitter.com/twitter/status/1249127951154712576
友達と会えない。飲み会もできない。
— 安倍晋三 (@AbeShinzo) 2020年4月12日
ただ、皆さんのこうした行動によって、多くの命が確実に救われています。そして、今この瞬間も、過酷を極める現場で奮闘して下さっている、医療従事者の皆さんの負担の軽減につながります。お一人お一人のご協力に、心より感謝申し上げます。 pic.twitter.com/VEq1P7EvnL
以上です。
wkhtmltopdf を mac へインストールする方法1選
brew formulae を見ましょう!公式が一番。
"No this, no that" から理解する MimbleWimble
MimbleWimble の wiki に、"No this, no that" と呼ばれる標語のようなものを記したページがある。
no addresses no visible amounts no transaction history no reward changes no fixed supply no deflation no trusted setup no ring sigs no moon math no hashcash no asic aversion no ico no premine no instamine no mining tax no masternodes no room for spam
他の暗号通貨にはあるこの要素は MimbleWimble にはない、というものが羅列されている。それだけシンプルさを重視したブロックチェーンだと言えるだろう。 この中からいくつかをピックアップして、MimbleWimble の技術について見てみよう。
no addresses
MimbleWimble には address という概念がない。ではどのように送金を行うのか。 MimbleWimble の送金では、ウォレット同士がインタラクティブにやり取りをしなければならない。Bitcoin においては、transaction は sender が送信先アドレスをもとに一人で作成するが、MimbleWimble の transaction では sender と receiver 互いに協力して transaction をつくる。
さらに言えば、transaction はブロックに取り込まれた時点でもはや transaction という単位としては存在しない。input と output があるだけである。
no visible amounts
MimbleWimble では、送金額はブロックチェーンに直接刻まれることはない。
Pedersen commitment という、データ(ここでは送金額)を blinding factor と呼ばれる秘密鍵をもちいて秘匿した
commitment = r*G + v*H
だけがブロックチェーンに刻まれることになる。ここで、G
, H
は楕円曲線上の群の異なるジェネレーター、 r
が秘匿するデータ、v
が blinding factor である。
no transaction history
no address のパートでも述べたように、ブロックに取り込まれた時点ですでに transaction という単位はなくなっている。cut-through と呼ばれる処理によって input と output のつながりを切る。 Grin のドキュメントにわかりやすい図がある。
no hashcash
MimbleWimble のコンセンサスアルゴリズムは PoW だが、Bitcoin のような hashcash ではない。hashcash は計算能力の高いGPUなどが有利だが、MimbleWimble では現時点で Cuckoo Cycle という、メモリが重要になってくるPoWアルゴリズムを使用している。
Bitcoin のブロックの構造
Bitcoin の Block は、以下の表のような構造になっている。
Magic number はデータ構造のタイプを即座に判断できるように設定された定数らしい。Bitcoin の Block においては、常に 0xD9B4BEF9 であるとのこと。
Blocksize はその名の通りBlock 全体のサイズ(数字)。Blockheader がこの中だと最も重要(?) で、いろいろなデータが含まれている(後述)。 Transaction counter はトランザクションの数、残りはトランザクションのリストが含まれている。
Size | Name | Description |
---|---|---|
4 bytes | Magic no | always 0xD9B4BEF9 |
4 bytes | Blocksize | the size of entire block |
80 bytes | Blockheader | consists of 6 items |
1-9 bytes | Tx counter | n > 0 |
Variable | Transactions | the list of transactions |
その中でもBlockheader は6つの要素から構成されている(https://en.bitcoin.it/wiki/Block_hashing_algorithmより)。
Field | Purpose | Updated when... | Size (Bytes) |
---|---|---|---|
Version | Block version number | You upgrade the software and it specifies a new version | 4 |
hashPrevBlock | 256-bit hash of the previous block header | A new block comes in | 32 |
hashMerkleRoot | 256-bit hash based on all of the transactions in the block | A transaction is accepted | 32 |
Time | Current timestamp as seconds since 1970-01-01T00:00 UTC | Every few seconds | 4 |
Bits | Current target in compact format | The difficulty is adjusted | 4 |
Nonce | 32-bit number (starts at 0) | A hash is tried (increments) | 4 |
それぞれの役割はPurpose を読めば分かるので省略する。ここの表には出てこなかったが Block Explorer を見てみると、これら以外にもBlock Height(ブロック高)があるが、これは hashPrevBlock(一つ前のBlockhash)をたどっていき、Genesis Block まで数えることで算出しているのだろう。
(WIP) LightningNetwork の状態を更新する新たな仕組みである eltoo について
4月30日、Blockstream によって eltoo と呼ばれるプロトコルがアナウンスされたので、それについてまとめてみる。
We’re excited to announce #eltoo: a more secure, reliable, flexible, and penalty-free update mechanism for #Lightning and multi-party off-chain contracts!⚡️📡https://t.co/cVLvjEjMsZ #LightningNetwork #Bitcoin #LApps pic.twitter.com/WKe3g50juY
— Blockstream (@Blockstream) 2018年4月30日
注)Work In Progress です。また、短期間でパパっと書いた記事なので技術的に誤りを含む可能性があります。update していく予定ですので 、ご留意&ご指摘願います。
続きを読む