ブロックチェーンとは?

ブロックチェーンと従来のデータベースの比較

ブロックチェーンと従来のデータベースの比較

ブロックチェーンは、ネットワーク上の複数のコンピュータ(「ノード」)に分散された、取引データの公開台帳(またはファイル)です。これらのノードはすべて、同じソフトウェアとルールを使って協力し、取引を検証して最終的な台帳に追加します。

ブロックチェーンで入札する女性

分散型ブロックチェーンの上に構築されたソフトウェアを使用して、女性が家の入札を行う。

これを、特定の人しかアクセスできない数台のコンピューター上の単一のデータベースに存在する可能性のある、従来の取引データの台帳と比較してみてください。

従来の世界で入札する女性

女性が民間仲介業者を使って住宅を落札する様子。

ブロックチェーンの「ブロック」とは、他のノードから提案され、検証され、最終的に台帳に追加される一連の取引のことです。「チェーン」とは、各ブロックの取引には、前のブロックの内容を証明するもの(暗号ハッシュ)も含まれることを指します。このように、前のブロックのデータを現在のブロックに取り込むというパターンは、ネットワークの開始時(創始ブロック)までさかのぼり、すべての取引について公に検証可能で改ざん不可能な記録を作成すします。

ブロックチェーン図

実際、これは、ブロックチェーンの歴史の中のどこかの記録を1つでも変更しようとすると、ネットワーク・ノードによって明らかにされ、拒否されることを意味します。

ブロックチェーンの記録を変更しようとする男性、失敗する

悪意のあるユーザーが過去のブロックチェーンの記録を変更しようとしたが、失敗した。

データベースの変更が限られたグループに委ねられ、悪意または単なるエラーによって簡単に操作される従来の台帳と比較してみてください。

従来の入札ミス

中央集権的なシステムが、意図せずユーザーの参加資格を失う可能性がある例。

しかし、そもそもブロックはどのようにチェーンに追加されるのでしょうか。各ノードは、取引を検証し、新しいブロックをチェーンに追加する方法を指示するソフトウェアを実行します。これらの指示は総称して「コンセンサス・プロトコル」と呼ばれます。これらの命令の性質は、異なるブロックチェーンを区別する主な要因の1つです。アルゴランドのコンセンサス・プロトコルと他との違いについては、このガイドの後半で詳しく説明します。

ブロックチェーンは私のアプリケーションにどのような利益をもたらすのでしょうか?

ブロックチェーンの中核は、私たちが価値を転送する方法を革新する技術です。したがって、あなたのアプリケーションが何らかの形で価値を交換するのであれば、ブロックチェーンはあなたのアプリケーションを次のレベルに引き上げるための候補となる技術かもしれません。

しかし、その前に、ブロックチェーンがあなたのアプリケーションにどのような利益をもたらすかを具体的に理解し、その利益を目標に、アプリケーションの他の部分に不必要な複雑さを加えないようなシステムを設計することが重要です。これは通常、どのコンポーネントを「オンチェーン」または「オフチェーン」に置くかを考えることに対応します。

以下は、ブロックチェーンが価値ベースのアプリケーションにとって魅力的な技術であることを示す、ブロックチェーンの特性の一部です。

ブロックチェーンの特性

これらのすべてがあなたのアプリケーションにとって重要であるとは限りませんし、いくつかは他のものよりも重要かもしれませんので、最初に尋ねるべき良い質問です。

「これらの特性のうち、私のユースケースにとって重要な特性はどれですか?」

少なくとも一つを選んだら、次に尋ねます。

「その特性は、私の現在のアプリケーション設計に欠けているか、不十分か?」

2番目の質問に対する答えが、選んだ特性のいずれか、またはすべてに「イエス」であれば、あなたは正しい場所にいることになります。

例えば、銀行を通じて国境を越えて支払いを送る場合、価値を安全に送金するために多くの仲介者が関わるため、多くの場合、何日もかかり、費用も高くつきます。高いコストと全体的な効率の悪さが、このシナリオで目立つ特徴であり、ブロックチェーンが改善する可能性があります。他の特性が重要でないと言っているわけではありません。例えば、セキュリティを犠牲にしてまでコストを下げたいとは思いませんが、セキュリティだけが重要であれば、現在のプロセスで十分だと言えるかもしれません(送金を行う銀行を信頼していると仮定して)。このシナリオでは、ブロックチェーンは他の部分でトレードオフをすることなく、システムの欠陥を改善します。

 

