solana documentation-introduction


What is solana?(ソラナとは?)

Solana is an open source project implementing a new, high-performance,permissionless blockchain.Foundation is based in Geneva,Switzerland and maintains the open source project.
ソラナは、高性能でパーミッションレス(自由参加)型のブロックチェーンを実装したオープンソースプロジェクトです。ソラナ財団はスイスのジュネーブに拠点を置き、そこでオープンソースプロジェクトを管理しています。)

・Why Solana?(なぜソラナなのか?)

It is possible for a centralized database to process 710,000 transactions per second on a standard gigabit network if the transactions are, on average, no more than 176 bytes. A centralized database can also replicate itself and maintain high availability without significantly compromising that transaction rate using the distributed system technique known as Optimistic Concurrency Control [H.T.Kung, J.T.Robinson (1981)]. At Solana, we are demonstrating that these same theoretical limits apply just as well to blockchain on an adversarial network. The key ingredient? Finding a way to share time when nodes cannot trust one-another. Once nodes can trust time, suddenly ~40 years of distributed systems research becomes applicable to blockchain!
集中型データベースは、トランザクションが平均176バイト以下であれば、標準的なギガビットネットワーク上で毎秒71,0000ものトランザクションを処理することが可能です。集中型データベースは、楽観的同時実行制御として知られる分散システム技[H.T.Kung,J.T.Robinson(1981)]を使用することで、トランザクションの大幅な低下を防ぎつつ、自身を複製して高可用性を維持することが可能です。ソラナでは、これらと同じ理論的限界が敵対的ネットワーク上のブロックチェーンにも同様に適用されることを実証しています。キーとなるものは何かというと、それはノードがお互いを信頼できないときに時間を共有する方法を見つけることです。ノードが時間を信頼できるようになれば、40年の分散システム研究が突然ブロックチェーンにも適用することが可能となります。

Perhaps the most striking difference between algorithms obtained by our method and ones based upon timeout is that using timeout produces a traditional distributed algorithm in which the processes operate asynchronously, while our method produces a globally synchronous one in which every process does the same thing at (approximately) the same time. Our method seems to contradict the whole purpose of distributed processing, which is to permit different processes to operate independently and perform different functions. However, if a distributed system is really a single system, then the processes must be synchronized in some way. Conceptually, the easiest way to synchronize processes is to get them all to do the same thing at the same time. Therefore, our method is used to implement a kernel that performs the necessary synchronization--for example, making sure that two different processes do not try to modify a file at the same time. Processes might spend only a small fraction of their time executing the synchronizing kernel; the rest of the time, they can operate independently--e.g., accessing different files. This is an approach we have advocated even when fault-tolerance is not required. The method's basic simplicity makes it easier to understand the precise properties of a system, which is crucial if one is to know just how fault-tolerant the system is. [L.Lamport (1984)]
おそらく、私達の方法で得られたアルゴリズムとタイムアウトに基づくアルゴリズム間での最も顕著な違いは、後者では”タイムアウトを使用した際、プロセスが非同期的に動作する伝統的な分散アルゴリズムが生成される”のに対し、前者である私達の方法では、”すべてのプロセスが(殆ど)同じ時間に同じことを行うグローバルにおづきしたアルゴリズムが生成される”ということです。この方法では、異なるプロセスが独立して動作し、異なる機能を実行することを可能にするという分散処理の目的と一見矛盾しているように思わえるかもしれません。しかしながら、もし分散システムが本当に単一のシステムであるならば、プロセスは何らかの方法で同期する必要性が生じます。概念として述べると、プロセスを同期させる最も簡単な方法は、”すべてのプロセスを同時に同じように行うこと”です。したがって、私達が行っている方法では、必要な同期を実行するカーネルを実装するために使用されます。プロセス自体では、同期化カーネルを実行するほんの一部しか使われないかもしれませんが、残りの時間は独立して動作することが出来ます。これは、フォールトトレランス※1)が要求されない場合でも、私達が提唱してきたアプローチです。この方法の利点として、システムな正確な特性を理解することを容易にすることです。L.Lamport(1984)

