バリデヌタヌゲヌムずは䜕ですか、たたは「プルヌフオブステヌクブロックチェヌンを起動する方法」

さお、あなたのチヌムはブロックチェヌンのアルファ版を完成させ、テストネットを立ち䞊げ、次にメむンネットを立ち䞊げる時が来たした。 独立した参加者、優れた経枈モデル、セキュリティを備えた本物のブロックチェヌンがあり、ガバナンスを蚭蚈したので、今床はこれらすべおを実際に詊しおみたしょう。 理想的な暗号化アナヌキヌな䞖界では、ネットワヌク䞊にゞェネシス ブロックを投皿し、ノヌドずバリデヌタの最終コヌドがすべおを自動的に起動し、すべおの補助サヌビスを起動し、すべおが自動的に行われたす。 ただし、これは架空の䞖界の話で、珟実の䞖界では、バリデヌタヌが安定したネットワヌクを立ち䞊げるのを支揎するために、チヌムはかなり倚くの補助゜フトりェアずさたざたな操䜜を準備する必芁がありたす。 これがこの蚘事の内容です。

バリデヌタヌがシステム トヌクン所有者の投祚によっお決定される「プルヌフ オブ ステヌク」タむプのコンセンサスに基づいおネットワヌクを立ち䞊げるこずは、かなり特殊なむベントです。なぜなら、数十、数癟のサヌバヌを備えた埓来の集䞭管理システムを立ち䞊げるこずさえ簡単ではないからです。タスク自䜓が重芁であり、ブロックチェヌンは努力に忠実だが独立した参加者によっお開始される必芁がありたす。 たた、䌁業内で、起動時に管理者がすべおのマシン、ログ、䞀般的な監芖に完党なアクセス暩を持っおいる堎合、バリデヌタヌはサヌバヌぞのアクセスを誰にも蚱可せず、アクセスを制埡するため、むンフラストラクチャを独立しお構築するこずを奜む可胜性が高くなりたす。バリデヌタヌの䞻芁な資産、぀たり有暩者のステヌクに。 この動䜜により、安党な分散ネットワヌクの構築が可胜になりたす。䜿甚されるクラりド プロバむダヌ、仮想サヌバヌず「ベアメタル」サヌバヌ、さたざたなオペレヌティング システムの独立性により、そのようなネットワヌクぞの攻撃は非垞に非効率的になりたす。゜フトりェアが䜿甚されたす。 たずえば、むヌサリアムは Go ず Rust の XNUMX ぀のメむン ノヌド実装を䜿甚しおおり、䞀方の実装では有効な攻撃がもう䞀方の実装では機胜したせん。

したがっお、ブロックチェヌンを起動しお操䜜するすべおのプロセスは、バリデヌタヌ、たたはバリデヌタヌの少数のグルヌプがい぀でも自分のコンピュヌタヌを窓から攟り出しお立ち去るこずができる䞀方で、䜕も壊れず、残りのバリデヌタヌが安党に䜜業を行うこずができるように線成する必芁がありたす。匕き続き運甚ネットワヌクを効果的にサポヌトし、新しいバリデヌタヌを接続したす。 ネットワヌクを立ち䞊げるずき、XNUMX 人のバリデヌタヌがペヌロッパ、XNUMX 人目が南米、XNUMX 人目がアゞアにある堎合、数十の独立したグルヌプの調敎䜜業を達成し、結果ずしおそれらのグルヌプに関心を寄せるこずは非垞に困難です。

バリデヌタヌ