アリスとボブのオークション

アリスとボブを紹介します。アリスは才能あるアーティストで、ファンベースを増やし、アーティストとしての価値を高めようとしています。ボブは開発者であり、アリスの親友です。彼は彼女を助けたいと思っています。
 

アリスとボブの紹介

アリスは通常、個人的なつながりや、時にはソーシャルメディアに広告を出して作品を販売しています。彼女のデジタルアート作品の1つは、現在の販売テクニックを使って、平均して100ドルで売られています。彼女は、もし規模を拡大し、より多くの人々に届けることができれば、もっと多くの収入を得ることができると考えています。アリスは、彼女のユースケースにとって重要な特性を考えてみます。

効率性 - アリスは買い手を見つけるために多くの時間を費やし、最終的に十分な数の聴衆に到達していません。


信頼性/透明性 - アリスはより広いオーディエンスにリーチしたいと考えていますが、彼女はまだ評判を構築中で、自分自身と潜在的な買い手の両方が詐欺に遭っていないことを知るための方法が必要です。


コスト - 現在規模を拡大するための最良の選択肢はEコマースサイトを使用することですが、彼女は手数料で稼いだ金額のかなりの部分をあきらめなければならないことを知っています(最低5%、最高15~20%)。


アリスと彼女のユースケースに役立つブロックチェーンの4つの特性を挙げました。アリスとボブは、アリスの主な目標と彼女が最適化したい特性について一緒にブレーンストーミングを行います。彼らは次のようなアイデアを思いつきました。

彼らはアリスのアートワークをブロックチェーン上のNFTとしてトークン化することを計画します。これにより、ブロックチェーン・エコシステムへの参入点と、次にやりたいことをプログラムする能力が得られます。そして、ブロックチェーン上にオークションDAppを構築し、アリスが彼女のアートワークを市場によって設定された価格で販売できるようにします。オークションはブロックチェーン上にプログラムされ、誰もが見ることができ、独立して検証することができます。アリスは買い手に対して、個人的な面識がなくても詐欺に遭わないことを保証でき、またその逆も可能です(信頼性/透明性)。取引を保証するための第三者を必要としないので、手数料を大幅に削減でき、アリスはより多くのお金を稼ぐことができます(低コスト)。アリスは、購入希望者と個別に会って信頼関係を築く必要がなく、ソーシャルメディアなどを通じて、自分の作品を好きなだけ広く宣伝することに専念できます(効率性)。

さて、ブロックチェーンの基本がわかったところで。アルゴランド・ブロックチェーンについて、もっと詳しく知っていきましょう。

​元記事:https://developer.algorand.org/docs/get-started/basics/what_is_blockchain/

アルゴランドを選ぶ理由

これまで、私たちはブロックチェーン技術とそれが価値を移転するアプリケーションにもたらす利点について説明してきました。しかし、これらの定義を形成する際に、私たちが扱っているブロックチェーンのタイプについていくつかの仮定をしました。実際には、すべてのブロックチェーンが同じように作られているわけではなく、すべてのブロックチェーンが同じ程度の便益を提供できるわけではありません。

開発者としては、ブロックチェーンが約束するすべての特性について調査を行い、信頼できるブロックチェーンを選択することが重要です。

このセクションでは、ブロックチェーンを選ぶ際に評価すべき主なカテゴリーをいくつか概説し、それぞれのカテゴリーでアルゴランドがどのような評価を得ているかを説明します。最後に、あなたのアプリケーションを構築する場所として、アルゴランド・ブロックチェーンが最適であると判断していただけると確信しています。

 


私たちの創業理念

アルゴランドは、チューリング賞受賞者であり、ゼロ知識証明の共同発明者であり、暗号と情報セキュリティの分野で世界的に有名なリーダーであるシルビオ・ミカリによって設立されました。彼は、金融を民主化し、ブロックチェーンの約束を実現するというビジョンを持ってアルゴランドを設立しました。

 


コンセンサス・プロトコルについて

多くのブロックチェーンの問題は、「ブロックチェーンのトリレンマ」として知られる、セキュリティ、スケーラビリティ、分散化の重要な特性のうち、少なくとも1つを犠牲にしていることです。シルビオと彼のチームは、新しいPure Proof of Stake (PPoS) コンセンサス・プロトコルを発明することで、ブロックチェーンのトリレンマを解決しました。