※1)フォールトトレランスとは、機器やシステムの設計などについての考え方の一つで、構成要素の一部が故障、停止などしても予備の系統に切り替えるなどして機能を保ち、正常に稼動させ続けること。

Furthermore, and much to our surprise, it can be implemented using a mechanism that has existed in Bitcoin since day one. The Bitcoin feature is called nLocktime and it can be used to postdate transactions using block height instead of a timestamp. As a Bitcoin client, you would use block height instead of a timestamp if you don't trust the network. Block height turns out to be an instance of what's being called a Verifiable Delay Function in cryptography circles. It's a cryptographically secure way to say time has passed. In Solana, we use a far more granular verifiable delay function, a SHA 256 hash chain, to checkpoint the ledger and coordinate consensus. With it, we implement Optimistic Concurrency Control and are now well en route towards that theoretical limit of 710,000 transactions per second.
更に驚くべきこととして、これはビットコインに初期から存在しているメカニズムを使って実装することが可能です。ビットコインの機能はnLocktimeと呼ばれるもので、タイムスタンプを使う代わりにブロックの高さを使って取引の日付を後にすることが出来ます。ビットコインクライアントとして、ネットワークを信頼していない場合は、タイムスタンプの代わりにブロックの高さを使用することとなります。ブロックの高さは、暗号界隈では、検証可能な遅延関数と呼ばれているもののインスタントであることが判明しました。これは、時間が経過したことを暗号的に安全に伝える方法です。一方ソラナでは、台帳のチェックポイントとコインセンサスの調整にSHA256ハッシュチェーンという、より細かい検証可能な遅延関数を使用しています。これによって、私達は楽観的な並行性制御(上記参照)を実装し、1秒間に71,0000トランザクションという理論上の限界に向かって順調に歩を進めています。

・Documentaiton Overview(概要)

The Solana docs describe the Solana open source project, a blockchain built from the ground up for scale. They cover why Solana is useful, how to use it, how it works, and why it will continue to work long after the company Solana closes its doors. The goal of the Solana architecture is to demonstrate there exists a set of software algorithms that when used in combination to implement a blockchain, removes software as a performance bottleneck, allowing transaction throughput to scale proportionally with network bandwidth. The architecture goes on to satisfy all three desirable properties of a proper blockchain: it is scalable, secure and decentralized.

The architecture describes a theoretical upper bound of 710 thousand transactions per second (tps) on a standard gigabit network and 28.4 million tps on 40 gigabit. Furthermore, the architecture supports safe, concurrent execution of programs authored in general purpose programming languages such as C or Rust.
ソラナのドキュメントでは、スケールアップのために一から構成されたブロックチェーンであるソラナオープンソースプロジェクトについて説明をしている。なぜソラナが有用であるのか?どのように使用したら良いのか?どのようにそれは機能するのか?そしてソラナ社がその扉を閉じた後にも長く機能することが出来るかどうかについての説明をしています。ソラナアーキテクチャの目標は、ブロックチェーンを実装するために組み合わせて使用することで、パフォーマンス面でのボトルネックとなるソフトウェアを取り除き、ネットワーク帯域に比例してトランザクションのスループットを拡張できるようにするソフトウェアアルゴリズムのセットが存在するということを実証することです。このアーキテクチャは適切なブロックチェーンの3つの望ましい特性をすべて兼ね備えています。

また、このアーキテクチャでは標準的なギガビットネットワーク上では秒間71,0000トランザクション(tps)、40ギガビット下では2,840万tpsという理論的な上限を説明しています。更に、このアーキテクチャでは、CやRustなどの汎用プログラミング言語で書かれたプログラムでの安全な同時実行をサポートしています。

・What is a Solana Cluster?(ソラナクラスターって?)