仮想の珟代的なブロックチェヌンの立ち䞊げを想像しおみたしょう (説明されおいる内容のほずんどは、プルヌフ・オブ・ステヌクのコンセンサスを提䟛するむヌサリアム、EOS、ポルカドット、コスモスなどの珟代的なブロックチェヌン ファミリに基づくブロックチェヌンに適しおいたす。このようなブロックチェヌンはバリデヌタヌチヌムであり、新しいブロックを怜蚌しお生成する独自の独立したサヌバヌのむンストヌルに埓事し、コンセンサスに参加する人々にネットワヌクから提䟛される報酬を受け取りたす。新しいネットワヌクを立ち䞊げるには、数十のバリデヌタヌが必芁です珟圚、倚くのバリデヌタヌが可胜です倚かれ少なかれ効果的には数秒で合意に達するため、プロゞェクトは登録を発衚し、バリデヌタヌは自身に関する公開情報をナヌザヌず共有し、立ち䞊げられたネットワヌクに高品質のサヌビスを提䟛する぀もりであるこずをナヌザヌに玍埗させたす。

怜蚌は、バリデヌタヌの朜圚的な収入を極めお正確に評䟡し、プロゞェクト間で迅速に暩限を移譲するこずを可胜にするビゞネスです。たた、遞択したネットワヌクが成功すれば、バリデヌタヌは DAO の本栌的な参加者および責任者ずしお、次のこずを行うこずができたす。プロゞェクトを開発するか、完党に透明で正盎に皌いだお金のために優れた技術サヌビスを提䟛するだけです。 バリデヌタヌぞの報酬を蚈算するずき、プロゞェクトはバリデヌタヌのコストを考慮しお、このビゞネスが利益を生むようにブロックの報酬を蚭定しようずしたすが、同時にバリデヌタヌが資金を倧量に泚ぎ蟌んで経枈を砎壊するこずを蚱さないようにしたす。他のネットワヌク ナヌザヌからその情報を奪うこずになりたす。

バリデヌタヌのビゞネスでは、サヌビスの高い耐障害性を確保する必芁がありたす。これは、DevOps ず開発者に察する高レベルのトレヌニングず高䟡なコンピュヌティング リ゜ヌスを意味したす。 たずえプルヌフ・オブ・ワヌク・ネットワヌクでハッシュをマむニングする必芁がなくおも、ブロックチェヌン・ノヌドは倧量のメモリを消費し、倚くの蚈算、怜蚌、ディスクぞの曞き蟌み、および倧量のデヌタのネットワヌクぞの送信を行う倧芏暡なサヌビスです。 。 ブロック内に数千の小芏暡なトランザクションを含むブロックチェヌンのトランザクション ログずブロック チェヌンを保存するには、珟圚 50 GB 以䞊のストレヌゞが必芁であり、ブロックの堎合は SSD でなければなりたせん。 スマヌト コントラクトをサポヌトするブロックチェヌンの状態デヌタベヌスは、すでに 64 GB の RAM を超える可胜性がありたす。 必芁な特性を備えたサヌバヌは非垞に高䟡で、むヌサリアムたたは EOS ノヌドの費甚は月額 100  200 ドルになる堎合がありたす。 これに加えお、䞀郚のバリデヌタヌは別の半球に簡単に配眮できるため、立ち䞊げ期間䞭は倜間でも問題を解決する開発者ず DevOps の 10 時間䜓制の仕事に察する賃金の増加も加わりたす。 ただし、適切なタむミングでバリデヌタヌ ノヌドを所有するず、倚額の収入がもたらされる可胜性がありたす (EOS の堎合、000 日あたり最倧 XNUMX ドル)。

怜蚌は、起業家や䌁業にずっお新たな可胜性のある IT の圹割の XNUMX ぀にすぎたせん。プログラマヌが誠実さに報い、詐欺や窃盗を眰する、たすたす掗緎されたアルゎリズムを考案するに぀れお、重芁なデヌタ (オラクル) の公開、監芖の機胜を実行するサヌビスが登堎したす。 デポゞットの削枛ず、欺瞞の蚌拠を公開するこずによる詐欺垫の凊眰、玛争解決サヌビス、保険、オプション、さらにはガベヌゞ コレクションさえも、デヌタ ストレヌゞの料金を支払う必芁があるスマヌト コントラクト システムでは朜圚的に倧きな垂堎ずなる可胜性がありたす。

ブロックチェヌンの立ち䞊げの問題

ブロックチェヌンのオヌプン性により、どの囜のコンピュヌタヌもネットワヌクに自由に参加できるようになり、GitHub の指瀺に埓っおスクリプトキディを簡単にネットワヌクに接続できるようになりたしたが、必ずしも利点があるわけではありたせん。 新しいトヌクンを远求するず、レヌトが䞊昇し、収益をすぐに捚おる機䌚を期埅しお、バリデヌタヌは「最初に新しいコむンをマむニングする」こずを䜙儀なくされるこずがよくありたす。 たた、これは、あなたのバリデヌタヌは誰でも、たずえ匿名であっおも、他のバリデヌタヌず同じように投祚できるこずを意味したす (ただし、匿名の人が自分のために利害関係者の祚を集めるのは難しいため、匿名の仮想通貚に関する怖い話は政治家に任せたしょう。 それにもかかわらず

プロゞェクト チヌムには、将来的にノヌドの安定した動䜜を保蚌し、セキュリティを理解し、問題を迅速に解決する方法を知り、他のバリデヌタヌず協力しお䞀緒に行動するこずができる人材を䜕らかの方法でネットワヌクに参加させるずいう課題がありたす。ネットワヌク参加者が時間ずリ゜ヌスを投資するトヌクンは、たさにこれらの品質に完党に䟝存しおいたす。 適切な創蚭者は、リスクを評䟡する際に、この芏暡の゜フトりェアを起動する堎合、必ずコヌドずノヌドの構成で゚ラヌが発生するこず、ネットワヌクの安定性は開発者ず怜蚌者が共同しおどれだけうたく解決できるかに䟝存するこずをよく理解しおいたす。そういった問題。

チヌムはメむンネット䞊でバリデヌタヌに投祚する準備ができおいたす。ただ、どのバリデヌタヌが良いのかを知るためです。 最倧のポヌトフォリオは 今では持っおいる人はほずんどいたせん。 チヌムの Linkedin プロフィヌルに基づいおいたすか? 経隓豊富な開発者やセキュリティ専門家は、Linkedin プロファむルを提䟛したせん。 チャット、投皿、準備段階での他の人の発蚀によるず? それは良いこずですが、䞻芳的で䞍正確です。

このような状況では、党員の問題をうたく解決するもの、぀たり最良のバリデヌタヌを遞択できるゲヌムが残りたすが、䞻なこずは、ブロックチェヌンの匷床をテストし、ブロックチェヌンの本栌的な戊闘テストを実斜するこずです。アクティブな䜿甚状況におけるブロックチェヌン、コンセンサスの倉化、゚ラヌの出珟ず修正。 この手順は、Cosmos プロゞェクトのメンバヌによっお最初にゲヌムずしお提瀺されたした。このアむデアは間違いなく、信頌性が高くフォヌルト トレラントなメむンネットの立ち䞊げに向けおネットワヌクを準備する優れた方法です。

バリデヌタヌのゲヌム

EOS フォヌクに基づく DAO.Casino (DAOBet) ブロックチェヌン甚に蚭蚈したバリデヌタヌのゲヌムに぀いお説明したす。このブロックチェヌンは Haya ず呌ばれ、同様のガバナンス メカニズムを備えおいたす。バリデヌタヌは、任意のアカりントからの投祚によっお遞択されたす。バリデヌタヌぞの投祚に䜿甚された残高は凍結されたす。 残高にメむン BET トヌクンがあるアカりントは、残高のどの郚分でも遞択したバリデヌタヌに投祚できたす。 投祚が合蚈され、その結果に基づいお䞊䜍のバリデヌタヌが構築されたす。 異なるブロックチェヌンでは、このプロセスの構成は異なりたす。通垞、新しいブロックチェヌンが芪ブロックチェヌンず異なるのはこの郚分です。私たちの堎合、EOS はその名前にある「OS」を完党に正圓化しおいるず蚀わざるを埗たせん。実際に EOS を䜿甚しおいたす。 DAOBet タスク甚のブロックチェヌンの修正バヌゞョンを展開するためのベヌス オペレヌティング システムずしお䜿甚されたす。

個々の問題ず、ゲヌム内でそれらを解決する方法に぀いお説明したす。 サヌバヌが公然ず攻撃される可胜性があるネットワヌクを想像しおみたしょう。バリデヌタヌの立堎を維持するには、ネットワヌクず継続的に察話し、バリデヌタヌを宣䌝し、バリデヌタヌがブロックを生成し、それらが時間通りに他のバリデヌタヌに配信されるようにする必芁がありたす。そうしないず、バリデヌタヌがリストから陀倖されたす。

䞊䜍入賞者の遞び方は

ゲヌムの䞻な技術芁件は、その結果が公的に怜蚌可胜であるこずです。 これは、ゲヌムの結果、぀たり䞊䜍勝者は、参加者であれば誰でも怜蚌できるデヌタに厳密に基づいお圢成されなければならないこずを意味したす。 集䞭型システムでは、各バリデヌタヌの「皌働時間」を枬定し、最も倚くオンラむンになったナヌザヌ、たたは最倧のネットワヌク トラフィックを通過したナヌザヌに報酬を䞎えるこずができたす。 プロセッサヌずメモリヌの負荷に関するデヌタを収集し、うたく働いた人に報酬を䞎えるこずができたす。 しかし、そのようなメトリクスの収集は収集センタヌの存圚を意味し、ノヌドはすべお独立しおおり、必芁に応じお動䜜し、あらゆるデヌタを送信できたす。

したがっお、自然な解決策は、ブロックチェヌンからのデヌタに基づいお勝者を決定するこずです。これは、どのバリデヌタヌがどのブロックを生成し、どのトランザクションがブロックチェヌンに含たれおいるかを確認するために䜿甚できるためです。 私たちはこの数倀をバリデヌタヌ ポむント (VP) ず呌び、これらを獲埗するこずがゲヌムにおけるバリデヌタヌの䞻な目暙です。 私たちの堎合、バリデヌタヌの「有甚性」の最も単玔で、簡単に公的に怜蚌でき、効果的な指暙は、VP = 䞀定期間内にバリデヌタヌによっお生成されたブロックの数です。

この単玔な遞択は、EOS のガバナンスがすでに倚くの新たな問題に察応しおいるずいう事実によるものです。EOS は、耇雑なネットワヌク管理における豊富な経隓を持぀実際に動䜜する XNUMX 䞖代のブロックチェヌンの継承者であり、ネットワヌク、プロセッサ、ディスクを䜿甚するず問題が XNUMX ぀だけ発生したす。぀たり、眲名するブロックが枛り、仕事の察䟡ずしお受け取る支払いが枛り、これも単玔に眲名されたブロックの数に぀ながりたす。EOS にずっお、これは優れたシンプルなオプションです。

他のブロックチェヌンでは、バリデヌタヌポむントの蚈算方法が異なる堎合がありたす。たずえば、pBFT ベヌスのコンセンサス (Tendermint/Cosmos、Parity Substrate からの Aura コンセンサス) では、各ブロックが耇数のバリデヌタヌによっお眲名される必芁があるため、個々のバリデヌタヌをカりントするこずが合理的です。他のバリデヌタヌのリ゜ヌスを無駄にする䞍完党なコンセンサスラりンドを考慮するこずは理にかなっおいるかもしれたせんが、これは䞀般にコンセンサスの皮類に倧きく䟝存したす。

実際の動䜜条件をシミュレヌトする方法

創蚭者の任務は、集䞭管理を行わずに、珟実に近い条件でバリデヌタヌをテストするこずです。 この問題は、バリデヌタヌず他の党員に同量のメむン トヌクンを配垃するフォヌセット コントラクトを䜿甚しお解決できたす。 残高䞊のトヌクンを受け取るには、トランザクションを䜜成し、ネットワヌクがそれをブロックに確実に含める必芁がありたす。 したがっお、勝぀ためには、バリデヌタヌは垞に新しいトヌクンで残高を補充し、自分自身に投祚しお、自分自身をトップに昇栌させる必芁がありたす。 このアクティビティによりネットワヌクに䞀定の負荷がかかり、リク゚ストのフロヌが完党なネットワヌク テストに十分なほど厳しいものになるようにパラメヌタヌを遞択できたす。 したがっお、ネットワヌクを立ち䞊げるための重芁なツヌルずしおフォヌセット契玄を事前に蚈画し、事前にそのパラメヌタヌの遞択を開始しおください。

蛇口からトヌクンを芁求し、投祚を怜蚌するこずは、特に極床に負荷の高いモヌドでは、䟝然ずしお匟頭の動䜜を完党にぱミュレヌトしおいたせん。 したがっお、ブロックチェヌン チヌムは、ネットワヌクに負荷をかけるために䜕らかの方法で远加のベンチマヌクを䜜成する必芁がありたす。 これにおける特別な圹割は、別個のサブシステムのテストを可胜にする特別に䜜成されたスマヌト コントラクトによっお果たされたす。 ストレヌゞをテストするために、コントラクトはランダム デヌタをブロックチェヌンに保存し、ネットワヌク リ゜ヌスをテストするために、テスト コントラクトは倧量の入力デヌタを必芁ずするため、任意の時点でそのようなトランザクションのフロヌを開始するこずにより、トランザクションの量が増倧したす。チヌムはコヌドの安定性ずバリデヌタヌの匷床を同時にテストしたす。

別の問題は、ノヌドのコヌドの曎新ずハヌド フォヌクの実行です。 バグ、脆匱性、たたは悪意のあるバリデヌタヌの共謀が発生した堎合に備えお、バリデヌタヌはバリデヌタヌのゲヌム内ですでに策定された行動蚈画を持っおいる必芁がありたす。 ここでは、たずえば、ノヌド コヌドの新しいバヌゞョンをただロヌルアりトしおいないすべおのバリデヌタヌを眰するこずによっお、ハヌド フォヌクを迅速に適甚するために VP を獲埗するスキヌムを思い぀くこずができたすが、これは実装が難しく、蚈算が耇雑になりたす。 特定のブロックのブロックチェヌンを人為的に「砎壊」するこずで、ハヌド フォヌクの緊急䜿甚の状況をシミュレヌトできたす。 ブロックの生成は停止し、最終的には最初に参加しおブロックに眲名を開始した人が勝者ずなるため、眲名されたブロックの数に基づく VP はここでは適切です。

参加者にネットワヌクのステヌタスを通知し、゚ラヌを修正する方法

バリデヌタヌ間の䞍信感にもかかわらず、ネットワヌクの状態に関する最新情報をタむムリヌに受信するこずは、意思決定を迅速化するために党員にずっお有益であるため、プロゞェクト チヌムはバリデヌタヌ サヌバヌから倚くのメトリクスを収集しお芖芚化するサヌビスを立ち䞊げおいたす。これにより、ネットワヌク党䜓の状況を同時に確認できるため、䜕が起こっおいるかを迅速に刀断できたす。 たた、プロゞェクト チヌムが芋぀かった゚ラヌを迅速に修正するこずはバリデヌタヌずプロゞェクトの䞡方にずっお有益であるため、メトリクスの収集に加えお、ブロックチェヌンにアクセスできるマシン䞊のバリデヌタヌのマシンからログず゚ラヌ デヌタの収集をすぐに開始するこずは理にかなっおいたす。開発者。 ここで、情報を歪曲するこずは誰にずっおも有益ではないため、これらのサヌビスはプロゞェクトチヌムによっお開発されおおり、信頌できたす。 バリデヌタヌからシステム メトリクスを収集するこずは理にかなっおいたす。そしおもちろん、ブロックチェヌン自䜓 (DAOBet の堎合) の最も重芁なメトリクスは、ファむナラむズ時間ず、最埌にファむナラむズされたブロックのラグです。 このおかげで、チヌムはベンチマヌクの実行時にノヌドのメモリ消費量が増加し、個々のバリデヌタヌに問題が発生するこずを確認したした。

バリデヌタヌゲヌムを実斜する際の泚意点

結局のずころ、バリデヌタヌが互いのマシンを攻撃するこずを公匏に蚱可したい堎合 (非公匏にはいずれにせよ、これを行うこずができたす)、䞀郚の囜の法埋では DDoS 攻撃やネットワヌク攻撃が行われる可胜性があるため、これをセキュリティ テストずしお法的に別途策定する必芁がありたす。眰せられた。 もう XNUMX ぀の重芁な問題は、バリデヌタに報酬を䞎える方法です。 圓然の賞品はプロゞェクト トヌクンであり、メむンネットに転送されたすが、ノヌドを起動できた人にトヌクンを倧量に配垃するこずも最良の遞択肢ではありたせん。 おそらく、次の XNUMX ぀の極端なオプションの間でバランスをずる必芁がありたす。

獲埗したVPに応じお賞金プヌル党䜓を分配したす
これは非垞に民䞻的であり、バリデヌタヌ ゲヌムに時間ずリ゜ヌスを投資したすべおの人がお金を皌ぐこずができたす。
しかし、準備されたむンフラストラクチャがなければ、ランダムな人々をゲヌムに匕き぀けたす

ゲヌムの結果に基づいお䞊䜍 N 䜍の賞金プヌルをバリデヌタヌに分配したす
勝者は、ゲヌム䞭に最も安定しお持続し、勝぀こずを非垞に厳しく決意したバリデヌタヌである可胜性が高いです。
特に参加者に由緒あるバリデヌタヌが含たれおいる堎合、䞀郚のバリデヌタヌは参加したくないため、勝぀可胜性が䜎く評䟡されたす。

どのオプションを遞択するかはあなた次第です

もう XNUMX ぀ポむントがありたす。あなたの呌び出しに応じお数十人のバリデヌタヌが急いでゲヌムに参加するずいうこずはたったく事実ではありたせん。たた、詊しおみようず決めたバリデヌタヌのうち、党員がノヌドをむンストヌルしお起動するわけではありたせん。通垞、この段階では、プロゞェクトのドキュメントはかなり少なく、゚ラヌが発生し、時間のプレッシャヌの䞋で䜜業しおいる開発者は質問にすぐには答えたせん。 したがっお、ゲヌムを起動する前に、必芁なバリデヌタヌの数に達しない堎合のアクションを甚意する必芁もありたす。 この堎合、ゲヌムの開始時に、䞍足しおいるバリデヌタヌがプロゞェクト チヌムによっお起動され、コンセンサスに参加したすが、勝者になるこずはできたせん。

たずめ

結論ずしお、私は䞊蚘に基づいお、怜蚌ゲヌムを効果的に実行するために考え、䜜成し、開始する必芁があるもののリストをたずめおみたした。

実際のバリデヌタヌ ゲヌムを実行するには次のこずを行う必芁がありたす。
独自のブロックチェヌンを開発しおください:)

  • Web むンタヌフェヌスを䜜成および生成し、バリデヌタヌに投祚するための CLI を提䟛する
  • 実行䞭のバリデヌタヌノヌドからのメトリクスを集䞭サヌビス (Prometheus など) に送信できるこずを確認したす。
  • バリデヌタヌ ゲヌム甚のメトリクス収集サヌバヌ (Prometheus + Grafana) を起動したす。
  • バリデヌタヌポむント (VP) の蚈算方法を理解する
  • ブロックチェヌンからのデヌタに基づいおバリデヌタヌ VP を蚈算するパブリック スクリプトを開発する
  • 䞊䜍のバリデヌタヌずそのバリデヌタヌのゲヌムステヌタス (終了たでの残り時間、誰がどれだけの VP を持っおいるかなど) を衚瀺する Web むンタヌフェむスを開発したす。
  • 任意の数の独自のノヌドの起動を開発および自動化し、バリデヌタヌをゲヌムに接続するプロセスを蚭蚈したす (ノヌドを切断するタむミングず方法、ノヌドぞの投祚を送信および削陀する)
  • 発行する必芁があるトヌクンの数を蚈算し、フォヌセットコントラクトを䜜成する
  • ベンチマヌク スクリプトを䜜成する (トヌクン転送、倧量のストレヌゞ䜿甚量、倧量のネットワヌク䜿甚量)
  • すべおの参加者を XNUMX ぀のチャットに集めお迅速なコミュニケヌションを実珟
  • ゲヌム開始より少し早くブロックチェヌンを起動する
  • スタヌティングブロックを埅っお、ゲヌムを開始したす
  • いく぀かのタむプのトランザクションでネットワヌクをテストする
  • ハヌドフォヌクを展開する
  • バリデヌタヌのリストを倉曎する
  • ステップ 13,14,15、XNUMX、XNUMX を順序を倉えお繰り返し、ネットワヌクの安定性を維持したす
  • 最埌のブロックを埅ち、ゲヌムを終了し、VP をカりントしたす

バリデヌタヌのゲヌムは新しい物語であり、数回しか実行されおいないため、このテキストを既成のガむドずしお受け取るべきではないず蚀わなければなりたせん。 珟代の IT ビゞネスに類䌌するものはありたせん。銀行が、決枈システムを立ち䞊げる前に、顧客取匕を行うのに最も優れおいるのは誰かを確認するために盞互に競争しおいるず想像しおください。 埓来のアプロヌチでは倧芏暡な分散ネットワヌクの構築に圹立぀可胜性は䜎いため、新しいビゞネス モデルをマスタヌし、ゲヌムを実行し、䟡倀のあるものを特定しお報酬を䞎え、分散システムを迅速か぀安定しお実行し続ける必芁がありたす。

出所 habr.com

コメントを远加したす