タグ

ブックマーク / techmedia-think.hatenablog.com (8)

  • 部分的に署名されたトランザクション(PSBT)のフォーマットを定義するBIP-174 - Develop with pleasure!

    通常のP2PKHやP2WPKHで決済をする分には特に関係ないが、P2SHベースのマルチシグやコントラクトなどで複数のユーザーによる署名が必要な場合、ユーザー間でトランザクションをやりとりしながら、各自署名を付与し、最終的にブロードキャスト可能なトランザクションを作成する必要がある。 この部分はブロックチェーン外で行われるけど、どういうフォーマットで途中のトランザクションをやり取りするかなどは、ウォレットやサービスによってそれぞれ異なる。標準仕様がないため、当然ウォレットが違えば互換性が無いのがあたり前だが、そういう部分的に署名されたトランザクションのフォーマットを標準定義しようというのが最近追加されたBIP-174↓ https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki ※ BIPが結構更新されてたので2020/01/

    部分的に署名されたトランザクション(PSBT)のフォーマットを定義するBIP-174 - Develop with pleasure!
  • Bitcoinの匿名性を向上させるConfidential Transactions - Develop with pleasure!

    Bitcoin単体には個人を表すデータは存在しないけど、アドレス間の送金のやりとりや、取引所を介した現金化などのデータから必ずしも個人が特定できないということは無い。 Bitcoinのアドレスと組織・個人が結びつくと、例えばAという会社はどれくらいの売上をBitcoinで上げているかわかったり、顧客や従業員にいくらBitcoinを支払っているのかといった情報も分かってくる。そこでBitcoinの匿名性を強化しようというZerocashやConfidential Transactionsのような取り組みがされてる。 Confidential Transactionsとは Confidential Transactions - Investigation | elementsproject.org Bitcoinのトラストレスな仕組み上、信頼できる第三者がいなくても取引が可能である反面、全ての

    Bitcoinの匿名性を向上させるConfidential Transactions - Develop with pleasure!
  • トランザクション署名時のSIGHASH - Develop with pleasure!

    Bitcoinのトランザクションに署名する際の、署名のスコープの仕様について読んでみる。 SIGHASHの種類 https://bitcoin.org/en/developer-guide#signature-hash-types OP_CHECKSIGが各署名から非スタック引数を抽出し評価することで、署名者はトランザクションのどの部分に署名するか決めることができるようになる。署名によりトランザクションの一部を変更から保護することで、他のユーザが自分のトランザクションを変更できるようにすることができる。 どのように署名するかはsignature hash typesと呼ばれるオプションで定義されている。現在は以下の3つの基的なSIGHASHが利用可能。 SIGHASH_ALL (デフォルト)全ての入力と出力に署名し、署名スクリプトを除く全ての変更から保護する SIGHASH_NONE 全

    トランザクション署名時のSIGHASH - Develop with pleasure!
    kiririmode
    kiririmode 2019/11/11
    sighashと署名について
  • ロックタイムの比較の際に使われるMedian time-past(BIP-113) - Develop with pleasure!

    BIP-68のRelative lock-time等である一定期間ロックされたトランザクションをブロックに入れていいか判断する際の考え方を再定義するのがBIP-113になる。 https://github.com/bitcoin/bips/blob/master/bip-0113.mediawiki 動機 現状、現在の時刻もしくはブロック高が指定されたロックタイム以下の場合、そのトランザクションはブロックに含める対象にはならない。ただコンセンサスルールではブロックのタイムスタンプの順序を強制していない。そのためマイナーがブロックのタイムスタンプを偽造し、来であればまだブロックに含めてはならないトランザクションをブロックに含めることでより多くの手数料を得るという誤ったインセンティブをマイナーに与えてしまう。 このBIPではロックタイムの比較を行うのに、トランザクションが含まれているブロック

    ロックタイムの比較の際に使われるMedian time-past(BIP-113) - Develop with pleasure!
    kiririmode
    kiririmode 2019/11/08
    mediantimeの定義がわかる
  • Output Descriptorとscantxoutsetを使ってUTXOセットをスキャンする - Develop with pleasure!

    Bitcoin Core 0.17.0からUTXOセットをスキャンするscantxoutsetというRPCが追加された。 Bitcoin Core :: scantxoutset (0.17.0 RPC) 今まではウォレット内に鍵を持つUTXOの情報はlistunspentなどで取ってこれてたけど、↑はウォレット機能とは別で、UTXOセットの中から指定した条件に合うUTXOを検索することができる。 この時、検索対象を指定する際に使用する記述子がOutput Descriptor↓ bitcoin/descriptors.md at 0.17 · bitcoin/bitcoin · GitHub (訳は後述) Output Descriptorを指定してscantxoutsetでUTXOを検索 scantxoutsetは以下のように2つの引数を取る。 $ bitcoin-cli scantx

    Output Descriptorとscantxoutsetを使ってUTXOセットをスキャンする - Develop with pleasure!
    kiririmode
    kiririmode 2019/10/18
    output descriptor の説明さすがのクオリティ…
  • Confidential Assetsの概要 - Develop with pleasure!

    Blockstreamが新しくConfidential Assetsなる機能をリリースしていたので、どういったものなのか見てみる。 blockstream.com Open Assets ProtocolやCounterpartyやColuなどBitcoinのブロックチェーン上で、Bitcoin以外のアセットを発行・送付するプロトコルが登場しているように、同じチェーン上で複数のアセットタイプをサポートするのはブロックチェーン技術の自然な進化と考えられる。複数のアセットタイプが同一のチェーンで扱えることで、それぞれのアセットタイプで同じチェーンのセキュリティ特性を共有可能になり、マルチアセットのアトミック・スワップのような新しいユースケースが可能になる。 複数のアセットタイプをサポートするには、各トランザクションの出力にasset tagをラベル付けするだけで実現できるが、この場合ユーザがそ

    Confidential Assetsの概要 - Develop with pleasure!
    kiririmode
    kiririmode 2018/11/03
    confidential assets
  • サイドチェーンにBitcoinをペグしてみる。 - Develop with pleasure!

    Confidential TransactionをサポートしているElementsで実際にCTを作ってみようと思い、まずElementsのセットアップしてサイドチェーンにコインをペグする。 github.com Elementsのセットアップ 今回使用したElementsはelements-0.14.1ブランチのソース。(久しぶりに見たら0.14.1がアクティブブランチになってる。Alphaはもう使われてない?) ↓に独自サイドチェーン(elementsのregtest)のビルド手順が書いてあるので、これを参考にして環境をセットアップする。 Building A New Sidechain with Elements — The Elements Project Elementsのビルド $ git clone https://github.com/ElementsProject/elem

    サイドチェーンにBitcoinをペグしてみる。 - Develop with pleasure!
    kiririmode
    kiririmode 2018/11/01
    elementsのpegin/pegout
  • ElementsでConfidential Transactionを作ってみる - Develop with pleasure!

    techmedia-think.hatenablog.com Elementsのセットアップとコインの移動ができたので↑、続いてElements上でConfidential Transactionを作ってみる。 Confidential Transactionについては↓ techmedia-think.hatenablog.com 以下のサイトを参考にConfidential Transactionを作ってみる。 Confidential Transactions — The Elements Project Confidential Address Elementsでアドレスを生成すると以下のようにBitcoinのアドレス形式とは異なっているのが分かる。 $ elements-cli getnewaddress CTErPjNQRCAK6r3Nd3oARyrNhVRecmn6fuAQ7

    ElementsでConfidential Transactionを作ってみる - Develop with pleasure!
    kiririmode
    kiririmode 2018/11/01
    confidential transactionやblindingについての詳細解説。ここまで調べられるのすごいな。
  • 1