「スマートコントラクト」のフレーズとコンセプト だった によって提案されました ニック・サボ POS(販売時点管理)などの電子取引方法の機能をデジタル領域に拡張するというビジョンを持っています。 スマートコントラクトは、仲介業者のサービスを回避しながら、透明で競合のない方法で資産、株式、または価値のあるものを交換するのに役立ちます。
以下は、このスマートコントラクトブログで取り上げるトピックです。
- スマートコントラクトとは何ですか?
- NickSzaboによるスマートコントラクト
- スマートコントラクトが必要な理由
- スマートコントラクト:ユースケースごとの複雑さ
- スマートコントラクトのユースケース:ヘルスケア業界
- スマートコントラクトの利点
- スマートコントラクトを作成するためのブロックチェーンプラットフォーム
- スマートコントラクトを作成および展開するためのツール
- イーサリアムを書くためのプログラミング言語
- プロパティ転送スマートコントラクト
スマートコントラクトとは何ですか?
スマートコントラクトは、特定の条件が満たされたときに自動的に実行される自己動作型のコンピュータープログラムです。
スマートコントラクト=信頼できないコントラクト
スマートコントラクトを使用すると、見知らぬ人の間で、競合のない透過的な方法で価値のあるものを共有できます。
スマートコントラクトはブロックチェーンと考えることもできますベースの自動販売機。自動販売機が選択したアイテムを分配するためにドルを受け取るように構成されているのと同じように、スマートコントラクトは エーテル 事前設定されたルールに基づいてコードを実行するための燃料として。
スマートコントラクトとは|最初のイーサリアムスマートコントラクトを展開する|エドゥレカ
NickSzaboによるスマートコントラクト
Szaboは彼の論文で、デリバティブや債券などの合成資産の契約の締結を提案しました。 「これらの新しい証券は、証券(債券など)とデリバティブ(オプションと先物)をさまざまな方法で組み合わせることによって形成されます。コンピュータ化されているため、支払いの非常に複雑な期間構造を標準化された契約に組み込み、低い取引コストで取引できるようになりました。これらの複雑な用語構造の分析」と彼は書いています。
スマートコントラクトが必要な理由
ブロックチェーンにコントラクトを記述して物事をシンプルかつ効率的にすることで、多くのソリューションを自動化できます。スマートコントラクトが従来のコントラクトよりも優れていることを比較して評価しましょう。
スマートコントラクト:ユースケースごとの複雑さ
コントラクトの複雑さは、ブロックチェーンでコーディングすることを夢見ているユースケースによって異なります。以下の画像は、スマートコントラクトの複雑さをより明確に示しています。
コンテキスト化されたスマートコントラクトを使用すると、企業が自動化されるだけでなく、分散型自律組織が形成される可能性があります。
ユースケースの助けを借りて、スマートコントラクトがどのように機能するかを理解しましょう。スマートコントラクトのユースケース:ヘルスケア業界
患者データ管理: 患者データ管理に関しては、 2つの主要な問題 ヘルスケア業界:
- 最初 、各患者は一意であるため、治療を適応させ、個別のケアを提供するには、完全な医療記録へのアクセスが不可欠です。
- 2番目 、医学界間で情報を共有することは大きな課題です
現在、上記の問題は、ブロックチェーンのスマートコントラクト機能を使用して解決できます。
スマートコントラクトの利点
スマートコントラクトが提供するものは次のとおりです。
スマートコントラクトを作成するためのブロックチェーンプラットフォーム
一方 イーサリアム 契約書を書くための最も人気のあるプラットフォームであり、それだけではありません。以下は、スマートコントラクトを作成するために使用される他のプラットフォームの一部です。
ビットコイン: ビットコインは、ドキュメントを処理するときに機能が制限されているスクリプトを使用します。スクリプトは、ビットコイントランザクションを処理するように特別に設計されています。
Hyperledgerファブリック : ファブリックでは、チェーンコードはネットワーク上にデプロイされたプログラムコードであり、コンセンサスプロセス中にチェーンバリデーターによって一緒に実行および検証されます。
Javaでシリアル化できるもの
NXT: これは、スマートコントラクト用の限られたテンプレートの選択肢を含むパブリックブロックチェーンプラットフォームです。与えられたものを使用する必要があり、独自のコードを書くことはできません。
側鎖: サイドチェーンは、ブロックチェーンのパフォーマンスとプライバシー保護を強化します。また、機能を追加しますお気に入りスマートコントラクト、安全なハンドル、そして 実世界のプロパティレジストリ。
スマートコントラクトを作成および展開するためのツール
- ミストブラウザ –これはdAppを参照して使用するためのツールです。これは、dAppを参照して操作するために使用できる別個のブラウザーです。
- トリュフフレームワーク –トリュフはイーサリアムの人気のある開発フレームワークです。スマートコントラクトのコンパイル、リンク、デプロイ、バイナリ管理が組み込まれています。
- メタマスク – MetaMaskは、今日のブラウザーで明日の分散Webにアクセスできるようにするブリッジです。これにより、ユーザーは完全なイーサリアムノードを実行しなくても、ブラウザーでイーサリアムdAppを直接実行できます。
- リミックス – Remixは、ユーザーがSolidityスマートコントラクトを作成し、スマートコントラクトを展開して実行できるようにするWebブラウザーベースのIDEです。
イーサリアムスマートコントラクトを作成するためのプログラミング言語
堅牢性 &サーペント イーサリアムスマートコントラクトを書くための2つの主要な言語です。
: これは、JavaScriptと同様の構文を持つ契約指向の高級言語であり、イーサリアム仮想マシン(EVM)をターゲットにするように設計されています。
蛇: Serpentは、Ethereumコントラクトを作成するために設計された高級言語です。 Pythonと非常によく似ていますが、2017年9月の時点で、SolidityはEthereum開発者が推奨する開発言語です。
Solidityは現在スマートコントラクトで最も人気のある言語ですが、将来重要になる可能性のあるスマートコントラクト言語がいくつかあります。
今後のプログラミング言語
- バイパー: ViperにはPythonのようなインデントスキームがあります。これは、セキュリティと言語およびコンパイラの単純さに焦点を当てています。
- Lisk: Liskは、開発者がアプリケーションをコーディングしやすくするスマートコントラクト言語としてjavascriptを使用しています。
- 鎖: チェーンは、Ruby、Java、NodeJSなどの一般的な言語のSDKを備えたエンタープライズグレードのブロックチェーンインフラストラクチャを提供します。
さて、SolidityはEthereum Smart Contractsを作成するために最も広く使用されているプログラミング言語なので、Solidityで作成された契約について説明します。
プロパティ転送スマートコントラクト
問題: 現在、私たちは中央当局を使用して不動産の所有権を譲渡しています。これは時間がかかり、ドキュメント管理の追加の負担を伴う多くの追加費用も引き付けます。また、システムが一元化されているため、常に不正の可能性があります。
解決: 計画では、このテクノロジーを使用して、銀行、ブローカー、政府関係者、買い手、売り手など、すべての関係者に不動産取引の詳細を表示します。
了解しました。スマートコントラクトを作成しましょう。
pragma solidity ^ 0.4.11 //実世界のプロパティ転送を模倣するためにこのユースケースを作成しています//このユースケースの前提条件は次のとおりです://デジタルIDが適切に配置されている//政府はパブリックブロックチェーン上の土地レコード//各開発機関(DA)は、その構成機関/立法機関の下に存在するプロパティの事実上の所有者になります//上記のすべての条件が満たされると、DA(所有者)はそれぞれのプロパティを簡単に添付できます徹底的な検証の後、正当な所有者に。 //この設定された仮定に基づいて関数を定式化します。 //各DAは、ルールと規制に従って独自のスマートコントラクトを展開することを前提としています。このスマートコントラクト全体は、DAを所有者と見なして作成されています。所有者はプロパティを割り当てることができます。 //政府はこれらのDAの上のレイヤーになることができます。政府は、どのDA(アドレス)がどの構成員の所有者になるかを決定できます。 //これは簡単に拡張できます。しかし、このスマートコントラクトを通過した後、あなたは物事がどのように機能するかを理解することができるでしょう。 Contract PropertyTransfer {address public DA // DAが所有者になります。この変数の値は、デプロイするユーザーのアドレスによって初期化されます。例えばDA自体を考えてみましょう。 uint256 public totalNoOfProperty //任意の時点でのDAの下のプロパティの総数。確認後、それぞれの所有者への割り当てに従って増やす必要があります。 //以下は、コントラクトが作成されたときにのみコードが実行されるコンストラクターです。 function PropertyTransfer(){DA = msg.sender //コントラクトの所有者をDAとして設定します。 } // txがDA(owner)から来ているかどうかをチェックする修飾子onlyOwner(){require(msg.sender == DA)_} //この構造体は、単なるよりも多くの情報を格納するためにこのように保持されますname struct Property {string name //各アドレスに対するプロパティのマップを保持します。プロパティに名前を指定しますboolisSold //各アドレスのカウントも保持します} mapping(address => Mapping(uint256 => Property))public propertiesOwner //各アドレスに対してプロパティをマッピングします。その名前とそれは個人の数です。 Mapping(address => uint256)individualCountOfPropertyPerOwner //特定の人がイベントを保持するプロパティの数PropertyAlloted(address indexed _verifiedOwner、uint256 indexed _totalNoOfPropertyCurrently、string _nameOfProperty、string _msg)event PropertyTransferred(address indexed _from、address indexed _to、string _propertyName _msg)//これにより、任意の時点で任意のアドレスが所有する正確なプロパティカウントが得られますfunction getPropertyCountOfAnyAddress(address _ownerAddress)定数が返す(uint256){uint count = 0 for(uint i = 0 i
つまり、分散型ネットワークでプロパティを転送する方法をプログラムしただけです。なんてクールだ!
[スマートコントラクト]が社会の側面を変える可能性は非常に大きいことがわかります。
それで、私はこれを結論付けます スマートコントラクト ブログ。このブログを楽しんで読んでいただき、参考になったと思います。
質問がありますか?コメント欄にご記入ください。早急にご連絡いたします。st。
私スマートコントラクトを学び、ブロックチェーンの領域でキャリアを築き、イーサリアムプログラミングの専門知識を習得したい場合は、ライブオンラインに登録してください ここでは、24時間365日のサポートが付属しており、学習期間全体をガイドします。