アプリケーションのテスト方法

テストネット リグレッションテストモード 単体テスト メインネットで実際のBitcoinを扱うソフトウェアにとって、アプリケーションのテストは非常に重要なステップです。この記事では、Bitcoinアプリケーションのテストに使用される一般的な方法について説明…

合計金額の操作

コインクラス 書式設定 コインクラス bitcoinj APIではBitcoinの量をCoinクラスを使用して表します。 Coinクラスは内部的にlong型をラップしており、任意に多額のビットコインを表現することができない点を除いてBigIntegerとは表面的に似ています。ビットコ…

ウォレットの操作

概要 セットアップ アドレスの取得 シードとニーモニックコード ブロックチェーンの再構成 支払いの作成 トランザクションをコミットするタイミング 残高とコイン選択の理解 手数料を使う 変更について学ぶ ウォレットのメンテナンスと鍵のローテーション 複…

bitcoinjの操作

概要 Future Event Serialization 概要 bitcoinjは、Future,Event,Serializationのデザインパターンをコード全体で使用します。 bitcoinj/examples/src/main/java/org/bitcoinj/examples上記にあるコードとツールを使用してライブラリの使用方法を確認します…

トランザクションの操作

概要 トランザクションはBitcoinプロトコルの基本要素です。 トランザクションにはBitocoinの所有権が含まれており、使用する際に必要な条件となります。この記事では以下を取り上げます。・トランザクションとは何か? ・Transactionクラスが与えるもの ・…

セキュリティモデルの理解

概要 保留中の取引 Finney攻撃 確認済み取引の信頼性 フルブロックボディなしでブロックに含めることを証明する フルブロックチェーンノードとSPVノードの違いと、bitcoinjアプリがどのように攻撃されるかについて学びます。 概要 bitcoinjは、フルブロック…

チュートリアル:シンプルなGUIウォレットの構築

概要 ステップ1.コードをコピーし、パッケージの名前を変更 ステップ2.トランザクションリストをUIに追加 ステップ3.トランザクションの表示をカスタマイズ 概要 bitcoinjには基本的なGUIウォレットアプリケーション(Bitcoinを送受信出来るアプリケーション…

機能の制限と欠如

【目次】 導入 バグやその他の問題 セキュリティ上の問題 合意 プライバシーの問題 プロトコルコンプライアンス マイクロペイメントチャネル APIの欠点 導入 bitcoinjは進行中のプロジェクトであり、重要性の高い機能がいくつか欠けています。また奇妙な癖や…

アプリの異なるコンポーネントがどのように連携してフィットするか

【目次】 概要 ネットワーク デシリアライズ/シリアライゼーション*4 ピアのロジック メモリプール チェーンとストア データのプルーニング ウォレット 概要 この記事では、典型的なbitcoinjベースのアプリケーションのさまざまなオブジェクトとインターフェ…

GradleとMavenの使用方法

【目次】 Gradleの使用方法 Mavenの使用方法 Mavenのセキュリティー Gradleの使用方法 Gradleは元々Hans Dockterのプラグインベースのビルドシステムで、MavenとAntの良いとこ取りのシステムです。 プロジェクトでGradleをビルドに使用している場合は、build…

bitcoinjの入門

【目次】 概要 初期設定 基本構造 設定 キーとアドレス ウォレットアプリキット イベントの処理 GUIアプリケーションの作成に関する注意 コインの受け取り コインの送金 送金処理のカスタマイズと手数料設定 次のステップ 概要 このドキュメントはbitcoinjラ…

bitcoinjの概要

【目次】 bitcoinjとは? 特徴 bitcoinj入門 ライセンス ドキュメンテーション 基礎 CoreAPIの詳細 bitcoinjの動画 高度な機能 コミュニティ bitcoinjとは? bitcoinjはBitcoinプロトコルを扱うライブラリです。 BitcoinCoreのローカルコピーなしにウォレッ…

Transaction Malleability

Overview The transaction can hold multiple transaction hashes while keeping the validity of the signature. So, double payment becomes possible by changing the expression without changing the meaning of the input script. This characteristic…

Mining

Overview The Mining has two meanings.・Currency supply mecanism ・Decentralized emergent consensus ①Currency supply mechanism At a point of jan 2009, Remuneration of mining for 1 block was 50BTC. In other word, mining means that supply new…

Blockchain

Overiew Blockchain is transaction database shared by all nodes participating in system based on Bitcoin protocol. The full copy of blockchain contains every transaction ever executed in the currency.With this information, one can find out …

Network

Overview Bitcoin is builded as peer-to-peer(P2P) network on internet. P2P network is essentially decentralize and open. This network is formed by connecting mutually equal nodes. we calling computer terminal participating in the network as…

Transaction

Overiew Transaction is encoded data stracture that value transfer between participants in Bitcoin sistem. Individual transaction add into blockchain as global ledger. Anyone can see each transaction in the blockchain. Basic component of tr…

Encrypted Private Keys

key

Overview BIP0038 propose standerd specification that encrypting private key by passphrase and encode in Base58Chack.Even in situation where the key is exposed,It will be able to save to safe backup media and transfer between wallets.When p…

Hierarchical Deterministic Wallets

Oveview The type is leading-edge deterministic wallets that are described in BIP 0032.Just have to copy root-seed,You can restore overall HD wallet,backup of millions keys or HD wallet , and export. It can generate public key without users…

Mnemonic code

Overview Mnemonic code is English words representing random numbers used as Wallet master keys. Passphrase is easy to remember for human beings(passphrase 12 to 24 words). Mnemonic is used to regenerate the seed (master key), regenerating …

Key format

key

Overview Bitcoin has notation method of some kinds in private key and public key.Why Bitcoin has some kinds of notation? Because if you adopted compressed notation, It's possible to reduce the size of the public key by 50%! That means we c…

Address

Overview Bitcoin address represent receiver of funds,it look like bank account. The address produced from public key. Show below example of a bitcoin address:Bitcoin address example 15oYSxBcM5deLicKoqwNL2iuAJXpdoc3GL ※27-32 digit alphanume…

Public key

key

Overview Public key indicate to destination of funds. The public key is private key encrypted with elliptic curve cryptography.Public key example 0458e0d3f7cd6d54347a25523dee480199e59541d849abcd4223538397ded94 e30f4f10af03bb48a1af2051c529f…

Elliptic curve cryptography

Overview This article speaks about elliptic curve to base on Elliptic Curve Cryptography(ECC).y^2=x^3+ax+bWhen this equation solution equal "zero",the point connection become elliptic curve. case of a=-1,b=1: y^2 = x^3 - x + 1 Finite field…

Private key

key

Overview One of the key pairs in public key cryptography is the private key. Use the private key to control access to transaction. Private key was chosen randomly integer (256 bit) from between 1 to p. "p" is「2^256 - 2^32 - 2^9 - 2^8 - 2^…

Public key cryptography

Overview Bitcoin adopts public key cryptography for bitcoin exchange. By knowing about algorism of public key cryptography, easy to get understanding about private key and public key. Now I'd like to talk about cryptography used some publi…

P2P 電子マネーシステム

【目次】 概要 序論 トランザクション タイムスタンプサーバー プルーフオブワーク ネットワーク インセンティブ ディスクスペースの再利用 簡易版支払い検証(SPV) 価値の結合や分割 プライバシー 計算 結論 概要 P2P電子マネーシステムにより、金融機関を…