15

As you can see from the developer documentation, SDF does serve both Horizon instances through HTTPS. When they say "RESTful HTTP API" it's to signal to developers that they use standard web technologies.


12

Java Script let StellarSdk = require("stellar-sdk"); let keypair = StellarSdk.Keypair.fromSecret("S..."); console.log(keypair.publicKey()); http://stellar.github.io/js-stellar-sdk/Keypair.html#.fromSecret Go kp, err := keypair.Parse("S...") if err != nil { fmr.Println("Error", err) } else { fmt.Println(kp.Address()) } https://godoc.org/github....


11

Haven't tested it myself, but here is quote form Stellar documentation: Controlling asset holders As an anchor, you can mark the issuing account AUTHORIZATION REQUIRED. With this setting, the anchor must approve anyone who wants to hold its credit, allowing it to control who its customers are. Revoking access As an anchor, you can mark the ...


9

You are right, the scheme you described is far from being secure. User should sign the transaction on the client-side. I can see three options for your case: Build and sign the transaction in the browser (that's what the most wallets doing). You can check the source code of existing web wallets for reference, most of them are open-source. Prepare a ...


8

1) As per Orbit Len's comment: Stellar uses ED25519 keypairs. There is only one public key that matches the given secret key. Source 2) Here is an example for bitcoin and someone trying to guess your private key: "A Bitcoin private key is simply an integer between one and about 10^77. This may not seem like much of a selection, but for practical purposes ...


7

Generally speaking, if you're owning all the accounts and everyone trusts you then I'd suggest adding your own private keys to the accounts instead of taking theirs. If you add your own key that is equally weighted to their key, then you can use that key to sign equal to their own. Further, this means you don't actually have to give them a signing key at ...


7

In short, yes. The inflation pool wallet can be hacked just like any other crypto wallet can be hacked. You would need the private key. Thus, the security implications are the same and it is up to the owner for the community pool wallet (the inflation pool that all voters voted on) to take precautions just as if it was their own personal wallet. First: all ...


7

Double spending in Stellar is dealt with at two layers: SCP guarantees that the "blockchain" (ledger chain really) is made of only one chain, and doesn't have forks (in other systems temporary forks can be created which give different opinions of what the "latest block" is). SCP gives similar guarantees at the consensus layer than PBFT in that validators ...


7

Going by the actual source code, there are 32 secret keys that generate the exact same public key -- only 251 bits of the seed hash are used in the elliptic curve exponentiation. For signing, another two bits are used. So all in all, 253 bits of entropy, or 1.4*10^76 unique keys. The number of atoms in the observable universe is estimated to be around 10^...


6

TL;DR: only expose port 11625 on stellar-core. Stellar Core Port 11625 Port 11625 of stellar-core must be exposed outside your network to allow it to communicate with peers. The stellar-core configuration file has a KNOWN_PEERS field which specifies the IPs and domains that your stellar-core node will try to connect to. This is how your node will register ...


6

The digital currency is an Asset on Stellar's public ledger only. You can not download it, clone it and spent it again. It exists as a balance on an account that can be transferred to another account on the net with a transaction. The network makes sure that this happens only once and no assets are lost or duplicated. In a distributed system this is a ...


5

Something you could do is to host the site directly on github pages so users can inspect the code as well as clone the wallet and run it locally. A project that has implemented this is Ark whose official web wallet is hosted on github. Of course, someone could still hack into your github account and make a malicious commit that isn't caught fast enough by ...


4

The security considerations for choosing a Stellar Wallet is same as the ones you consider when storing other crypto assets. Make sure you install an open source client/wallet whose code is audited and maintained by community members. You can also install the wallets developed by their respective creators/foundations/companies. The strongest wallets are ...


4

That's a broad question. How can you guarantee that Google Mail is not hacked? Potentially, any service can be hacked, and not necessarily on the server side. For example, DNS hijacking allows hacker to redirect DNS queries to a malicious domain name server, by overriding a computer’s TCP/IP settings. This can be achieved through the use of malicious ...


4

As a practical matter, SCP's asymptotic security follows from the fact that it depends only on digital signatures (and hash functions) for security, and that these can be tuned to resist arbitrarily powerful attackers. For example, you consider an attack in which every grain of sand on earth is a supercomputer attempting to break SCP a billion times per ...