A cluster is a set of computers that work together and can be viewed from the outside as a single system. A Solana cluster is a set of independently owned computers working together (and sometimes against each other) to verify the output of untrusted, user-submitted programs. A Solana cluster can be utilized any time a user wants to preserve an immutable record of events in time or programmatic interpretations of those events. One use is to track which of the computers did meaningful work to keep the cluster running. Another use might be to track the possession of real-world assets. In each case, the cluster produces a record of events called the ledger. It will be preserved for the lifetime of the cluster. As long as someone somewhere in the world maintains a copy of the ledger, the output of its programs (which may contain a record of who possesses what) will forever be reproducible, independent of the organization that launched it.
クラスタというのは、一緒に動作し、外部からは単一のシステムとして見ることが出来るコンピュータセットのことを言います。ソラナクラスタでは、信頼されていないユーザが提出したプログラムの出力を検出するために、独立して所有しているコンピュータのセットです(場合によっては互いに敵対することもあります)。ソラナクラスタは、ユーザが時間内のイベントの普遍の記録や、そららのイベントのプログラム上での解釈を保存したい場合にいつでも利用することが出来ます。一つの例を上げるとするならば、クラスタを稼働すさせるためにどのコンピュータが有意義な作業を行ったかを追跡することが挙げられます。別の例としては、実世界における資産所有状況を追跡することが考えられます。いずれの場合でも、クラスタは台帳と呼ばれるイベントの記録を作成します。これはクラスタの寿命まで保存されます。世界のどこかの誰かが台帳のコピーを保持している限り、そのプログラムの出力(誰が何を所有しているかの記録を含んでいる場合もあります)は、それを起動した組織とは関係なく、永遠に再現することが可能です。

・What are SOLs?(SOLとは?)

A SOL is the name of Solana's native token, which can be passed to nodes in a Solana cluster in exchange for running an on-chain program or validating its output. The system may perform micropayments of fractional SOLs, which are called lamports. They are named in honor of Solana's biggest technical influence, Leslie Lamport. A lamport has a value of 0.000000001 SOL.
SOLはソラナネイティブトークンの名前であり、オンチェーン上でのプログラム実行や出力の検証と引き換えに、ソラナクラスタ内のノードに引き渡すことができるものです。システムは、ランポートと呼ばれる端数のSOLのマイクロペイメント※2)(<超>少額決済)を実行することが出来ます。これは、ソラナの最大の技術的影響力を持つLeslie Lamportにちなんで名付けられています。ちなみにランポートの値段は、0.000000001sol(1sol170円としたら、0.0000017円)です。

※2)マイクロペイメント(英: micropayment)は、通常の支払いシステムでは少額の決済を行うと経費が掛かり現実的ではないので、少額の金銭の支払い(転送)の手段として考案された[1]。小額決済あるいは超少額決済とも。"micropayment" という言葉は本来アメリカでの1ドルの1000分の1を意味し[2]、ミル単位の支払いを効率的に実現する支払いシステムを意味する。しかし最近では、クレジットカードなどの電子的支払い機構では現実的に処理できない程度の小額の支払いを意味する。マイクロペイメントを使った取引をマイクロコマース (microcommerce) という。(wikipediaより)

・Disclaimer(免責事項)

All claims, content, designs, algorithms, estimates, roadmaps, specifications, and performance measurements described in this project are done with the author's best effort. It is up to the reader to check and validate their accuracy and truthfulness. Furthermore, nothing in this project constitutes a solicitation for investment.
本プロジェクトに記載されているすべての主張、内容、設計、アルゴリズム、見積もり(評価)、ロードマップ、仕様、および性能測定については、最善の努力によって行われています。その正確性と真実性を確認し、検証するのはあなた方の責任となります。さらに、本プロジェクトのいかなるものも投資勧誘を目的としたものではございませんのでご了承ください。

この記事が気に入ったらサポートをしてみませんか?