アルゴランドのコンセンサス・プロトコルは、各ブロック・ラウンドでブロック提案者と投票委員会のセットを選択し、それぞれブロックの提案と提案の検証を行うことで機能します。提案者と委員会は、すべてのトークン保有者(Algoを保有するアカウント)のプールからランダムに選ばれ、選ばれる可能性は、そのアカウントのネットワークにおけるステーク(つまり、全体に対してどれだけのAlgoを保有しているか)に比例します。このプロセスには、「検証可能なランダム関数(VRF)」や「暗号ソート」など、実に巧妙な暗号アルゴリズムが使われており、投票が公正で、誰も共謀できず、システム全体が非常に安全であることを保証しています。このガイドでは詳細には触れませんが、これらのリソースのいくつかをチェックすることを強くお勧めします。

- シルビオがミラノのミートアップでアルゴランドのコンセンサスの仕組みについて説明しています(ビデオ、シンプル、長いけど価値あり)。
 

- シルビオがアルゴランドのコア技術を簡単に説明しています(ブログ記事、シンプルで価値があります)。
 

- アルゴランドのコンセンサス・プロトコルの簡単な紹介ビデオ(ビデオ、シンプル、短時間)

- アルゴランドのコンセンサスに関するドキュメント(技術的、中程度の長さ、上記のシンプルなビデオと完全なホワイトペーパーの中間的なもの)
 

- アルゴランド公式ホワイトペーパー(非常に技術的、詳細)

 


プルーフ・オブ・ステークとプルーフ・オブ・ワークの比較

最近のほとんどのブロックチェーンは、プルーフ・オブ・ステーク(PoS)プルーフ・オブ・ワーク(PoW)という一般的なカテゴリに分類されます。

簡単に言うと、プルーフ・オブ・ステーク型ブロックチェーンは、より多くのステーク(システム内の基礎通貨を多く保有するユーザー)が、通常は何らかの投票メカニズムを通じて、新しいブロックの提案と検証により大きな影響力を与えるものです。


 

プルーフ・オブ・ステーク

プルーフ・オブ・ステーク・プロトコルにおける投票手順の概念図。

プルーフ・オブ・ワークでは、ノードが難しい暗号パズルを解いて、その解答を新しいブロックの提案と一緒に提供する競争を行います(これを「マイニング」と呼び、これらのノードは「マイナー」と呼ばれる)。勝者にはシステムの基礎となる通貨が与えられ、そのブロックはチェーンの一部となります。

プルーフ・オブ・ワーク

プルーフ・オブ・ワーク方式におけるブロックマイナーの概念図。

プルーフ・オブ・ワークでは、誰よりも早く暗号パズルを解く必要があるため、勝利するための戦略において計算能力が重要な役割を果たします。このため、エネルギー消費量や気候への影響について多くの議論がなされています。

アルゴランドを含むほとんどのプルーフ・オブ・ステーク・プロトコルは、ブロックを生成するために大量のエネルギーを必要としません。

 


ネイティブ通貨

各ブロックチェーンは独自のネイティブ通貨を持ち、ネットワーク上の良い行動を促すために重要な役割を担っています。アルゴランドのネイティブ通貨はAlgo(アルゴ)と呼ばれています。

Algosを保有している場合、コンセンサスへの参加登録が可能で、新しいブロックの提案や投票などのプロセスに参加することになります。

また、Algoはユーティリティ・トークンとしても機能します。アプリケーションを構築する際、取引手数料の支払いや、ブロックチェーンにデータを保存する場合の最低残高としてAlgoが必要になります。これらの手数料や最低残高のコストは非常に低く、ほとんどの場合、数分の1円です。

 


手数料

手数料は取引のサイズに基づいて計算され、ネットワーク・トラフィックが高く、ブロックが常に満杯になっているときにブロックへの受け入れを優先させるために、ユーザーは手数料を補強することを選択することができます。アルゴランドにはガス代という概念はありません。

取引の最低手数料は1,000microAlgoまたは0.001Algoのみです。

 


オープン性

