Skip to content

Commit

Permalink
Merge pull request #3530 from dfinity/onchain-raname
Browse files Browse the repository at this point in the history
Rename on-chain to onchain (everywhere)
  • Loading branch information
meodai authored Sep 24, 2024
2 parents 04ad7c0 + 7f61fc6 commit e30514a
Show file tree
Hide file tree
Showing 62 changed files with 176 additions and 176 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -588,7 +588,7 @@ Your logo/video/screenshots files should be prefixed with your project id, and p
folder. For example, if your project id is `awesome-icp-project`, your logo file should be
named `awesome-icp-project_logo.webp` and placed in the `/static/img/showcase` folder.
The [Ecosystem Helper](https://mvw4g-yiaaa-aaaam-abnva-cai.icp0.io/) is an on-chain tool that helps you submit your project to internetcomputer.org. It helps with image conversion, resizing, previewing the project cards used throughout the website, and it produces a valid JSON document you can use. Fill out the form and download the asset bundle in a zip file.
The [Ecosystem Helper](https://mvw4g-yiaaa-aaaam-abnva-cai.icp0.io/) is an onchain tool that helps you submit your project to internetcomputer.org. It helps with image conversion, resizing, previewing the project cards used throughout the website, and it produces a valid JSON document you can use. Fill out the form and download the asset bundle in a zip file.
### Asset guidelines
Expand Down
2 changes: 1 addition & 1 deletion blog/news-and-updates/2023-08-23-update.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ This new 1-proposal initialization feature combines all of the SNS preparation s

## Devpost hackathon

Calling all devs! The Devpost 'Fully On-Chain with ICP' hackathon is happening now! Until September 25, you can enter to develop a project on ICP and win a number of prizes.
Calling all devs! The Devpost 'Fully Onchain with ICP' hackathon is happening now! Until September 25, you can enter to develop a project on ICP and win a number of prizes.

There are three possible tracks to follow for this hackathon:

Expand Down
10 changes: 5 additions & 5 deletions community/communityProjects.ts
Original file line number Diff line number Diff line change
Expand Up @@ -979,7 +979,7 @@ const communityProjects: SampleItem[] = [
{
index: 58,
title: "C3-Protocol (Co-Created Collectibles)",
body: "CCC is a platform for on-chain creation and collaboration. It takes advantage of Dfinity’s low threshold in order to introduce Web2 creators to Web3.",
body: "CCC is a platform for onchain creation and collaboration. It takes advantage of Dfinity’s low threshold in order to introduce Web2 creators to Web3.",
links: {
github: "https://github.com/C3-Protocol/CoCreate",
external:
Expand Down Expand Up @@ -1088,7 +1088,7 @@ const communityProjects: SampleItem[] = [
{
index: 65,
title: "PRESTO: Escrow, Title, & Trust dApp",
body: "Presto is an Internet Computer dApp for creating and managing escrows & trusts and for registering ownership of any type of property on-chain.",
body: "Presto is an Internet Computer dApp for creating and managing escrows & trusts and for registering ownership of any type of property onchain.",
links: {
github: "https://github.com/hafezrouzati/presto",
livePreview: "https://3us5k-qyaaa-aaaak-qap3a-cai.ic0.app/",
Expand Down Expand Up @@ -1258,7 +1258,7 @@ const communityProjects: SampleItem[] = [
{
index: 76,
title: "MOPS",
body: "Motoko package manager with on-chain package registry",
body: "Motoko package manager with onchain package registry",
links: {
github: "https://github.com/ZenVoich/mops",
livePreview: "https://distrikt.app/u/mops",
Expand Down Expand Up @@ -1590,8 +1590,8 @@ const communityProjects: SampleItem[] = [
},
{
index: 97,
title: "On-chain System of Record with Public Notary",
body: "We use IC's low cost on-chain storage and inter-canister async calls features to make a cheap and scalable System of Record with Public Notary with features of Oracle, billing and Decrypt+Share.",
title: "Onchain System of Record with Public Notary",
body: "We use IC's low cost onchain storage and inter-canister async calls features to make a cheap and scalable System of Record with Public Notary with features of Oracle, billing and Decrypt+Share.",
links: {
github: "https://github.com/amirhyoussefi/ic-sorn",
external:
Expand Down
12 changes: 6 additions & 6 deletions docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -324,13 +324,13 @@ const marketingNav = {
{
name: "DeFi",
href: "/defi",
description: "On-chain swaps",
description: "Onchain swaps",
},*/
/*
{
name: "NFTs",
href: "/nft",
description: "NFT’s live fully on-chain",
description: "NFT’s live fully onchain",
},*/
],
featured: {
Expand Down Expand Up @@ -508,12 +508,12 @@ const marketingNav = {
{
name: "OLYMPUS",
href: "/olympus",
description: "The On-Chain Acceleration Platform",
description: "The Onchain Acceleration Platform",
},
],
featured: {
title: "OLYMPUS",
subtitle: "The On-Chain Acceleration Platform",
subtitle: "The Onchain Acceleration Platform",
href: "/olympus",
image: "/img/nav/featured-olympus.webp",
},
Expand Down Expand Up @@ -568,7 +568,7 @@ function getImageDataUrl(url) {
const config = {
title: "Internet Computer",
tagline:
"Step into the era of blockchain as a limitless smart contract cloud that hosts everything on-chain: data, content, computations, and user experiences.",
"Step into the era of blockchain as a limitless smart contract cloud that hosts everything onchain: data, content, computations, and user experiences.",
url: isDeployPreview
? `https://${process.env.PREVIEW_CANISTER_ID}.icp0.io`
: "https://internetcomputer.org",
Expand Down Expand Up @@ -597,7 +597,7 @@ const config = {
"data-modal-ask-ai-input-placeholder":
"Ask me a question about the Internet Computer Protocol",
"data-modal-example-questions":
"What is the ICP token?, How is the Internet Computer governed?, How do I start building fully on-chain Web3?",
"What is the ICP token?, How is the Internet Computer governed?, How do I start building fully onchain Web3?",
"data-modal-disclaimer":
" This LLM provides responses are generated automatically and may be inaccurate or outdated. Please take care to verify or validate any responses before making any critical decisions.",
async: true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ coverImage: /img/how-it-works/chain-key-signature.webp

# Chain-key signatures

*Chain-key signatures* is a piece of chain-key technology to allows the creation of signed transactions targeted at other blockchains fully on-chain using the Internet Computer Protocol. Using chain-key signatures, the IC can integrate with other blockchains such as Bitcoin and Ethereum in a completely trustless manner without needing any bridges or off-chain third party signers. Canisters can thus securely store and transact Bitcoin. The secret key exists only as shares held between all the nodes forming the subnet that runs the canister. The canister can transact Bitcoin using a chain-key signed transaction only when at least 2/3rd of the nodes agree to make the transaction. Indeed, using chain-key signatures is the strongest, most decentralized way of integrating blockchains as no additional trust assumptions besides that of the two blockchains are required, particularly no additional parties that manage signing keys or their shares.
*Chain-key signatures* is a piece of chain-key technology to allows the creation of signed transactions targeted at other blockchains fully onchain using the Internet Computer Protocol. Using chain-key signatures, the IC can integrate with other blockchains such as Bitcoin and Ethereum in a completely trustless manner without needing any bridges or off-chain third party signers. Canisters can thus securely store and transact Bitcoin. The secret key exists only as shares held between all the nodes forming the subnet that runs the canister. The canister can transact Bitcoin using a chain-key signed transaction only when at least 2/3rd of the nodes agree to make the transaction. Indeed, using chain-key signatures is the strongest, most decentralized way of integrating blockchains as no additional trust assumptions besides that of the two blockchains are required, particularly no additional parties that manage signing keys or their shares.

[Go deeper](/how-it-works/threshold-ecdsa-signing/)

6 changes: 3 additions & 3 deletions how-it-works/2_chainkeytech/04_chain_key_tokens.subpage.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Another potential risk comes into play with those wrapping architectures: Ideall

## Chain-Key Tokens

Chain-key tokens, such as Chain-Key Bitcoin, are an advanced cryptography-based replacement for wrapped tokens offering stronger security: With chain-key tokens, all operations are performed completely on chain by smart contracts, without involving any off-chain intermediaries. This eliminates the intermediary-related risks of traditional wrapping architectures. Replacing wrapping with on-chain operations only becomes possible through the native integrations between blockchain networks and particularly the use of advanced cryptography — _chain-key signatures_. Chain-Key Bitcoin (ckBTC) is the first chain-key token available on ICP. For each ckBTC token, a real bitcoin is held on chain by a canister smart contract.
Chain-key tokens, such as Chain-Key Bitcoin, are an advanced cryptography-based replacement for wrapped tokens offering stronger security: With chain-key tokens, all operations are performed completely on chain by smart contracts, without involving any off-chain intermediaries. This eliminates the intermediary-related risks of traditional wrapping architectures. Replacing wrapping with onchain operations only becomes possible through the native integrations between blockchain networks and particularly the use of advanced cryptography — _chain-key signatures_. Chain-Key Bitcoin (ckBTC) is the first chain-key token available on ICP. For each ckBTC token, a real bitcoin is held on chain by a canister smart contract.

The following overview explains how chain-key tokens function based on a native chain integration and advanced cryptography.

Expand All @@ -38,7 +38,7 @@ The architecture of any chain-key token on ICP is using the following building b
1. Some form of native integration with another blockchain that hosts the underlying token, for example, the Bitcoin network and its only token, Bitcoin, must be available. This integration must allow canisters on ICP to query balances of addresses of the underlying token on its native chain as well as send transactions to the underlying chain. This integration with the native chain must be done such that no intermediaries are required, that is, is completely decentralized and realized on chain.
2. A chain-key implementation of the signature scheme used for signing transactions on the blockchain hosting the underlying asset must be available, for example, chain-key ECDSA for Bitcoin. This functionality makes it possible to sign transactions for the chain of the underlying token fully on chain using threshold cryptography without involving an intermediary.

Those two building blocks comprise the native integration with a particular blockchain. ICP has already been integrated with the Bitcoin network using this approach, and an integration with Ethereum is planned. Based on this foundation, chain-key token implementations can be built at the smart-contract layer. One possible architecture to implement a chain-key token for a specific underlying token, for example, Bitcoin, uses two canister smart contracts: A _chain-key token ledger_ and a _chain-key token_ smart contract. For the _chain-key token ledger_, the ICRC-1 token standard should be used for wide compatibility in the ecosystem. The same open source ledger code base can be used and parameterized for any chain-key token to be deployed. In addition to the chain-key token ledger, a _chain-key token smart contract_ is used in this architecture. This canister essentially replaces the off-chain intermediary of the traditional wrapping architecture with on-chain functionality for the chain-key token architecture. This canister is also called _minter_ as it is responsible for creating (and removing) supply of the chain-key token based on in- and out-flowing underlying tokens. It keeps any underlying tokens it receives in on-chain custody as long as corresponding chain-key tokens are in circulation, thus ensuring a 1:1 backing of the chain-key token with the underlying asset. The 1:1 backing of the chain-key token by its underlying token can be verified by anyone by checking that the Bitcoin UTXOs the minter claims to hold indeed are held by Bitcoin addresses controlled by the minter, thereby further enhancing trust.
Those two building blocks comprise the native integration with a particular blockchain. ICP has already been integrated with the Bitcoin network using this approach, and an integration with Ethereum is planned. Based on this foundation, chain-key token implementations can be built at the smart-contract layer. One possible architecture to implement a chain-key token for a specific underlying token, for example, Bitcoin, uses two canister smart contracts: A _chain-key token ledger_ and a _chain-key token_ smart contract. For the _chain-key token ledger_, the ICRC-1 token standard should be used for wide compatibility in the ecosystem. The same open source ledger code base can be used and parameterized for any chain-key token to be deployed. In addition to the chain-key token ledger, a _chain-key token smart contract_ is used in this architecture. This canister essentially replaces the off-chain intermediary of the traditional wrapping architecture with onchain functionality for the chain-key token architecture. This canister is also called _minter_ as it is responsible for creating (and removing) supply of the chain-key token based on in- and out-flowing underlying tokens. It keeps any underlying tokens it receives in onchain custody as long as corresponding chain-key tokens are in circulation, thus ensuring a 1:1 backing of the chain-key token with the underlying asset. The 1:1 backing of the chain-key token by its underlying token can be verified by anyone by checking that the Bitcoin UTXOs the minter claims to hold indeed are held by Bitcoin addresses controlled by the minter, thereby further enhancing trust.

<figure>
<img src="/img/how-it-works/chain_key_token_arch.png" alt="Architecture for chain-key tokens" title="Architecture for chain-key tokens" align="center" style="width:1000px" />
Expand All @@ -49,7 +49,7 @@ Note that the token ledger and minter functionalities can also be integrated int

### Creating Chain-key Tokens from Underlying Tokens

When a user wants to obtain chain-key tokens for some underlying tokens, for example, bitcoin, they send the underlying tokens to an address on the origin blockchain owned by the chain-key token smart contract (minter), instead of an intermediary as done for wrapping. The chain-key token smart contract has an address on the origin blockchain, which is made possible through chain-key cryptography, hence the name of chain-key tokens, or chain-key Bitcoin as a concrete example: In the Bitcoin example, using chain-key ECDSA signing technology — concretely, an advanced form of threshold ECDSA, the chain-key Bitcoin smart contract can have and use ECDSA key pairs, much like any user of the Bitcoin network, but fully on chain. That means the smart contract can obtain ECDSA public keys and from the public keys it derives addresses on the Bitcoin network, to which bitcoin can be sent on the Bitcoin network by anyone. Once this chain-key token smart contract has received Bitcoin from a user and the transaction has received a sufficient number of confirmations on the Bitcoin network, the canister instructs the token ledger for the chain-key token to create, or mint, an amount of chain-key Bitcoin tokens corresponding to the received amount of bitcoin. This approach leads to the chain-key token being 1:1 backed with the underlying token, which is held in on-chain custody by the minter canister smart contract.
When a user wants to obtain chain-key tokens for some underlying tokens, for example, bitcoin, they send the underlying tokens to an address on the origin blockchain owned by the chain-key token smart contract (minter), instead of an intermediary as done for wrapping. The chain-key token smart contract has an address on the origin blockchain, which is made possible through chain-key cryptography, hence the name of chain-key tokens, or chain-key Bitcoin as a concrete example: In the Bitcoin example, using chain-key ECDSA signing technology — concretely, an advanced form of threshold ECDSA, the chain-key Bitcoin smart contract can have and use ECDSA key pairs, much like any user of the Bitcoin network, but fully on chain. That means the smart contract can obtain ECDSA public keys and from the public keys it derives addresses on the Bitcoin network, to which bitcoin can be sent on the Bitcoin network by anyone. Once this chain-key token smart contract has received Bitcoin from a user and the transaction has received a sufficient number of confirmations on the Bitcoin network, the canister instructs the token ledger for the chain-key token to create, or mint, an amount of chain-key Bitcoin tokens corresponding to the received amount of bitcoin. This approach leads to the chain-key token being 1:1 backed with the underlying token, which is held in onchain custody by the minter canister smart contract.

Allowing the chain-key token smart contract to know about the balances of the addresses in the underlying chain it controls requires an integration between ICP and the Bitcoin network — the blockchain hosting the native asset to be issued a chain-key token for: ICP nodes connect to nodes of the Bitcoin network and pull in and validate Bitcoin blocks, extract the UTXOs and maintain the Bitcoin UTXO set on chain. Any smart contract can then query the balance and UTXOs of a Bitcoin address. This is what is described as (1) in the section on architecture above.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ title: Network Nervous System

# Network Nervous System

The Network Nervous System (NNS) is the DAO that controls the Internet Computer blockchain. It is a permissionless, stake-based governance system, where everyone can participate by staking ICP utility tokens. Decisions are made by voting on proposals in a liquid democracy, meaning that voters can either vote directly or delegate their voting power to other voters. The NNS governs all aspects of the Internet Computer, including its tokenomics, the rules of the NNS governance itself, the topology of the node machines, and the software that is run on the node machines. All these decisions are executed fully on-chain, which eliminates the need for trusted third parties.
The Network Nervous System (NNS) is the DAO that controls the Internet Computer blockchain. It is a permissionless, stake-based governance system, where everyone can participate by staking ICP utility tokens. Decisions are made by voting on proposals in a liquid democracy, meaning that voters can either vote directly or delegate their voting power to other voters. The NNS governs all aspects of the Internet Computer, including its tokenomics, the rules of the NNS governance itself, the topology of the node machines, and the software that is run on the node machines. All these decisions are executed fully onchain, which eliminates the need for trusted third parties.


[Go deeper](/how-it-works/network-nervous-system-nns/)
Loading

0 comments on commit e30514a

Please sign in to comment.