分散型レンタカーはオープンソースに影響を与えました ブロックチェーンIoTプロジェクト 、そこからユーティリティコインモトロが登場しました。近い将来、以下で説明するパブリックスマートコントラクトは、分散アプリ(ĐApp)インターフェイスを介してアクセスできるようになります。スタートアップ バイキングガレージ すでにヨーロッパと東南アジアでより良いオートバイのレンタルへのアクセスを提供しています。そこに目撃された物語は、ブロックチェーン技術を通じてピアツーピアの電動機レンタルのためのオープンプロトコルの研究開発を推進してきました。
技術会議は常に知的なごちそうです。巨大なエネルギーは人類の改善に焦点を合わせています。より良い未来を想像することに費やされた創造性は決して失望しません。しかし、スティーブン・ホーキングが最近AIが私たちの運命になるかもしれないと警告したときのように、テクノロジーがうまくいかないことに対する警告もあります。このコントラストは、Uberの乗車中に興味深い議論への道を確実に開きます。
裏側は明るいです。私たちは今、私たちの世界を素早く形作ることを可能にする技術を持っています。昨日のテクノロジーに対して新しいレベルの抽象化を作成し、作成者が想像もしなかった方法で多くの既存のマシンを活用します。最もホットな現代テクノロジーの2つを深く掘り下げた後、 ブロックチェーン そして IoT —アイデアは、重大な社会的および経済的影響の可能性を伴って出現します。百万の雇用を生み出すような影響。しかし、運輸業界でこれを達成できる実用的なブロックチェーンIoTのユースケースはどのようなものですか?
時々、そのような場合、解決策は驚くほど単純です。
VIKING GARAGEでは、バイクの所有者がバイクをレンタルしてお金を稼ぐのを支援しています。言い換えれば、私たちはオートバイの共有経済を構築し、個人の輸送業界を混乱させました。そして今、ユーティリティコインモトロをご紹介します。しかし、一歩下がって、なぜそれが必要なのかがわかるようにしましょう。
一般的な世界の運輸業界の重要な側面の1つは、新しい機械や車両は一般的に高価であるということです。対照的に、既存のハードウェアへのアクセスははるかに安価であり、多くの場合、品質は同じです。一部の企業は、機械を貸し出すだけで運営されており、実際には金融機関から貸し出されていることがよくあります。 (その状況は、ソフトウェアの現在の状態とはかなり異なります。)
特に、建設現場、農業農場、輸送機関、さらには小売業界で使用される車両は、1回限りのプロジェクトでは購入するには高すぎます。これには個人の移動手段も含まれます。そのため、Taxifyのようなライドシェアリングサービスを利用しています。
贅沢なサービスであるUberBlackは、世界最大の都市でも低価格で素晴らしい体験を提供します。それが共有の要点です。高品質の商品へのアクセスが簡単かつ経済的になります。テスラの車両が本当に必要なのは、実際に場所を移動するときだけです。所有権は、使いやすさの産物と見なすことができます。バッテリーが何年にもわたって劣化すること、さらに悪いことに、グランドセフトオートについて心配したい人はいますか?私はPolestar1を選びます。4月に発売されると、「キープ用」に購入することすらできなくなります。
所有権は、ユーザビリティの成果物と見なすことができます。
所有権からより実用的なアプローチへの傾向は、すべてのマシン所有者にとって絶好の機会です。これを書いているとき、私は3か月の滞在中にインドネシアで出会った優秀なメカニック、ライダー、オートバイの所有者のことを思い出します。多くの場合、彼らのオートバイは彼らが所有していた主な(そして時には唯一の)富でした。
その国だけでも、毎年700万台の新しいオートバイが販売されています。それでも、私が個人所有者に頼るまで、特定の自転車(この場合はダートバイク)を中期的に借りることはほぼ不可能でした。個人所有者と取引する場合、そのタイプのオートバイへのアクセスは大幅に改善され、価格は大企業が要求したものの何分の1かにまで下がりました。その人が機械を持っていて、その時は必要なかったので、お金を払って使ってみたかったのです。それはうまくいった。
それは簡単でした。スケーリングしてみませんか?
実際には、質の高いサービスを提供するスケーラブルなビジネスを作ることは簡単ではありません。その最初の取引がうまくいったとしても、それはほとんど運でした。私は自分自身を現実主義者だと思います。何かがうまくいかない場合、10万回のトランザクションの過程で、おそらく何度もそうなると信じています。
機械は危険です。オートバイの事故は特に致命的です。事故が発生した場合、法律により、そして保険のために、原因が発見されますが、それは所有者とライダーをどこに残すのでしょうか?
エンジニアとして、私たちはヒューマンエラーの蔓延を理解しています。 VIKING GARAGEでは、機械を借りることで、人々が乗ることができ、所有者がお金を稼ぐことができるようにしたいと考えています。私たちは責任の可能性を認識し、リスクを最小限に抑えるつもりです。私たちは、人々が車を借りて乗ることができる、オープンで透明性のある安全な手段を提供したいので、所有者と賃貸人の間で取引を維持したいと考えています。
では、何がうまくいかない可能性がありますか?当初、レンタルバイクにアクセスすることすら非常に難しいかもしれません。それを乗り越えて、利用可能な機械があるとすると、所有者からの質問は、「誰かがそれを盗んだらどうなるか」ということです。それは大きな問題です!対照的に、ライダーは「バイクに損傷を与えたらどうなりますか?」と尋ねます。それは、保険と正式な賃貸契約で解決できる可能性があります。ライダーからよく聞かれるもう一つの質問は、「事故に遭ったら、誰のせいですか?」です。もちろん、交通規制はありますが、機械が故障する可能性があるため、機械の機械的状態を考慮する必要があります。それに加えて、所有者と賃貸人の間、およびそれぞれと地方自治体の間の正式な信頼の問題。
上記の5つの重要な問題は次のとおりです。 アクセスロジスティクス 、 盗難 、 責任ある使用と責任 、 マシンの状態 、および 信頼 。従来の解決策は、賃貸契約、保険、交通規制の3つだけのようです。これらのソリューションは何度も失敗しました。機械を借りるだけで、それをすべて考慮する必要がありますか?地球規模で機械を貸し出し、安全を確保してほしいVIKING GARAGEの場合、答えは「はい」です。新しいテクノロジーがどのように役立つかを考えてみましょう。
幸いなことに、前述の問題を解決したり、既存のソリューションを改善したりするためのテクノロジーができました。わかりやすくするために、もう一度問題をリストしましょう。
最初の解決策、そして私たちが構築するものは、分散型のパブリックネットワーク上でマシンとレンタルトランザクションを表現することでした。一部の分散型台帳、またはブロックチェーンは、自然に適合しているように見えました。特に、イーサリアムブロックチェーンの人気の高まりとチューリング完全性に注目が集まった。
トランザクションの処理を可能にするには、2種類のスマートコントラクトで十分です。1つは所有者とライダー/レンターを表し、もう1つはマシンを表します。別の要件があります。第三者の関与なしに、詐欺や誤解の可能性を最小限に抑えるためのプロトコル。ほとんどの契約では、賃貸の物理的な証明のセットを文書化する必要がある可能性があります。そのアルゴリズムの開発は難しい場合がありますが、基本的に、ほんの一握りのスマートコントラクトで、ブロックチェーンを共有経済の基本プラットフォームとして使用できます。ブロックチェーンの本来の機能は、分散コンセンサスと安全なトランザクションを促進することであるため、これは非常に便利です。
ここは 初期のスケッチ Solidityで書かれたEthereumスマートコントラクトとしてのマシン表現の例。契約には、エスクローシステムを含む単純な賃貸のインターフェースがすでに含まれています。コードは正しくコンパイルされ、ソリューションがいかにシンプルで効果的であるかを概説するのに役立ちます。
pragma solidity ^0.4.18;
import '../node_modules/zeppelin-solidity/contracts/token/ERC20Basic.sol';
import '../node_modules/zeppelin-solidity/contracts/token/SafeERC20.sol';
/**
* @title Ownable
* @dev The Ownable contract has an owner address, and provides basic authorization control
* functions; this simplifies the implementation of 'user permissions.'
*/
contract MachineRepresentation {
using SafeERC20 for ERC20Basic;
address public owner;
address public pendingRenter;
address public renter;
string public model;
string public make;
string public vin;
uint256 public rentalPrice;
uint256 public rentalCount;
// ERC20 basic token contract being held
ERC20Basic public token;
event MachineRental(address indexed _machine, address indexed _owner, address indexed _renter, uint256 startTime, uint256 endTime, uint256 _rentalPrice);
event RentalClaimed(address indexed _machine, address indexed _renter, uint256 claimedTime);
event MachineReturned(address indexed _machine, address indexed _renter, uint256 returnTime);
event ReturnConfirmed(address indexed _machine, address indexed _owner, uint256 claimedTime);
/**
* @dev The MachineRepresentation constructor sets the original `owner` of the contract to the sender
* account. It also sets the model, make, and VIN of the machine.
*/
function MachineRepresentation(string _model, string _make, string _vin) public {
owner = msg.sender;
model = _model;
make = _make;
vin = _vin;
rentalCount = 0;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(msg.sender == owner);
_;
}
/**
* @dev Throws if called by any account other than the renter.
*/
modifier onlyRenter() {
require(msg.sender == renter);
_;
}
/**
* @dev Throws if called by any account other than the pending renter (temporary role).
*/
modifier onlyPendingRenter() {
require(msg.sender == pendingRenter);
_;
}
/**
* @dev Allows the owner to rent out the machine to the renter, and specify the start and end time
* and also the price for the rental
*/
function rentMachine(address _pendingRenter, uint256 startTime, uint256 endTime, uint256 price) public onlyOwner {
require(_pendingRenter != address(0));
rentalPrice = price;
MachineRental(this, owner, _pendingRenter, startTime, endTime, price);
pendingRenter = _pendingRenter;
}
/**
* @dev Allows the pendingRenter address to finalize the transfer and provide a token contract, with the cash to hold
*/
function claimRental(ERC20Basic _token) onlyPendingRenter public {
require(rentalPrice <= _token.balanceOf(this));
token = _token;
renter = pendingRenter;
pendingRenter = address(0);
RentalClaimed(this, renter, now);
}
/**
* @dev Allows the renter address to return the machine, and transfer the cash from the held contract, to the machine
owner
*/
function returnMachine() onlyRenter public {
uint256 amount = token.balanceOf(this);
require(rentalPrice <= amount);
token.safeTransfer(owner, amount);
MachineReturned(this, renter, now);
}
/**
* @dev Allows the owner address to confirm the return of the machine
*/
function confirmReturn() onlyOwner public {
renter = address(0);
rentalPrice = 0;
rentalCount++;
ReturnConfirmed(this, owner, now);
}
}
考えられる多くのレンタル取引タイプすべてをカバーするには、いくつかの有限のスマートコントラクトが必要であることを指摘しておく必要があります。柔軟性を念頭に置いて構築され、レンタカーに焦点を当てた、再利用可能で最小限のスマートコントラクトを備えたモジュラーライブラリの必要性を認識しています。これにより、他のエンジニアがユースケースの最終契約を結ぶことができます。リレー事業、提供 DApp コントラクトへのインターフェースは、特定のスマートコントラクトタイプへのゲートウェイになるだけで成長できる可能性があります。
では、イーサリアムブロックチェーンは正確にどのような価値を追加しますか?
まず第一に、賃貸契約は透明になります。パブリックブロックチェーンに関するすべての情報は、まあ、公開されています。別の場所で秘密にされ安全に保管されているデータを参照することは可能ですが、参照は公開されたままになります。基本的に、すべての賃貸契約は、双方が合意する詳細とともに、公に利用可能になります。
第二に、その情報のコピーが分散型台帳(ブロックチェーン)全体に配布されるため、その情報は安全です。トレースは永久に存在し続けるか、少なくともハードフォークがトランザクションを容易にするために使用されるブロックを明示的に修正するまで存在しますが、その可能性はほぼゼロです。
第三に、イーサリアムブロックチェーン上のすべてのトランザクションを検証する必要があるため、情報も安全です。つまり、コンセンサスを達成する必要があります。
ブロックチェーンを使用する4番目の理由は、コントラクトが自己実行することです。署名すると、契約に記載されている条件が満たされているかどうかを評価するために、ユーザーの操作は必要ありません。つまり、当事者がそのような要件を追加することに同意しない限り。ただし、契約では外界からの情報に直接アクセスすることはできませんのでご注意ください。その理由は、 イーサリアムには すべての状態が変化し、いつでも誰でも検証できるようになります。
したがって、信頼できる機関は、ブロックチェーンの外部からの受信情報を検証し、データを供給するために必要です。その役割はオラクルと呼ばれるサービスによって満たされました、それらの中で最も人気があるのは Oraclize 。 Oraclizeのように、オラクルのグループを参照することで、ある程度の分散化を実現できます。しかし、現在のテクノロジーの状態では、より良いソリューションが必要です。たとえば、レンタルマシン自体がオラクルに取って代わることができるとしたらどうでしょうか。
5番目の理由:スマートコントラクトは自己強制的です。つまり、署名された後、設定された条件が満たされると、スマートコントラクトは契約を解決するためのアクションを実行できることを意味します。文書への署名から契約の締結まで、契約のすべてが明確で自動化されています。設定された条件と結果は変更できません。このような契約は両当事者にとって安全であり、驚くことはありません。
これらの5つのポイント(急速に進化し、広く使用されているブロックチェーンテクノロジーによってネイティブにサポートされている)を代替案(安全で安全なトランザクションと契約のサポートを最初から構築する必要がある)と比較すると、最初の質問が変わります。なぜ私たちは ない ブロックチェーン技術を使いたいですか?
実際、そうしない理由はいくつかあります。すべてのブロックチェーントランザクションは、実行するためにガスを必要とします。つまり、支払いが必要です。ザ・ 現在の平均コスト イーサリアムブロックチェーンでの標準転送の金額は1米ドルです。 2番目の理由は、ブロックチェーンが非常に遅いことです。 3つ目の理由は、すべての情報が公開されていることです。脆弱な個人データを誰もがデータストアにアクセスできるようにしておくことは、それらのレコードを変更または削除する可能性なしに、単に危険であり、多くの場合違法です。
トランザクションのコストと速度はブロックチェーン間で大きく異なることに注意する必要があります。イーサリアムブロックチェーンは現在非常に人気がありますが、次のようなリレーチェーンの台頭とともに ポルカドットプロジェクト 、まもなくより適切なプラットフォームが登場します。分散化は最も重要な機能であり、分散型台帳テクノロジーで提供されます。
プライバシーに関しては、最終的には正式な合意を得てブロックチェーンに保存されるデータは最小限に抑える必要があります。ユーザーは、ウォレットのアドレスによって参照されます。 やや匿名、または仮名 。
マシンの共有に関するリストされた5つの問題に戻りましょう。これで、ブロックチェーン接続されたĐAppとオフチェーンSaaSおよびハードウェアとソフトウェアのIoTモジュールを組み合わせたフルスタックサイバーフィジカルシステムが、前述の問題をどのように解決できるかを明確に説明できます。
マシンを表すために使用されるスマートコントラクトは、パブリックブロックチェーンに保存されます。これらの表現は、中央ビジネスから独立しており、意志と可用性に応じて再利用されるいくつかのĐアプリに含まれる可能性があります。
マシンの識別は、バインディングがソフトウェア側(ブロックチェーン)とハードウェア側(組み込みIoTシステム)の両方で表現されている場合に最も強い効果があります。サイバーフィジカルネットワークは マイクロコントローラー 、オンボード診断(OBD-IIなど)コネクタやエンジンコントロールユニット(ECU)などのマシンのモジュールに接続されています。これらのマイクロコントローラーは、マシンの識別に使用されるスマートコントラクトにデータを提供します。したがって、それらはハードウェアオラクルになります。
電子接続の種類、インターネット接続、そして最終的に当事者がレンタルのスマートコントラクトで合意する条項に応じて、契約の自己強制属性は物理マシンにまで及ぶ可能性があります。
相互作用には、マシンからの読み取りとマシンへの書き込みの2種類があります。このような相互作用の簡単な例は、マシンが返却されなかった場合にGPS追跡をオンにするか、イグニッションまたは燃料噴射をオフにするか、マシンが動作しなくなるポイントに燃料マッピングを変更することです。
マシンの状態を書き込んだり変更したりできるアプライアンスを扱う場合は、細心の注意が必要です。ザ・ 人間の安全のための明らかな危険 、の必要性を指摘する 責任あるアプリケーション 、 そのようなIoTシステムの下で大きな力 。
この側面の改善は、賃貸契約として使用されることを意図したスマートコントラクトの透明性、自己実行、および自己施行の直接的な効果です。このような文書には、当事者が決定するすべての条項を含めることができます。
マシンのレンタル前後の状態を示す写真やビデオなどの他のタイプのドキュメントは、競合が発生した場合の証拠としてブロックチェーンに保存できます。
スマートコントラクトは、上記の例のように、保証金契約を拘束することもできます。トランザクションのすべてのステップとその解決は、すべての資産とともに、常に透過的で予測可能です。
マシンは写真では非常に見栄えがよく、起動時には一見うまく動作しているように見えますが、最初は多くの障害が隠されたままになる可能性があります。ベアリングの摩耗、過熱、およびその他の多くの問題は、気付くために特定の知識を必要とする場合があります。
しかし、これらの欠点はおそらく現れ、賃貸人の経験を台無しにし、おそらくさらなる問題を引き起こします。高温のエンジンでガソリンが漏れていると想像してみてください。これは、2台の異なるモーターサイクルでの個人的な経験の2倍でした。
この問題はコミュニティが取り組むことができます。コメントで自分の経験を説明し、スコアリングシステムを提供することでユーザーに報酬を与えると、状況は即座に改善されます。マシンに適用されたコメントとスコアをマシンの所有者に与えられたものと区別することは、機械的な状態とサービスおよび通信品質を評価するのにさらに役立ちます。また、その情報は共有経済にまたがる可能性があります。
この最後の問題は、前の2つと一緒に解決されます。スマートコントラクトの性質により、契約の透明性が高まりますが、コミュニティはユーザーが悪意を持って行動しているかどうかをすばやく評価します。
個々のĐAppsは、地域や地方自治体に典型的な賃貸契約スキーマに適用される契約のバージョンを印刷するオプションを追加する可能性があり、一般的なソリューションが登場します。
このセクションで概説されている解決策は、私たちの意見では、個人的な交通機関のレンタルで現在の状況を大幅に改善することを可能にします。障害のオプションは最小限に抑えられ、その基本セットの上にさらにソリューションを構築できます。サイバーフィジカルシステムとコミュニティを導入することで、機械を借りるという困難でリスクの高いプロセスが難しくなり、管理が容易になります。
Motoroは、建設機械や農業機械など、他の種類の車両でも使用できることを強調することが重要です。
MotoroはERC20トークンです。つまり、標準に準拠し、Ethereumパブリックブロックチェーンで使用でき、Ethereumと交換できます。 他のERC20トークン 。次の理由で破壊的です。
バイクはVIKINGGARAGEで扱っている機械なので、いつも話題になっています。それらはまた非常に使いやすく、他のタイプのマシンと比較してそれほど高価ではありません。さらに、彼らはそのクールな音を出し、スロットルをひねると本当に速く進みます。ただし、Motoroは、建設機械や農業機械など、他の種類の車両でも使用できることを強調することが重要です。
Motoroの最初のグローバルな影響は次のとおりです。
IoTとブロックチェーンを含むこのグローバルな動きに参加することに興味がある場合は、すぐに参加する方法がたくさんあります。あなたは貢献することができます GitHubでのオープンソースプロジェクト 。もう1つの方法は、ライダーまたはマシンの所有者としてVIKINGGARAGEの使用を開始することです。最後に、ポーランドのキャンパスワルシャワ(Google Space)で開催されるApeeScapeコミュニティイベントの1つであるブロックチェーンIoTワークショップにぜひご参加ください。ここでは、Motoroのさらなる進化について話し合い、計画を立てています。そのためには、単にApeeScapeを検索してください 彼らのイベントページ 。一緒に学び、オープンソースのブロックチェーンを活用したIoTソリューションを作成するため、あらゆるスキルレベルの人々を歓迎します。
イーサリアムはパブリックブロックチェーンおよび仮想マシンです。それは直接取引をするための人々のネットワークです。イーサリアムの分散型アルゴリズムはコンセンサスを促進し、すべてのトランザクションは不変のブロックに格納されます。
変更不可能なブロックに格納されている、ネットワーク上のすべてのトランザクションの元帳であるユーザーのマシン上のデータベースは、特定のコンテキストでは「ブロックチェーン」と呼ばれることがあります。イーサリアムやビットコインのような分散型ブロックチェーンは、テクノロジーをネットワークに拡張します。すべてのユーザーはそのコピーを保持します。
ブロックチェーンは、すべてのユーザーのマシン上で、ブロックと呼ばれる順次リンクされたデータセットにトランザクションを格納します。ユーザーはネットワークを介して接続し、信頼できない分散アルゴリズムを使用して、サードパーティに依存するのではなく、コミュニティに依存することなく、トランザクションの単一の履歴についてコンセンサスを達成します。
イーサリアムはイーサリアムブロックチェーンの最初の通貨でした。これはシステムによってネイティブに処理され、「イーサトークン」は現在の標準ERC-20「イーサリアムトークン」とは異なります。一般に、トークンはアセットを表します。暗号通貨、サービス、または接続された物理オブジェクト。言い換えれば、それらは価値を表しています。
スマートコントラクトは、ブロックチェーンの仮想マシンによって実行されるプログラムです。他のユーザーと同じように、ネットワークアドレスを受け取ります。これらは、任意の契約およびトランザクションを処理および文書化するために使用されます。スマートコントラクトは、分散型アプリケーションのブロックチェーン側を構成します。
分散型アプリケーションは、ブロックチェーンに接続するアプリです。 Webやネイティブなど、さまざまなフロントエンドインターフェイスを使用できます。ユーザーはインターフェースを介して、DAppで使用されるスマートコントラクトと対話します。スマートコントラクトは、ブロックチェーンがデータストアであるDAppのバックエンドと考えることができます。
モノのインターネット(IoT)は、インターネットを介して識別および通信できるが、スマートホームシステム、接続されたマシン、車両など、別の主要な役割を果たす物理デバイスを指す用語です。 IoTには、デバイスの管理に使用されるソフトウェアシステムも含まれます。