先ほど、分散型であるブロックチェーンの台帳と、単一事業者が所有する従来の台帳を比較しました。技術的には、ブロックチェーン台帳は少数のエンティティによって所有・運営されることも可能ですが、そのような中央集権的なノード群がブロックチェーンの状態を容易に操作できるため、あまり良いブロックチェーンとは言えないでしょう。

アルゴランドは完全にオープンでパーミッションレス(許可不要)です。世界のどこにいても、Algoを所有している人なら誰でもコンセンサスに参加することができるのです。

​分散化

同様に、ノードを運営しているのがすべて同じ会社やグループである場合、少数精鋭で制御された中央データベースを持つことよりも、あまり良い状況にはならないことがわかります。

アルゴランドでは、プロトコルがオープンでパーミッションレスであるため、ノードは世界中に存在することが可能です。

ノードの分散化については、アルゴランド・メトリクス・ダッシュボードを参照してください。

 


透明性

私たちがここで話していることが真実だとどうやってわかるのでしょうか?ご自身でお確かめください。コアプロトコルのコードは全てオープンソースです。誰でもそれをレビューし、貢献することができます。

アルゴランドのソースコード

 


フォーク(またはフォークしないこと)

フォークとは、ブロックチェーンが2つの別々の経路に分岐することです。コミュニティの重要な部分がプロトコルの基本を変更したい場合など、このフォークが意図的に行われることもあります。また、2人のマイナーがほぼ同時にブロックを見つけた場合など、偶発的に分岐することもあります。最終的に、どちらかの経路が放棄されます。つまり、放棄された経路(Orphaned Chain)上でそのフォーク以降に発生した取引はすべて無効となります。これは取引の最終性(ファイナリティ)に対して重要な意味を持ちますが、それについては後ほど説明します。

アルゴランドはピュア・プルーフ・オブ・ステークであり、ブロックを検証するために投票メカニズムを使用しているため、フォークは不可能です。最悪の場合、委員会が合意に達するまでに時間がかかると、ブロックチェーンは速度を落としたり、一時的に停止したりすることになります。

 


パフォーマンス

ブロックの生成速度、1ブロックに収まる取引量、それらの取引がいつ最終とみなされるかは、ブロックチェーンを選択する際に考慮すべき重要な要素です。アルゴランドにとって、パフォーマンスはコア開発チームにとって常に重要な焦点となる領域です。

 


スループット

ユーザーがアプリケーションとやり取りする際に長い待ち時間を経験することがないように、高いスループットを処理し、スケールできるブロックチェーンを選択したいものです。

アルゴランドでは、ブロックは4.5秒ごとに生成され、最大5,000トランザクションを保持することができ、その結果、1秒あたり約1,000トランザクション(1000TPS)のスループットとなります。

 


ファイナリティ

プルーフ・オブ・ワーク型のブロックチェーンでは、フォークの可能性があるため、一定時間が経過し、放棄となったチェーンに取引がある可能性が実質的にゼロになるまで、取引を最終的なものと見なすことができません。つまり、このタイプのブロックチェーンの実際のスループットは、最終性の遅れによって陥没してしまうのです。アプリケーションの下流工程では、トランザクションが無効になってしまった場合に問題が複雑にならないように、この点を考慮する必要があります。

先に述べたように、アルゴランドにはフォークがないため、ブロック内で確認された時点で取引は確定します。従って、1,000TPSというスループットは、実際には1秒間に1,000件のトランザクションが確定したことを意味します。


コア機能

アルゴランドは、あらゆる価値ある商品のトークン化、転送、条件のプログラミングを容易にします。スマートコントラクトのコードは不要で、1回の取引でファンジブル・トークン、NFT、セキュリティ・トークンを作成できます。また、アルゴランドのスマートコントラクトを使用して、高度な分散型アプリケーション(dApps)をプログラムすることも可能です。

 


開発者ツール

開発者は、Python または Reach(Javascript に似た言語)でスマートコントラクトを書くことができ、4つのSDK(Python, JavaScript, Golang, Java)のいずれかを使用してオンチェーン資産またはアプリケーションに接続することができます。

アルゴランドは、IDEやモニタリングのためのツールなど、開発者ツールのエコシステムを拡大しています。

コミュニティが提供する開発者向けツールを見る

 


チームとエコシステム