3

You're mixing up two completely different concepts here. One is about transaction finality, and the other is about resistance to sybil attacks. POW has probabilistic finality, since there's always the potential of a longer chain reverting your transaction. SCP has deterministic finality -- when a transaction is included in a ledger update, that's it. No ...


3

tl;dr: the rest of the network can still reach consensus and it will not halt the network. In your case, there is only one non-compromised validator. Any node outside the set of compromised nodes that include the non-compromised validator in their own quorum set will get a non-matching result from just that one node (assuming that the non-compromised ...


3

This is by analogy with symmetric Byzantine agreement protocols (in which everyone has the same quorum slices). You need any two quorums to intersect at an honest node. If your threshold is 2/3 or lower then you need to proceed when 1/3 of nodes have failed. But if you divide nodes into three equal-sized groups A, B, and M, and M is bad, then A+M and B+M ...


3

Right now I believe SEP-7 is the best answer. It defines a link format that an app such as yours can use to create a transaction that you'd like a user's wallet to sign and submit. The flow is this: User decides to buy something on your site Your site generates a SEP-7 link with the appropriate payment transaction and shows it to the user User clicks the ...


3

You can get the latest ledger header from horizon, for instance the following command would work from the command line: curl 'https://horizon.stellar.org/ledgers?limit=1&order=desc' Obviously substitute the node you actually care about for horizon.stellar.org. The sequence and closed_at fields give you the ledger number and close time, which will give ...


3

Maybe this flow is working on the backend process. You create transaction with signed rootKeypair and save transaction object somewhere else waiting for person B to signed that transaction ?


3

If the start of the hash displayed by the ledger is the same of the one displayed on laboratory, then is just a visualization bug You can check here Just to be safe, after you sign a transaction, the signed xdr is shown on laboratory so you can review it before to post it on horizon This way, using the laboratory, even if you sign an “injected ...


2

All of the concerns you have are the same for any wallet this is not just confined to an inflation pool. Making the website separate from the wallet helps keep the two separate and reduces the chances of being hacked. Your concern shouldn't be with everyones wallets being changed because that would require me to have the secret keys to every wallet to ...


2

The official testnet's Horizon is a free tool to test your code. It involves no real costs to you. The Laboratory is another good testing tool with a good UI, and you can use it without coding knowledge. . Formal Verification of Smart Contract in Stellar . There is no formal established verifiers/testers other than testnet Horizon. Back to ...


2

That's alright as long as your Master Secret Seed is truly random. Remember that thousand of seeds is still a drop in the ocean of all possible keys. Even though seeds will be sequential - you won't be able to tell that looking at public addresses, and there is no way to restore number of public addresses back into secrets/seeds even if you have full ...


2

There is a catchphrase that says: Not your keys, not your coins. Private keys should only be known/managed/used by their owner and nobody else. If you want it the trustless crypto way: Pass an unsigned transaction to the user, let them sign it with their private key (which you'll never have access to) and send the signed transaction back to you / or submit ...


1

A stellar address begins with "G", followed by "[A-D]" and then 54 characters from this base32 alphabet "[ABCDEFGHIJKLMNOPQRSTUVWXYZ234567]", so: preg_match('/^G[ABCD]{1}[ABCDEFGHIJKLMNOPQRSTUVWXYZ234567]{54}$/', $s); However you could also use this php sdk like this: try { $key = \ZuluCrypto\StellarSdk\Keypair::newFromPublicKey($s); } catch ...


1

If you can avoid taking the secret key from the user it will reduce your liability and the user will be likely to trust your application or service. SEP-0007 introduces a custom URI Scheme web+stellar: that will allow applications/websites such as yours to delegate transaction signing to wallets. You could generate URIs like what is described in the ...


1

I have no clue for the 2nd question. For the first one... Horizon server submits transactions to the Stellar network. This server does not let you to sustain 1000tx/s from the same IP for more than several seconds, so you cannot DOS attack from a single machine (without changing IP). By default this is set to 3600 requests per hour—an average of one ...


1

It may be feasible - Stellar uses TCP for its peer discovery protocol.


Only top voted, non community-wiki answers of a minimum length are eligible