アルゴランド・プロトコルは完全にオープンソースです。では、なぜ誰もがコピーを作成して、別のアルゴランドのようなブロックチェーンを作成することができないのでしょうか?その場合、なぜその新しいものが優れているのかを皆に納得してもらわなければなりません。これまで見てきたように、ブロックチェーンには技術も重要な要素ですが、その周りに構築されるエコシステムも重要です。

アルゴランドには、世界で最も優秀な研究者や開発者がいて、アルゴランドのコア・プロトコルを積極的に開発・改良しています。アルゴランド財団は、すべてのAlgoホルダーにとって長期的な価値を促進するために、ガバナンスとエコシステムの成長にまつわる戦略に多額の投資を行っています。この部分は簡単に再現できるものではありません。

 


ガバナンス

アルゴランド・メインネットを立ち上げた非営利団体であるアルゴランド財団は、アルゴランド・ネットワークを統治し、分散化を継続し、より多くの意思決定をアルゴランド・コミュニティ全体の手に委ねることに尽力しています。

詳しくはアルゴランド財団のウェブサイトをご覧ください。

 


アリスとボブはアルゴランドを選択

アルゴランドは、効率性、透明性・信頼性、低コストを確保するためのすべてを網羅しています。
 

basics-alicebob-2 (1).png

どこから始めればいいですか?

ここは、3つの主要セクションで構成されており、単独で、またはこのシーケンスの一部として見ることができます。順番は以下の通りです。

スマートコントラクトとdApp

これは次のセクションで、アルゴランド上で分散型アプリケーション(dApp)を構築するところから始まります。アリスとボブのNFTオークション・アプリケーションの構築方法を学びます!

Teach me how to build a dApp!

トークン化

このセクションでは、アルゴランド上で資産をトークン化するための基本的な方法を説明します。まず、アリスとボブのNFTをトークン化する方法を紹介し、次にファンジブル・トークン、そしてセキュリティ・トークンを作成する方法を説明します。アルゴランドでアセットをトークン化するために、スマートコントラクトのコードを書く必要はありません。アセットはレイヤー1のプリミティブであり、プロトコル自体に組み込まれています。

>I want to learn how to mint NFTs.

>I want to learn how to create fungible tokens.

>I want to learn how to create security tokens.

統合(Integration)
最後のセクションは、主にAlgo、NFT、FT、セキュリティ・トークンなどのオンチェーン・アセットにユーザーがアクセスできるようにしたい開発者向けのものです。例えば、ウォレットや取引所でAlgoやASAをリストアップしたい場合、このセクションはあなたのためのものです!

>I want my users to be able to trade Algos or ASAs.

>I want to look up on-chain data.

このスタートガイドでは、アリスとボブの物語をしばしば参照し、これらの概念の多くを現実的なユースケースに当てはめるのに役立てたいと思います。

Replit

Run codeへのリンクは、replit.comというサードパーティのサイトに飛びます。このサイトにはアルゴランドが作成したサンプルコードが満載で、環境設定なしに簡単に実行することができます。また、replit.comの無料アカウントを作成すると、これらのコードレプリをフォークして編集することができるようになります。

 


詳細な機能説明について


詳細な機能説明やリファレンス・ドキュメントをお探しの方は、「詳細を見る」をご覧いただくか、サイト左上にある検索ボックスでお探しのものを検索してください。

レイヤー1の特徴や機能についての詳細をご覧ください。

>Get all the details on layer-1 features and capabilities.

開発者ブログ
アルゴランドの開発者コミュニティが提供するコード・チュートリアルやプロトタイプをご覧いただけます。また、大きな機能が発表される場でもあります。また、GitHub のバウンティ(報奨金)リストでは、自分の作品を発表する機会を提供しています。

>See the latest articles and code from Algorand and the community.

エコシステム・ツールとプロジェクト
dAppを構築するために利用できるIDEや、dAppと統合できるウォレットを知りたいと思いませんか?このような開発ツールやプロジェクトは、エコシステムのツール&プロジェクト・ページで見つけることができます。

>Browse tools, projects, dApps.

アルゴランド・コンセンサスに参加する
このスタートアップのセクションのほとんどは、アプリケーション開発者を対象としています。もし、MainNetのノードを運営し、アルゴランド・コンセンサスに参加することに興味がある場合は、「ノードを運営する」のセクションを参照してください。

>I want to run a node.

>I want to participate in Algorand consensus.

 

 

​元記事:https://developer.algorand.org/docs/get-started/basics/where_to_start/